Showing posts with label story. Show all posts
Showing posts with label story. Show all posts

12 January 2018

Hafiz Adewuyi

How I found my first new job in Lagos

Or how I moved from my first job to another company in Lagos.


I write this article in the hope of inspiring someone to start seeing themselves, not as a victim but as the orchestrator of their career. I've spoken to too many people who feel frustrated with their job and like they're at the mercy of their current employer. While I acknowledge that my current job situation is far from being the standard for success, I must mention that I can't remember the last time I felt that way. 

I've benefitted immensely from knowing that irrespective of my current situation, the power to steer my career in a positive direction lies mostly with me. It's my sole responsibility to keep my head high enough above water to make the best out of the situation.

That said, I encourage you to share it with your friends who you think might be able to benefit from the shift in perspective that I hope this piece will help bring about.

---

If I were to summarize this article into a 140-character tweet, it would be to

"Pick one important pain your current employer's business faces and own it!" 

For me, the important business pain at my first job was a particularly unstable software product. So grave was the instability of this software product that many of the clients using it were sending unpleasant emails daily and threating to dump it every chance they got.

I would say I got lucky with the part of seeking out an important business pain. In my case, the important business pain sought me out. Not because I was the best for the job but because I was the most available. This immensely buggy and dirty codebase was literally dumped in my laps. So, for me, it was either own it or go home. You love your family and you've decided you want to spend more time with them, my CEO would sometimes joke when talking about something that could get one fired at the company.

For the first few months of my inheriting this software solution, my life was hell. I barely had a grasp of what the solution was meant to do and knew absolutely nothing about how it works. Yet, I was the first and last port of call for clients when they had any issues. The clients being the 8 different huge organizations who had licensed the software.

Yes, during that period, I achieved some progress, however marginal it might have been. For most issues that were brought to my desk, I had to defer to a more experienced colleague, having them do most of the heavy lifting to fix it. Then I would finish up by merely delivering the work to the client.

At this point, I had yet to take ownership of this problem and it was clear for everyone to see. Service delivery was poor because I often had to wait for someone else to leave their main responsibility for significant amounts of time before I could complete any task.

TURNING POINT

I remember vividly like it was yesterday, the particular issue that marked the turning point in my experience at that first job. The software solution in question is a payment gateway system. Nigerian banks were my company's clients and the end users of the solution were the bank's business-owning customers who wanted to accept payments on their website (and the customers using their website).

This particular Friday, one of the last emails that came in from a bank was about one of their valuable clients whose developer was finding it hard to connect his website with the payment gateway. Prior to this time, my default response when posed with this problem was to refer the customer to the payment gateway integration document. At best, I'd send them some supporting sample code which I had inherited from a predecessor.

But this time, something was different. I can't remember what it was but there must have been some peculiarities which prompted me to approach the case with some novelty. For the first time ever, I zeroed my mind on seeing this bank's customer through their integration; till their website was accepting real payments from customers.

The following weekend, with no one putting pressure on me as usual, I digested the payment gateway integration guide for the first time since I'd inherited it months back. I read it from start to end, making sure to truly understand the purpose of every instruction in the document. Once I was done with that, I decided to practicalize what I'd just learned. This I did by creating a barebones HTML payment form and integrating it with the payment gateway.

Once I was done that same weekend, I sent the code for the HTML integration I had done to the troubled merchant's developer. This, my friend, turned out to be all the help which he needed to complete his own integration. Furthermore, the end product of that weekend's grinding (the HTML code) became a silver bullet for much of the rest of my career at the company. I would go on to share it countless times after with other people who were seeking to work with the payment gateway.

---

A  couple of months after resolving that revolutionary issue, I had gone from being scared of what turmoil the next email might throw my life into to having dull days when there were too few emails from my clients. The software solution was now for the most part, stable and delivering its promised value to my company's clients with only occasional hitches.

My role evolved from me weathering storms day-in, day-out to being confident enough to reach out to clients, inquiring about how I could make the software more useful for them. From that to me having enough time and will to pay back some technical debt which the solution had incurred in its worse days. In essence, the fulfilment and gratitude I received from investing myself in that first customer's success got me addicted to focusing on my employer's customers' delight.

