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

10 December 2017

Hafiz Adewuyi

How to use your GTBank Naira Mastercard on PayPal - Nigeria

Why can't I use my GTB Naira Mastercard card on PayPal anymore?

Have you asked yourself that question recently? Or the slightly different variant of "Why can't I use my GTBank Naira Mastercard on Paypal"? One other popular variant I imagine would be: "Why did GTBank block Nigerians from using their Naira Debit Mastercard on Paypal".

If you're looking for the answer to any of those questions, then be merry. Cos' today is the day that you find the solution to that problem. A surprisingly very simple solution, if I may say.

GTBank Naira Mastercard + PayPal
GTBank Naira Mastercard + PayPal

If you don't care for the full explanation of this problem, feel free to skip to the final section (How to unblock your GTBank Naira Mastercard on Paypal). The next 3 sections only serve to explain the problem so you can get the full story behind this undesirable restriction on your GTBank Naira Mastercard.

Why does my GTBank Naira Mastercard not work on Paypal (anymore)?

Before mid-2016 or so, my GTBank Naira Mastercard used to work seamlessly with PayPal. I added the card to PayPal and I sure used it a few times successfully before that time.

A few months ago, I 'bought' my first ever Linux virtual machine from Digital Ocean. At the point of payment, I tried to add my Fidelity Dollar debit Mastercard directly, but it failed with the error: "Digital Ocean does not currently accept debit cards".

Fortunately, Digital Ocean accepts Paypal. So, I just went ahead to add that Fidelity Dollar debit card to PayPal, and then use PayPal to pay Digital Ocean from the same card. At the time, I had about $10 in the domiciliary account linked to the debit card.

My payment went through seamlessly. And things were good until I ran out of dollars in my Fidelity Bank domiciliary account. Since I was not ready to buy dollars to fund the account, I had no choice but to try to use my GTBank Naira Mastercard (through PayPal) for the next Digital Ocean subscription.

Unfortunately, my payment failed. I remembered that the last time before that when I tried to use the GTBank Naira Mastercard via PayPal, my transaction also failed. I had assumed it was due to a network error. But now, when it failed multiple times back-to-back, I knew it had to be something more than that.

This was when I recalled reading from a thread on TechCabal's Radar about GTBank having blocked the use of their Naira Mastercard through PayPal. Hmm. I did a bit of Googling and decided that was likely to be the problem here.