After a little over two years at my first employer, I got an offer from two different companies at the same time. Each of these offers came by way of my company's partners whom I had encountered through my work. Without a doubt, these people were convinced they needed some of my problem-solving aptitudes in their organization. Right now, I think back to one particular person I worked with who proudly describes me to people as resourceful.

Prior to my receiving these offers, I had interviewed with about 10 other companies at different times, all with a unanimous response of NO. In light of that, I had all but given up on my potential for success as a career programmer when they came in. So much so that I had resigned from my first job and was preparing to pivot when I got these offers. Offers which I effectively already had even before the first interview.
Read More

24 September 2017

Hafiz Adewuyi

How I became a Software Developer in Nigeria

I feel like most developer stories I come across are about people who have had a passion for computers since from an early age and were fortunate to get into programming in their childhood or teenagehood. My story was not quite like that, so I thought I'd add my voice to the pool and maybe encourage someone out there to reconsider their ineligibility for this career path. I think my story is very far from typical. Here we go.

------------------------------------------------------------------------------

It's funny that even though I also got the opportunity to be exposed to computers before 10, you can say I was not curious enough of a kid to want to figure out what made this thing work. Instead, my curiosity led me in a direction that saw me doing other things like:

  • Playing PC games installed off of pirated CDs from computer village, e.g. Total Games 2000 (which had a massive set of tacky but fun 2D games) and Age of Mythology
  • Chatting with random people on Yahoo messenger and other online social websites that pre-date Facebook
  • Trying to understand myself and feelings and address my social anxiety by drowning in a sea of self-help articles

What the heck is programming?

Bolu. He was my friend and coursemate in UNILAG and I don't think I even had a concept of what programming was until that very first discussion on it with him in my first-year room at Shodeinde Hall in UNILAG.

I think I might have asked him what the heck this programming thing he was always on about, was. I remember him trying to explain the concept to me by asking me to think about algorithms in terms of how one would go about instructing someone else to make a cup of tea. Anyway, despite his best efforts, Bolu was unable to get me to understand programming enough to think it was something I should try my hands on right away.

My first encounter with code

While most people say their education in Nigeria was a waste of time, I can't. My Electrical-Electronics Engineering major required me to complete two different introductory courses to programming with C++; one in the second year, the other in the third year.

Each time before second-year when I discussed programming with Bolu, it was always with a dread that was waived with the thought: "we'll cross the bridge when we get to it". The general belief amongst my classmates was that programming was so rocket-sciency that it took Bolu's level of genius to tackle, so I couldn't really be bothered.

Of course, when the second year came around, I was (like 90+ percent of my colleagues) not in the least prepared for the introductory C++ course. To make matters worse, halfway through the semester, even though I attended lectures, I found myself not understanding concepts even as simple as variables and operators. I don't think I was paying much attention, perhaps, because of my defeatist mindset.

A few weeks before the first programming test, I must have gotten into panic mode and beckoned to Bolu my friend to come rescue me. He agreed and he came around to my room in Jaja Hall to walk me through the concept of functions (methods) in C++. I think we chose that concept because despite my best studying efforts, I couldn't grasp the concept and why we even needed them at all. To me, they just existed to make my life harder in the name of sophistication. Of course, I think way differently now.

Luckily for me, Bolu successfully demystified the concept of functions that fateful afternoon and you can say that from that point onwards, my life never remained the same.

Finding my passion for programming

After the session with Bolu on functions, I took it upon myself to write my first function in a practical scenario. The first program I ever started and completed all on my own (if my memory serves me correctly) was a C++ console application to compute a student's semester GPA, given his grade in each course and the weight of each course. While making the program, I created my very own first set of C++ functions and suddenly, it all finally made sense to me.

A programmer in the zone
When you finally understand the language of the computer

The beauty of achieving this milestone was that it not only helped me finally see how functions work. No. It also completely shattered my previously strongly-held defeatist stance towards programming. I finally was able to conceptualize the possibilities ahead if I could get a computer to help me out by writing simple instructions. This realization fired up my curiosity and from that moment on, I spent most of my spare time studying the programming textbook and trying out what I was learning, on my laptop.

Needless to say, I aced my first test and eventually came out tops in the class at semester end, both in the second and third year. Writing those programming exams made me feel exactly like my maths exams in high school used to. And funny enough, the feeling is similar to that which I get when playing addictive games on the PC. I'd say what is common between those two exams was how confident I was in my being able to tackle any question thrown at me and how much I actually enjoy the process of getting thrown a totally new question, reading and digesting it, then going ahead to apply my skills to find a solution. The flame of passion was ignited.

Way before the end of my third year, I had personally completed the C++ programming textbook cover-to-cover. This was the only course in my five years at the university where I had enough motivation and interest in the material to pre-study, let alone, cover an entire textbook way before the exam period. The first and only time my lectures felt like revision sessions.

I was well-renowned by my colleagues as one of the programming dons of the class, perhaps only second to Bolu the one who was born programming. I like to think that this respect formed part of my drive to do so well at it. In fact, I remember one troublesome classmate of mine expressing his contempt for me for being so confident on the day of the third year programming exams as to be studying for another course. Meanwhile, he and most other guys were busy rehearsing code they had crammed, hoping they would have the chance to regurgitate at the exam hall. I really never understood the idea of cramming code but somehow, people were able to make relatively good grades by taking that approach.

During my third year, I also applied my new found skills to create a C++ console application that was pretty challenging for my level. Looking back now, I think doing it might have helped me develop some debugging skills early on. The idea of the program was simple. It could display any number from one (1) to a billion in words. So, if you enter 5467 into the console, it prints out "Five thousand, four hundred and sixty-seven". That was my proudest creation ever and I was always eager to show it off to anyone who cared to listen.

Losing it

This is the saddest part of this article, and it honestly makes me wish I could go back in time. But as there's no need to cry over spilt beans, let's just go ahead to see what happened after what was arguably the best year of my undergraduate life.

The third-year course was the final programming course in my curriculum as an elect-elect student. So, even though I had a passion, I really didn't have anyone push me hard enough to keep developing my skills outside of coursework. Perhaps, I even felt like I had arrived and I wasn't looking for anything that would displace me from my programming throne. Hence, that marked the end of programming in my life as well. The figures-to-words conversion program was the last complete program I wrote as a student of UNILAG.

In my final year, I got a chance to reignite my passion as a participant in the MIT AITI programme. Unfortunately, I could not cope with combining the expectations of my AITI team with my final year coursework. To complete my final year project, I had the huge task of learning to program with C++ QT and I wasn't making good progress with that. I was stuck and was not learned in the science of getting unstuck. This is meant to be easy. I was the programming guru in the third year, why is this so hard for me? Maybe this programming thing is not my thing after all.

This made for a bad state of mind to try and learn yet another language (Java for Android, I think) to deliver on my responsibilities as a member of an AITI startup. After a few weeks into the program, I told my AITI teammates (two of whom went on to found now stellar Prepclass), tail between my legs, that I couldn't do this anymore. After all, in my mind, I was in school first to excel at my coursework before anything else.

I managed to get my final year project to a barely working state before it was time to submit it. But then, after that ordeal, I lost all of my premature love for programming. I hated anything that made me feel incompetent, oblivious of the concept of a learning curve and that it's normal to go through a steep phase to master any skill, even if the basics made you feel like a genius.

A second chance

Before the final semester wound up, Appzone came to UNILAG for a graduate-intern recruitment drive for engineering students. They conducted an aptitude test in which I performed well enough to make it to the interview stage.

The interviews didn't really go well, because as you can probably tell, I really wasn't that much use as a programmer, in terms of productivity. I told them about my brief romance with programming in the second and third years of my studies and how I was the don. However, I was not able to justify why I did not keep programming after those introductory courses ended. I knew that only a miracle would get me into Appzone at this point, considering the number of more experienced programmers (including Bolu) who were also interviewed.

Getting my first job

Towards the end of the final exam period at UNILAG, the first set of successful candidates were made an offer by Appzone. Unsurprisingly, I did not make the list. However, I think there was some speculation that there would be a subsequent list. I was hopeful that if there was any validity to that, my name would fall on the second list.

A few weeks after final exams, I finally got the best call of my life (at the time) from Maryam, a member of the Appzone HR team. She was calling to let me know I was successful; that I had made the second list! A few of my more experienced classmates (including Bolu) who were on the first list had declined the offer. Hence, some room was created which allowed Appzone to accept me and two additional classmates into the paid internship program. What luck!

I resumed at Appzone just one month after finishing my final exams in UNILAG. All intern programmers were required undergo a rigorous and dare I say,  effective training process. First, we were taken through a series of lectures by our experienced colleagues to get us up to speed on the Nigerian banking industry and how Appzone's business fits in there.