However, since I had to keep paying for my Digital Ocean account, I had no option but to find a way to pay (and Paypal seemed like my only option). One option was to find out which Nigerian bank allows their Naira denominated debit cards to be used on PayPal. Needless to say, that's was likely to be a long thing, since I would at least, first have to request a new card. And at the worst, I might have had to open a new bank account. The fact that international transactions are completely blocked off on most Nigerian banks' cards (read Nigeria's FX crisis) is another headache on its own.

I decided to do a little more research before giving up on GTBank Naira Mastercard since that was easier than the above option. And fortunately, I found a solution in less than 30 minutes of googling. The reason my transactions were failing was simple. GTBank placed a DCC (Direct Currency Conversion) restriction on their Naira denominated cards.

What is DCC (Direct Currency Conversion)?

Essentially, PayPal was automatically converting my dollar transaction to Naira using CBN's official rate (because my card was a Naira denominated card). My transaction was a $5 transaction. When you multiply that by the CBN rate at the time (say 320:$1), my GTBank account would be charged for 1600 Naira.

The thing about doing international transactions with your Naira card is that, even if your card is charged in Naira, your bank has to find dollars to pay back the international merchant (settlement). So, if my $5 transaction had been successful, GTBank would have had to find a source of dollars cheaper than or equal to 320:$1 (CBN rate) to be able to settle the merchant for that transaction. If not, my transaction would have caused them a financial loss. GTBank's rate for customers at the time was about 380:$1. Which means that the bank would have lost a fraction of 300 Naira on this transaction, depending on their FX sourcing rate.

Now, you can think that such a minute loss is not too much for a bank like GTBank to bear for their customers. After all, they can probably get dollars at a rate close to the CBN official rate due to their might. However, when you multiply the marginal loss on a transaction by the several thousand (if not millions) Nigerians who use a GTBank Naira Mastercard for international shopping, it's not hard to imagine how the bank can end up neck deep in losses amounting to billions of Naira in a matter of days.

Hence, to curtail potential bankruptcy, GTBank blocked DCC transactions on their Naira Mastercard for all customers (which probably includes you). This means that when the bank's card processing system receives a transaction originating from an international location (not Nigeria) but bearing a charge in Naira, they instruct the system to automatically decline it by means of a system configuration.

I hope that you can agree with me at this point that the bank is justified in making this decision. After all, GTBank is very far from being a not-for-profit organization.

How can I use my GTBank Naira Mastercard on PayPal?

The solution to this problem is very simple. You simply need to get on GTBank's side of this FX economics to solve the problem. If GTBank's system receives your charge in dollars and not Naira for a transaction originating from the US, then it can use a rate decided by GTBank to convert the transaction to Naira before passing the charge to your account.

In this way, GTBank can ensure that they apply a rate to your transaction that is sufficiently higher than their dollar-sourcing rate to make them a good profit margin off of it after settling the merchant.

Hence, the solution is for you to instruct PayPal to not convert your transaction to Naira and instead, send the original transaction currency (e.g. dollars) like that to your bank. The process is very simple, but the interface to do it is inexplicably well-hidden away in their menu system. In fact, I noticed that the web page to make this setting change has the old PayPal look-and-feel. Not surprisingly, there's currently no way to navigate to this page on the modern PayPal UI menu.

The three-step process to remove the restriction on using your GTBank Naira Mastercard on PayPal comes next.

How to unblock your GTBank Naira Mastercard on Paypal

1. Visit the PayPal card setting management page on your internet browser by clicking here (you might have to log on to your PayPal account if you're not already logged in). To ensure that this is not a phishing attempt on your PayPal account, please verify that the certificate on the loaded page belongs to PayPal.

PayPal secure Certificate
PayPal secure Certificate


PayPal card currency conversion settings page
PayPal card currency conversion settings page


2. Click the Conversion Options link beside your GTBank Naira Mastercard in the list of cards

Ask Paypal to use Mastercard/VISA's currency conversion process, not theirs. This is what your bank wants
Ask Paypal to use Mastercard/VISA's currency conversion process, not theirs. This is what your bank wants

3. Most likely, the first option is selected on your GTBank card. The first option enables PayPal's currency conversion process which is what causes the whole DCC problem. Just select the second option (Bill me in the currency listed on the seller's (merchant's) invoice) and submit the form.

That's it! Just ensure your GTBank Naira Mastercard is well funded enough, then retry your PayPal transaction. It will be successful.  At least, so it was in my case. I followed this same process and not up to 5 minutes after, I was able to make a successful payment to the same Digital Ocean where my transaction had previously failed multiple times. 

P.S.
I think it would go a long way if GTBank would send a simple SMS or link to a customer to recommend possible solutions when their transaction fails because of a direct currency conversion.
Read More

15 October 2017

Hafiz Adewuyi

I learned French in four months using Duolingo

Mid-June 2017, just a few days before leaving Lagos for Enugu, I installed the Duolingo mobile app on my Android phone. Almost every day from that time till date, I have spent 20 minutes or more working through the lessons on the app. There are tons of languages you can learn on the app. I started with French being that it was the easiest for me to pick up (previous exposure).

Last Sunday (October 8, 2017), I got to the end of the French course. I remember feeling like, "Is this it. I thought there'd be a worldwide drumroll in my honour"? Meh!

My plaque for completing French on Duolingo
Duolingo names Hafiz French master


How did I make it to the end?

The Duolingo mobile app and platform is an incredibly well-designed product which has tons of features which make it quite easy to complete some lessons every day. Here are some of them:

Duolingo daily streak
Duolingo daily streak
  • A daily streak. When you first install Duolingo, you tell Duolingo how much time you want to spend learning language(s) in a day. Using that data, they set a daily goal for you in the form of XP (experience points) you must gain each day to maintain your streak. Your streak will increase by one for each day you achieve your goal. Also, you will lose your entire streak if you fail to achieve your goal for even one day, irrespective of what the previous value was.

    So, the more you do, the more you want to do because no normal person wants to see a 20-day streak become zero, due to one day of laziness. For days when you absolutely can't put in the time to reach your goal, the app has this "Streak Freeze" feature which allows you buy your way around it. You can buy a streak-freeze at 10 Lingots per day and this, as the name implies, will help freeze your streak instead of having it fall back to zero.

    To help you estimate the value of a Lingot (Duolingo's local currency which is earned through achievements), I had about 250 Lingots at the end of the French course, and that's only because I've been extremely stingy with spending them on the in-app store.

    In the four months of learning French, I lost my streak two times. Luckily, that didn't dissuade me from getting back on track. Duolingo cunningly tried to have me give up cash (about 1000 Naira or $3) to reclaim my lost streak (which was around 43 the first time I lost it; painful). The offer was really tempting but not tempting enough for this here shrewd. Is a huge Duolingo streak going to increase my bank account balance or my salary?
  • Reminders in the form of emails and push notifications, telling you how far you've come and how you only need to do a little today to maintain your streak
Duolingo daily French reminder email
Duolingo daily French reminder email

  • Groups. Each Duolingo group holds a maximum of 15 learners of a particular language. Each group has a timeline which features the key learning achievements of each of its members. The timeline is visible only to members of a group and users can join only one group at a time per language.

    To simulate competition, each group has a leaderboard where the person with the highest number of XPs at the end of the week is proclaimed the winner. Several times, I had to cover more lessons than I really cared to, just so I could be crowned the French king of the week in my group.

    Also potentially motivating are the push notifications triggered by the mobile app whenever someone in your group pushes you lower on the leaderboard by getting more XPs than you have that week.
Someone just passed you notification in Duolingo
Someone just passed you notification in Duolingo

  • Double your lingots. Even though my Lingots are largely useless in real life, I imagine it could be a major bragging right if I'm able to accumulate them to a certain level. Duolingo has this feature where at the start of a week, 5 Lingots are deducted from your wallet. If you achieve a 7-day streak after the deduction day, you get 10 Lingots back at the end of the week. If you don't, you get nothing back, effectively losing 5 lingots.
Duolingo's Double or Nothing Lingot wager feature
Duolingo's Double or Nothing Lingot wager feature


Am I now a French expert?

Far from it. Yes, I can read everyday French phrases much more easily than I could when I started the course. However, it is still quite difficult for me to follow along with real-life French speech that is not intentionally slurred. I imagine I'd have to live in a French-speaking part of the world and write more than a few full-length articles in French to even be able to say I'm an intermediate speaker of French.

What's next?

As a typical human with an insatiable thirst for fulfilment, I moved on immediately to Spanish. I've found Spanish to be quite similar to French while still being sufficiently different as to be challenging. I've been consistent and in the one week since last Sunday, I've completed about ten lessons. So far, I've learned basic words in categories like Food, Animals, Verbs, Pronouns and Possessives.

How is the Spanish coming?

Learning Spanish is a lot more difficult for me than learning French was and I've put it down to the following reasons:
  • There was French in my academic curriculum both in primary and secondary school. A lot of things stuck to memory during that early exposure, so there wasn't as much learning going on for French as there now is in Spanish
  • An inordinate amount of English words have a French equivalent which is so similar in structure as to be approximately identical. This makes it easier to guess the meaning of new French words and also to hazard guess the French equivalent of many English words. It also makes it easy to remember the French-English mappings. For this reason, I was able to TEST OUT of several lessons which accelerated my rate of completing the course.


    Duolingo's TEST-OUT feature
    Duolingo's TEST-OUT feature
      A Duolingo lesson consists of one or more quizzes which you normally have to complete one after the other. Duolingo's TEST OUT feature allows you to save time by skipping the individual quizzes and just doing one quiz that combines concepts from all the quizzes in that lesson. Of course, you must be pretty proficient at the concepts being introduced across that lesson to be able to pass the TEST OUT quiz. There are no hints like in a normal quiz and you can fail a maximum of four questions before you're kicked out of the test.
    I've covered ten Spanish lessons in the past week and in that time, I've not been able to test out of even one of them. It's really painful to work through a lesson which has 3 to 7 quizzes with 17 questions per quiz when you can just do one super quiz with the same number of questions. But I stand no chance at passing the test out quizzes in Spanish (no adequate background).

    Random fun fact. For some reason I've not bothered to research, Spanish questions are prefixed with an upside down question mark, in addition to the regular question mark at the end of the question.

    Spanish: ¿Tu hablas espanol? 
    English: Do you speak Spanish?


    Why am I learning new languages?

    I really don't have any other reason than that it helps me feel accomplished. This is a necessary ingredient for good mental health.
    Read More

    7 October 2017

    Hafiz Adewuyi

    How to block/deactivate your ATM card in Nigeria without going to the bank

    UBA (United Bank for Africa)

    The block card feature is available on the UBA Internet Banking platform. To block your UBA ATM card via the internet banking platform, log-on to the platform and select Self service to request for your card to be blocked.

    Alternatively, you can block your UBA ATM card by sending an email to UBA (CFC@ubagroup.com). The email must contain your NUBAN account number and a message requesting that your card be blocked.




    GTBank (GTB, Guaranty Trust Bank)

    You can block your GTBank ATM card electronically through any of these means: via ATM terminals, Internet banking application, Mobile app, SMS banking and on the GTWorld app.

    To block your ATM card through GTBank SMS banking, simply send the syntax “HOTLIST NUBAN” to 08076665555 from your registered mobile number with the bank. Please, note that NUBAN should be replaced with the 10-digit account number linked to your card.

    Alternatively, you may contact GTConnect (GTBank's fully interactive self service contact centre) on: 0700GTConnect (0700482666328), 01-4480000, 08039003900 or 08029002900 to request for your ATM card to be deactivated. At the voice prompt, press 1 then zero (0) to have your call transferred to any of GTBank's customer service representatives.

    Finally, you may also log on to your internet banking profile and follow the steps below to deactivate the card:
    • Click on the Cards icon and then the Card hotlist link
    • Select Card Number and Request Reason
    • Input secret question answer, click Continue and input token generated code
    • Click Submit 
    A pop up screen confirming the deactivation of your ATM card will be displayed.

    Fidelity Bank

    You can block your Fidelity Bank card via Fidelity Instant (USSD) Banking. Just dial *770*911# on your registered phone and follow the prompts. When you dial the code, a list of all your active debit cards will be displayed to you and you can select which of your cards you would like to block. The process takes a very small amount of time and will not cost you a dime.

    Alternatively, you can block your Fidelity Bank ATM card by contacting the Fidelity Bank customer service center via email (trueserve@fidelitybank.ng, true.serve@fidelitybank.ng) or via any of its social media profiles.

    Zenith Bank

    To block your Zenith bank ATM card using the mobile app, please login to the Zenith bank mobile banking app and follow the steps below:
    • Click the menu bar and select Cards and Cheques
    • Under TYPE select Deactivate Card 
    • Enter the reason and click on continue.
    Should you need further assistance or clarification, please call 012787000, 014647000, 012927000 or 070ZENITHBANK.

    First Bank

    To block their First Bank ATM cards, customers are required to contact First Bank customer care via email (firstcontact@firstbanknigeria.com), phone call or by a visit to any First Bank branch.

    FCMB (First City Monument Bank)

    You can block your misplaced/stolen FCMB ATM card if you have been profiled on the FCMB telephone banking platform.

    To get profiled, you will be required to call the FCMB contact centre on 07003290000 and request to get profiled on the interactive voice response which enables you to generate a pin that will eventually help you block your card, make transfers among several other services.

    Stanbic IBTC Bank

    You can block your Stanbic IBTC bank ATM card without going to the branch, either via USSD or via SMS.

    To block your Stanbic IBTC ATM card via SMS, simply send “Blockcard NUBAN” to 30909 via your registered mobile number. Please, note that NUBAN should be replaced with the 10-digit account number linked to your card.

    To block your Stanbic IBTC ATM card via Stanbic USSD banking, please follow the steps below:
    • Dial *909#
    • Choose my bank
    • Choose service requests
    • Choose block card

    Union Bank

    You can block your Union bank ATM card via SMS. To do this, send "BLOCKCARD NUBAN" via SMS to 20123 using the phone number registered on your account.  Please, note that NUBAN should be replaced with the 10-digit account number linked to your card.

    Access Bank

    You can block your Access Bank ATM card through the updated Access Bank mobile banking app.

    Keystone Bank

    A self-debit card deactivation can be carried out via the Keystone Bank Internet Banking Platform. Keystone bank also ensures that debit card blocking requests are treated promptly when received via email (contactcentre@keystonebankng.com).

    Sterling Bank

    You can block your Sterling Bank ATM card either via Sterling Bank internet banking or by sending an email to Sterling Bank (customercare@sterlingbankng.com).

    Wema Bank

    Wema bank cards control is arguably the best in the Nigerian banking industry. You can deactivate your ATM card using either the Wema Mobile app or Wema Internet banking solution. Via either of those platforms (web/mobile), you can also activate your ATM card for any number of countries of your choice within a specific date range. Finally, Wema bank's flexible card control feature also allows customers deactivate/activate their ATM cards for use on different transaction channels e.g ATM, Web, POS.
    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

    23 August 2017

    Hafiz Adewuyi

    Happy Birthday: It's your turn to put the people in your life in their true place

    Back when I worked at the bank, it was customary for a birthday celebrant to share cakes, small chops, drinks and sometimes, full meals (rice and chicken) to colleagues on their birthday. However, because it happens to be a bank head office, which has hundreds of staff in one location, except you fell into the generous manager's category, it was unlikely that your 'birthday bounty' would reach everyone in the office, even if the news of it definitely would.

    Creative happy birthday design elements vector art Source

    Of course, as a celebrant, this scarcity of resources puts you in a place where you have to choose which subset of staff would be recipients of your birthday bounty. The average celebrant's approach was to put their immediate team members (average of about 20 people) at the top of the beneficiaries list. Also, the celebrant's favourite managers and the less-favourite ones who happen to be the celebrant's direct/indirect managers usually have an automatic place on the list.

    Outside these satisfy-them-or-die demographics, of course, lies everyone else. From this group, it is now clear that only the celebrant's favourites will get a taste of the bounty. Celebrants would typically write a (VIP) list and appoint a colleague as mercenary to dispatch the birthday bounty to this special group of people who are usually across different teams and sometimes, in another building entirely.

    Everyone else, who of course cannot easily be shielded from the news that the birthday celebrant has skipped over them in their generosity spree is left to grapple with their new found knowledge of their importance (or lack thereof) to the celebrant.

    Of course, inevitably (since I was no manager), most of the time, I was in the category of unimportant masses whom, if they were lucky, would get a tiny piece of sponge cake which has more icing than actual cake. Left with no choice but to look with envy at those special beings who happen to fall into today's celebrant's VIP list.

    The worst of these times for me was when I actually felt betrayed by not having been put on the celebrant's VIP list. You know, those people who you think you actually have a good relationship with and if there were to be any such categorization as this, then you would definitely fall into their good books.

    One example which happened earlier this year (2017) was particularly painful, so much so as to ruin most of my productivity for the rest of the day with surging emotions of anger. In my team of three or four developers, each member except me got a pack of small chops and a can of soft drink. The celebrant happened to be a member of the product management team with whom I used to work closely until recently when a change in my duties meant that we had very little work in common.

    All that my lizard brain could interpret from this exclusion was that she didn't consider me as having contributed any noteworthy part to her achieving her career goals in the organization. My more reasonable side tried to convince me that this was probably just an innocent oversight. But no, this lizard was not having any of that palliative bullshit.

    I got really mad because I felt that I deserved some of this birthday love for all the past times we had worked together to achieve some organizational goal. In fact, the only reason I didn't confront the celebrant that day was that I felt it was distasteful to question someone's intentions on their special day. After all, it's not like they actually owe me anything.


    Being fully aware of how bad it makes me feel when I'm skipped over to receive a birthday bounty (especially when I think I deserve it), my stance was to just not share anything at all on my own birthday. For me, it's better that no one feels special and that everyone considers me a stingy mofo than to make some feel special and then alienate the rest of the unimportant masses.

    As you can imagine, I had to argue this stance with my immediate team members severally.

    My colleagues' argument You partake in the bounty of other (immediate) team members. Why then would you decide to go missing when it's your turn to pay it forward? How would you feel if, on a team member's birthday, you do not receive a bounty while every other team member does? This is what we're going to do to you if you refuse to declare a bounty on your own birthday.

    My counter-argument You realize that at no point did I move to convince any other team member to declare a bounty? They did it of their own free will and I'm only happy to share out of their generosity. However, I think the magnanimity of it is eliminated if it becomes mandatory.

    Like, what is the freaking point of buying food for everyone in the team if, in the ideal scenario, you would still get the favour back when other people pay it forward by sharing their bounties within the same team on their own birthday? We could as well just keep our monies to ourselves and buy ourselves a special meal every once in a while.
    Read More

    21 July 2017

    Hafiz Adewuyi

    Yoruba boy first time living outside Lagos (in Enugu) FAQs

    When did you move to Enugu?

    I moved to Enugu on Friday, June 16, 2017. I travelled to Enugu on a very short (under 1hr) flight with Airpeace. I landed in Enugu at around 8:30 WAT.

    Why did you move to Enugu?

    I got a new job. A job that is much closer to my dream job than my old job was. That's it. Oh yeah, getting a job outside of Lagos was actually also a dream come true.

    I've lived in Lagos all my life:
    • Primary school: Bosby, Ilasamaja, Mushin, Lagos
    • High school: FGCL, Ijanikin
    • University: UNILAG
    • NYSC Camp: Iyana-Ipaja, Lagos camp
    • NYSC PPA: Orile-Agege LCDA, Agege, Lagos
    Need I say more? 

    I resumed my new job as a Software developer at Chatdesk on Monday, 19th June, 2017. I've already spent a full month at the new job, but it hardly feels like it.

    How is Enugu?

    • Great
    • The landscape is constantly undulating. Yes. The hills of Enugu. I should get me a bicycle soon for proper enjoyment of the steep hills
    • The good roads are not overburdened and I've not seen a traffic jam that is more than 20 cars long since I arrived here (and that's an exception). Also, there are usable footpaths on most of the roads I've seen, hence more pedestrian-safe than Lagos
    • I live in Independence layout, a very clean and serene and well-planned part of Enugu with a concentration of modern houses. I would describe it as the Lekki equivalent of Enugu except it's better. Most of the streets are tarred and the area is not flood-prone. Also, the views are much better because of the hilly nature of the landscape

    Nice Friday morning view in Enugu

    DISCLAIMER: In all fairness, I hear Enugu is really large and what I've seen is a tip of the iceberg. I keep wondering where the ugly/regular houses are located because since I moved here, all I've seen are pretty and well-planned neighbourhoods and estates.

    Are you happy with the move?

    Yes. I unarguably am. Of course, no one has really asked me this question (apart from my mum). So I'm just answering it here to show off my awesome new life. Okay, it might not be that awesome, but compared to my shitty existence in Lagos, this is a huge leap which I am beyond grateful for. 

    First of all, every day is TGIF for me. I have unbound flexibility with my work hours. I can wake up whenever I want and can sleep whenever I want. As if that was not good enough, I currently stay at the staff quarters of the company which is in the same house as the office. Interestingly, I hardly ever sleep for more than 6-hours per night in spite of the flexibility. My phone alarm clock app is up for grabs; any takers?

    I have pounded yam for breakfast regularly; no fear of falling asleep at work
    I now regularly have pounded yam for breakfast; no fear of falling asleep at work

    Let me reveal the not so fun and games part of my new found freedom though. Now, I have little excuse not to achieve some of my lifelong dreams like building more muscles, completing intensive MOOCs to build up my skills and completing my pet projects. I've registered at a really-well equipped gym a ten-minute drive away from home (Lilburn fitness, close to the Enugu airport), so I'd say I'm on the right track. I always tell myself the phrase, "six packs in six months", just for fun.

    Also, I managed to achieve a feat that would never have been possible with the cut-throat life I left behind in Lagos. I currently have a 30+ day streaking learning French on Duolingo. The trick (if I can call it that) is really simple. I wake up, I head to the balcony, whip out my phone and make a go for the French challenges; no questions asked. It's slowly revealed itself as a rewarding and mentally awakening way to start the day, so I don't even need any discipline to do it anymore at this point. #GoodRoutines #CueActionReward

    If not bragging rights, then what do we live for? Showing off my stellar Duolingo French stats
    If not bragging rights, then what do we live for? Showing off my stellar Duolingo French stats

    Furthermore, I now manage to do some form of exercise at least, once in two days. My running is now more consistent, even if that means one part of my body or the other always has an ache. Not to worry, I'm relatively comfortable with pain, due to my pimples pressing days. Who knows, I might start training for a marathon at this rate.


    Hafiz at the end of Umuawulu street adjoining Port Harcourt - Enugu Expressway
    Hafiz at the end of Umuawulu street adjoining Port Harcourt - Enugu Expressway during a Friday morning run
    My work at Chatdesk is also adequately challenging, purposeful and rewarding.


    What do you miss about Lagos?

    • Nights out at Element House
    • The beaches
    • UNILAG
    • Truppr
    • My car
    • A HANDFUL of friends
    • My family (just because)
    • Constant FOMO. Five tech events happen every weekend and you have to make the hard decision of which one to attend. Now, I can happily skim through the events portion of TechCabal's daily newsletter knowing I can't attend anyway :D

    What are some places you have been to in Enugu?

    Eat out: Roots restaurant and Cafe
    Shopping: Roban Stores, Shoprite
    Gym: Lilburn Gym, Liberty Gym (Liberty estates)
    Night life: Top rank Hotel, Arriba Entertainment centre (Voodoo lounge)
    Sports: Okpara square, Nnamdi Azikiwe Stadium

    Frankly, my life here is pretty boring; by general benchmarks, just as many people in Lagos had warned. But I'm okay. Despite all the resources to hang out and socialise in Lagos, my life was still boring anyway. Most weekends, I would voluntarily go to the office most Saturdays and Sundays, versus spending it chilling with friends somewhere cool. So, let's not blame it on Enugu. The problem really is me.

    When next are we seeing you?

    I don't know. I'm pretty fine here and I'm glad to have a breather away from the only place where I've lived all of my life. I don't miss Lagos well enough to want to be there again anytime soon. Good riddance, birth city!

    Have you found yellow omo ibo?

    NO!



    And please, can you remind me of when you crossed my acquaintance-zone to friend-zone which is the only place from which you're permitted to be asking such a question AFAIC? Amebo.
    Read More

    2 July 2017

    Hafiz Adewuyi

    Transfer money between Nigerian bank accounts for free

    Or cheaper than your bank would charge anyway ;)

    Before May 2017, the average charge for inter-bank funds transfers across Nigerian banks was 100 Naira per transaction. However, the CBN recently issued an edict to all Nigerian banks which stipulates that from May 1 2017, commercial banks are to charge exactly 50 Naira for funds transfers to other local banks.

    CBN 50 Naira charge specification for Electronic Funds transfer within Nigeria (Commercial banks)
    CBN charge specification for Electronic Funds transfer within Nigeria (Commercial banks)

    Interestingly, while the CBN guide separates the charges for inter-bank and intra-bank transfer for micro-finance banks, there's no such distinction for commercial banks. Hence, it seems to be at the individual bank's discretion to decide the charge (or lack thereof) for intra-bank transactions.

    CBN charge specification for Electronic Funds transfer within Nigeria (MFBs)
    CBN charge specification for Electronic Funds transfer within Nigeria (MFBs)

    In spite of the bank-wide reduction in electronic transfer charges, there are still cheaper ways to transfer money between Nigerian bank accounts without using a bank-controlled channel. I share the details of the ones I'm aware of at the moment below.

    Kudi.ai (Kudi-dot-ai, a payment chatbot)

    Buying airtime from the kudi.ai chatbot
    Buying airtime from the kudi.ai chatbot

    Essentially, you can do electronic transfer from your Nigerian bank account by chatting with a robot; that's it. You can use any of the following options to interact with the chatbot:

    • Facebook Messenger
    • Skype Messenger
    • Telegram (who uses that in Nigeria?)
    • Web via browser (https://chat.kudi.ai)

    Just visit https://www.kudi.ai to begin. 'Kudi' is a Hausa word which translates to 'money'. Maybe one day, I will vex and go and build my own Owo.ai too :D [rushes to go check if owo.ai domain name has been claimed]


    Yes! Now I have all I need to give kudi.ai a run for its money

    FUN FACT: Did you know that the .ai TLD (top-level domain) is for Anguilla?

    Kudi.ai will also allow you do the other usual electronic transactions like buying airtime and paying utility bills. As at the time of writing this article, the only payment option available for use on kudi.ai is the ATM card linked to your bank account. So far, I've been able to use my GTB Naira Mastercard and my Fidelity Verve card successfully on Kudi.ai.

    I won't be surprised though, if when this really gains transaction, Nigerian banks started blocking their cards from working on kudi.ai as a way to slow transaction income leakage. I think that would be a huge blow from the banks in the epic Bank vs. FinTech battles.

    If this happens, it won't be the first time a Nigerian bank pulled that kind of move. Back in 2013/2104 when Interswitch Quickteller gained a lot of traction, it did not take long for GTBank to restrict their customers' usage of Quickteller for electronic transfers. Of course, this meant that the customer had only one option to transfer money out of their GTBank account; use a GTBank-controlled channel (online/mobile/USSD/branch).

    ThriveSend

    Thrivesend charges 45 Naira only for local bank transfers. Just like Kudi, the only payment option available is your ATM card . As long as that remains the case, services like this only survive as long as each Nigerian bank allows its card to work on the platform. Sad.


    Is there a CBN edict that would prevent a bank from doing this? I'm curious.

    Sorry Thrive mayte; but haven't you heard of Kudi.ai yet?
    Es sir; but haven't you heard of Kudi.ai yet?


    Conclusion

    I can empathize with the strong inhibition many Nigerians have towards sharing their card information online with third parties. However, from my experience of using my debit card online for the past 5 years and having never been a victim of any online fraud, I would say it's pretty safe to use your card online in Nigeria. Below are some precautions I take to mitigate the risk of card fraud on my Nigerian bank accounts:

    • I ensure the merchant's website and/or payment platform is fairly reputable and that they are SSL-secured (Have 'https' in the URL)
    • I don't keep my life savings in an account which is linked to any of my cards

    Happy free transfer through Kudi.ai; while stocks last. Also, feel free to act on that impulse to transfer some coffee money to me for providing you with this juicy information. Yes, I had to take coffee to stay up to rewrite this article after losing the initial draft to a careless page refresh :'( :'(

    Off topic: Zoto recharge versus USSD recharge

    Talking about sharing card details with third parties reminds me of a time when I tried to get my friend to sign up to Zoto app. Signing up requires entering your card details into the app and doing an OTP/token verification against your bank. For one, my friend was wary about using his card on yet another 'Nigerian' app. Also, the trouble was apparently not worth it, considering the existence of very seamless USSD recharge which everyone in Nigeria who has an ATM card account today can potentially access.

    So, that my friend, is how I missed a golden opportunity to win free 1000 Naira airtime (Zoto referral reward) for me (and my friend). Obviously, even 1000 Naira free airtime was not enough motivation for my friend to join the Zoto app. I can only imagine what the fate of Zoto would be when their airtime-sharing spree comes to an end. The odds are just against a mobile app if the same service it offers is easily accessible over USSD.

    Zoto recharge vs. USSD recharge; odds are against Zoto
    Zoto recharge vs. USSD recharge; odds are against Zoto


    P.S.

    If you know of any cheap or free electronic transfer method within Nigeria which is not listed here, kindly share the details in the comments section below. After due verification, the article will be updated accordingly.
    Read More

    1 July 2017

    Hafiz Adewuyi

    Durosoke by Olamide - Lyrics in English

    DUROSOKE - Rap song by Olamide - English translation (English in bold)
    ------------------------------------------------------------

    INTRO
    Take it outside; Basket

    Take it inside; Koroba 
    Take it inside, Basket


    Olamide rapper Image
    Olamide
    (By Emily Nkanga (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons)

    HOOK
    Dem be feeling us 
    They were admiring us

    And now them they famz just to be with us 
    And now, they're feigning familiarity just to be with us

    A lówó, a lẹ́nu, a dẹ̀ mọ̀'yàn o
    We have money, we are influential, we know important people

    A jayé orí wa, ko dẹ̀ kan'yan o, yeh
    We enjoy our lives, and it doesn't concern anyone

    See the money now

    We weigh, we no dey count the money now
    We weigh the money, we don't count it any longer

    We fully loaded ready on this now

    The moneneneneni running out, yeh
    Jargon


    CHORUS
    Sé kó wálẹ̀; kó dúró sókè 
    Should it come down? Let it stay up

    Sé kó wálẹ̀; kó dúró sókè
    Should it come down? Let it stay up

    Sé kó wálẹ̀; kó dúró sókè
    Should it come down? Let it stay up

    Sé kó wálẹ̀; kó dúró sókè
    Should it come down? Let it stay up

    Sé kó wálẹ ò; kó dúró sóke ò ò ò
    Should it come down? Let it stay up

    Sé kó wálẹ ò; kó dúró sóke ò ò ò
    Should it come down? Let it stay up

    Sé kó wálẹ ò; kó dúró sóke ò ò ò
    Should it come down? Let it stay up

    Sé kó wálẹ ò; kó dúró sóke ò ò ò
    Should it come down? Let it stay up


    TRACK 1
    **repeated coughs**
    Bahdo, baddest guy ever liveth
    Great guy, the greatest guy who ever lived

    Édímastà lọmọ o, kò ń ṣe prífẹ̀t
    He is a headmaster, he's not a prefect

    School wo ló ti wá náà, OSÚ àb'Ífẹ̀?
    What school did she come from; Ogun State University or University of Ife

    Àbí Bábcọ̀ck, kílódé t'ọ́n bìf e
    Or is it Babcock University? Why are they hating on her?

    Mosúnmọ́lá, ṣo mọ lọ́lípọ̀p lá
    Mosunmola, do you know how to lick a lollipop?

    Òwun tún dà, òwun tún rè, óyá Tọ́lá
    Where is she now? Here she is. Tola, it's time

    Kílón ṣe ẹ́ ná, yé ma fimí pọ́p kọ́là
    What is wrong with you; stop taking my attention for granted

    Ó fẹ́ máa p'ajá lọ́bọ fún mi, ṣé mo kọlà
    She wants to deceive me, do I look stupid to you?

    JJC kọ́ l'àwọn eléyìí, ọ̀gá'dé
    These ones are not novices, young man

    ÚNÌLAG ò jìnà sí lé'wa, gbàgbé
    UNILAG is not far from our house, forget it

    Mo ti rọ́mọ, mo ti rọ́mọ yakpa
    I have seen pretty chicks, I have seen so many pretty chicks

    Awúsá, fúlàní, yíbò àti tákpà
    From the Hausa, Fulani and Tapa tribes

    Àwọn ọmọ mi, àwọn ọmọ mi ń'Lọ́ńdọ̀n
    My pretty chicks, my pretty chicks in London

    Àwọn ọmọ mi l'Ámẹ́ríkà, àwọn stúbbọ̀rn
    My pretty chicks in America; the stubborn ones

    Àwọn t'ọ́n ma ń twẹ̀rk, lórí YóúTubè
    Those ones who twerk on YouTube

    I know you love me, I love you too

    Stórì yíì ti fẹ́ ma lọ́, má ṣe báyìí now
    This story is getting complicated; please don't act this way

    Ìgbà wo lo dé to fẹ́ máa lọ, má ṣe báyìí now
    When did you just arrive that you're getting ready to leave; please don't do this

    Oò rọ́kọ̀, oò rọ́kọ̀ ta ṣí wọlé
    Can't you see; can't you see the big cars we came in

    Ojú e ló mọ́ọ ṣe, wàá r'áwọn ọmọ ta ma ṣí lọlé
    You will witness in awe, the calibre of chicks we will go home with

    Wọ́n fọwọ́ pa ọ́ lára, ò ń dún míyáwu
    You're getting fondled and you are meowing

    Ṣ'ọ́lóńgbò ni ọ́ ni, o sì wá ń wò mí l'ójú báwun
    Are you a cat? See the way you're staring me down


    HOOK
    Dem be feeling us
    They were admiring us

    And now them they famz just to be with us
    And now, they're feigning familiarity just to be with us

    A lówó, a lẹ́nu, a dẹ̀ mọ̀'yàn o
    We have money, we are influential, we know important people

    A jayé orí wa, ko dẹ̀ kan'yan o, yeh
    We enjoy our lives, and it doesn't concern anyone

    See the money now

    We weigh, we no dey count the money now
    We weigh the money, we don't count it any longer

    We fully loaded ready on this now

    The moneneneneni running out, yeh
    Jargon


    CHORUS
    Sé kó wálẹ̀; kó dúró sókè
    Should it come down? Let it stay up

    Sé kó wálẹ̀; kó dúró sókè
    Should it come down? Let it stay up

    Sé kó wálẹ̀; kó dúró sókè
    Should it come down? Let it stay up

    Sé kó wálẹ̀; kó dúró sókè
    Should it come down? Let it stay up

    Sé kó wálẹ ò; kó dúró sóke ò ò ò
    Should it come down? Let it stay up

    Sé kó wálẹ ò; kó dúró sóke ò ò ò
    Should it come down? Let it stay up

    Sé kó wálẹ ò; kó dúró sóke ò ò ò
    Should it come down? Let it stay up

    Sé kó wálẹ ò; kó dúró sóke ò ò ò
    Should it come down? Let it stay up


    TRACK 2
    Óyá, ẹ ká wọ́'lẹ̀ fún pásítọ̀, ẹ ká wọ́'lẹ̀, ẹ ká wọ́'lẹ̀
    Listen up! Drop your hands for the pastor. Drop your hands, drop your hands

    Baddest guy ever liveth, hun, òṣé
    The greatest guy who ever lived; thank you

    Ìpadàbọ̀ ab'ìjàwàrà bí ẹkùn; eh
    The return of the lead warrior like a lion

    Mo fẹ́ ẹ́ńtá thè placè, óyá ṣ'ílẹ̀kùn; yéè
    I want to enter the place; open the door!

    Ex-boyfriend ẹ ń ran'jú, òwun náà ń bọ̀ *laughs*
    Your ex-boyfriend is getting visibly angry; he is approaching me

    Mo dẹ̀ mọ̀'yàn o *laughs*, hmm, Ọlọ́run ń gbọ́
    I know important people, hmm, I cross my heart

    Mo lè ní kán soó mọ́lẹ̀, kán táyì ẹ̀
    I can command them to tie him to the ground, to bind him in ropes

    Mo lè ní kán paá láró, kán dáyì ẹ
    I can command them to rub him with dye; to dye him

    Ṣe b'ọ́n ń báa sọ́ ń'sìnyí, ó ń forí lalẹ̀
    They're wooing her politely now, but she's not cooperating

    Ó da náà, lálẹ̀yí, á forí balẹ̀
    It's okay. This night, she will bow

    Wòó; ẹ bámiṣí àwọn ọmọ wólè
    Hey! Help me release the chicks

    Àwọn ọmọ Cọ́vẹ́nánt, àwọn ọmọ North Amẹ́ríká unì gan ò ní pẹ́ lánd
    The Covenant University chicks. Even the North-American-University chicks are about to land

    Àwọn ọmọ mi, àwọn ọmọ t'ọ́n blọ́ọ́dy
    My chicks, my bloody chicks

    Àwọn ọmọ t'ọ́n Ṣhínasà, t'ọ́n tún Ṣhíkọ̀dí
    My chicks, the likes of Chinasa and Chikodi

    I can't shout, ọ̀rọ́ pọ̀ nínú ìwé kọ́bọ̀
    I can't shout; there are too many words in the book of Kobos

    Bọ̀dí no be firewood, mi ò dẹ̀ ń ṣe rọ́bọ̀t
    The temptations of the flesh are strong and I'm not a robot

    Kí ní ti ẹ̀ mọ ń ṣ'èyin ọmọ èkó yìí gan
    What is the problem with you Lagos chicks

    O sì ń se bí ẹní pé ò rí mi látẹ̀ẹ̀kan
    And you're pretending you don't know I've been here all this while

    Aní kó rèbàdíì rẹ, o sì wá ń ṣ'akọ
    We asked you to shake your derriere, and now, you're strutting and ignoring us

    O sì wá ń ṣebí ẹni pé o ò mọ'rú orin tá n kọ
    Now, you're pretending not to know the kind of music we sing

    Kí ní ń ṣe ẹ́, àb'ọ́ ń gbọ́ Mafadó
    What's wrong with you; or don't you hear of Mafado?

    O ò ń gbọ́ Vice càrtẹlì, o sì wá ń bragadó; yéébà
    Don't you hear about Vice Cartel? And you're still bragging at us!

    Àbí ṣọ́ọ̀ṣì dípá laìfù lò ń lọ ni
    Or are you a member of the Deeper Life church?

    Ọ ọ̀ dá'yàn mọ̀, ṣhíọ̀; ọ ọ̀ mọ bàdóò, shíọ
    You don't know important people, shame; you don't know the great guy, shame


    HOOK
    Dem be feeling us *laughs*
    They were admiring us

    And now them they famz just to be with us; mi'ì gbọ́
    And now, they're feigning familiarity just to be with us; I can't hear you

    A lówó, a lẹ́nu, a dẹ̀ mọ̀'yàn o; you say?
    We have money, we are influential, we know important people; say what?

    A jayé orí wa, ko dẹ̀ kan'yan o, yeh; okay, take it up now
    We enjoy our lives, and it doesn't concern anyone; okay take it up now

    See the money now; you say?

    We weigh, we no dey count the money now; mi'ì gbọ́
    We weigh the money, we don't count it any longer; I can't hear you

    We fully loaded ready on this now; yéébà

    The moneneneneni running out, yeh
    Jargon


    CHORUS
    Sé kó wálẹ̀ (yéébà);  kó dúró sókè (yéébà)
    Should it come down? Let it stay up

    Sé kó wálẹ̀ (yéébà);  kó dúró sókè (yéébà)
    Should it come down? Let it stay up

    Sé kó wálẹ̀ (yéébà);  kó dúró sókè (yéébà)
    Should it come down? Let it stay up

    Sé kó wálẹ̀ (yéébà);  kó dúró sókè (yéébà)
    Should it come down? Let it stay up

    Sé kó wálẹ ò (yéébà); kó dúró sóke ò ò ò (yéébà)
    Should it come down? Let it stay up

    Sé kó wálẹ ò (yéébà); kó dúró sóke ò ò ò (yéébà)
    Should it come down? Let it stay up

    Sé kó wálẹ ò (yéébà); kó dúró sóke ò ò ò (yéébà)
    Should it come down? Let it stay up

    Sé kó wálẹ ò (yéébà); kó dúró sóke ò ò ò (yéébà)
    Should it come down? Let it stay up

    OUTRO
    Mi ò gbọ́
    I can't hear you

    If you can't put your hands up, you disappear

    Bahdo, baddest guy ever liveth
    Great guy, the greatest guy who ever lived

    You exit this territory, sharp sharp
    You exit this territory immediately

    Baddest guy ever liveth is in the building
    The greatest guy who ever lived is in the building

    Bahdo!
    The great guy

    Kó dúró sókè, kí ló ń jẹ́ kó wálẹ̀
    Let it stay up; what nonsense do you mean by "let it come down"

    Bahdo!
    The great guy

    Ah, they don know
    Ah. Now they know!
    Read More