Sitting through lectures was the easy part. After the lecture season, each of us (interns) was tasked with single-handedly building two different software projects from the ground up. Each of the projects is a less-sophisticated version of some of the company's existing products. Upon completing both projects, the intern is reasonably expected to have gained enough programming skills and banking domain knowledge to go live (start real work).

During the project period, each intern is attached to an experienced colleague who will be their mentor and first point of call whenever they get stuck. I was attached to Emeka, an elect-elect graduate of UNILAG two years ahead of me. And he made sure I would report my project progress to him, once a day in the least. Without a doubt, this kept me on my toes.

Final thoughts

I don't think I would have been able to overcome the steep learning curve to becoming a market-ready programmer without all the controls and aid put in place at Appzone to help me get there. Big-ups to Appzone for helping me through that delicate stage of my career and giving me a chance to mess up on the job. Heck, for even helping me to 'choose' a career.

Who knows what I'd be doing today if I didn't get that offer by a slim chance. I didn't have any skills and I lacked the drive to develop one on my own. So, I, like most other Nigerian graduates, was ready to settle for the first taker, irrespective of how interested I was in the work. Oh, someone thinks I can be useful at something? Great! Take me whole.

Also, I've changed a lot in the five years since graduating from school. My exposure to the 'real world' has immensely shaped my view of life and I now have a beyond superficial drive to give the best work that I can and be the best me that I can. Every living moment, I'm thinking about how best I can spend my time and resources to improve my chances at being an unarguable success at what I do.
Read More

3 January 2016

Hafiz Adewuyi

How come your name is Hafiz?

Yesterday, I spent all my waking time with some really cool human who believes that I'm the type who documents all recurring questions in my life for the sake of automation.

Here I am thinking, why not. It makes a lot of sense. It feels a tad tedious each time I have to recount the story of how my name is Hafiz, despite the fact that I am not a Muslim.

So here is your answer, in case you ever wondered about title question. All subsequent inquirers will be redirected to this blog going forward; no stories please. There's absolutely no time to be answering such flimsy questions that never lead anywhere over and over again. Perhaps, it'd filter out those that don't really care to know, due to the extra work of opening a link and reading (something we Africans are renowned for loathing).

PROCEDURE


  • Mum was born Christian (both parents Christian)
  • Dad was born* Muslim (both parents Muslim)
  • Mum married Dad
  • Mum, for the sake of love and conjugal peace, was 'naturalized' to Islam by marriage
  • I was born Muslim (both parents Muslim), so I get plastered with name: Hafiz
  • Dad dies a little too early (due respects to the deceased). The Islamic pillar in the (nuclear) family concurrently and quite understandably, collapses
  • Mum reverts to default state (Christianity) having no further support to continue in Islam; an adopted faith
  • Alas! What is a ten-year old Hafiz to do but to tag along with mum. After much resistance (I and my big sis) due to our love for daddy, I finally started to attend (church) service in JSS 2. After a while, I was grateful I did not have to agonize about missed prayers or concatenate all my missed prayers into one long bout of tedium. I think I should record here that there was actually more than one religion switch at this turbulent phase of my life (Islam to Christianity, back to Islam and finally, Christianity)

It's not like I was doing that well in the Islamic faith anyways. I and my siblings had a way of always falling behind in our Islamic classes (ile kewu). While our peers were being celebrated for completing the Quran, we were perpetually stuck at learning a meager extract of the Islamic guide book called Tirah.

Name change attempt
Having taken this much pain to find out more about me, I consider it an obligation that I regale you with the story of my failed name-change efforts.

I had decided on exiting high school to grab the opportunity of a new (college) community to change my first name. So, as soon as I got into UNILAG, during registration stage, I started introducing myself as Gbenga. Problem is, I only remembered to do that about 10% of the time. The other time, I did not successfully catch myself before 'Hafiz' escaped my lips. Well, the rest is history as they say.

If you know me, you know how it turned out. I lost the battle due to my lameness; I wonder if I'm still that lame.

Well, there you have it. One more task automated, my current oga at the top would be proud of me. He's a sucker for automation. Lazy guy; yes, he says so himself, so who am I?

---------------------
* Dad was born before Mum
Read More