In 2012, I was just a village boy from Nigeria who had nothing but a dream and a feature (J2ME) phone. Today, I’m a 19 year old Android developer who has worked on over 50 apps and currently works for an MIT startup.
My journey began with my curiosity about how to build a website. Growing up, I spent a lot of time online as I loved downloading games and reading Society Of Robots. I would save for weeks to buy a 10 MB internet bundle for 100 Naira ($0.28), which could last for a month in 2012.
I took the first and simple step which was to do a Google search about how to build a website and got millions of results. Not knowing where to start, I clicked on the first link I saw, which was from W3CSchools.
The article explained that I need to learn some languages (HTML and CSS) to be able to build a website. After confirming from other sources about this requirement, I started the W3CSchools HTML and CSS course.
Each day, after school I would head over to the website to study. Initially, the code and explanation didn’t make sense to me, but I kept studying regardless. I referred to tutorials from different sources when I was stuck. This would allow me to view the problem from different angles.
When I was younger, I struggled with my reading and writing skills in school. I was only able to get better at it with continuous practice. So I already had this model in my head: if I continue to practice — no matter how long it takes — I will ultimately be able to understand these programming languages.
Thank you, Hollywood.
I had a eureka moment a few days later. The idea was to build a better version of Facebook. At that time, you couldn’t see your Facebook friends that were online and Facebook was built to connect with people you already know in real life.
That was my billion dollar startup idea: build a social network with all the features Facebook doesn’t have. Mark Zuckerberg – I’m coming for you – or so I thought.
I spent the next few months building a better social network with any feature I could even think of using. I used a free hosting service called Wapka.mobi.
I was naively confident that I was going to win.
After completing the project, I did what anybody without an advertising budget would do. Spam the Internet for several days. After several days of marketing, reality slapped me hard in the face. I only got 200 users, which I had to keep begging to come back to the site.
I was depressed! A few months of hard work spent in vain. This taught me two important lessons the hard way:
- The cold start or chicken and egg problem facing new platforms
- I was building something I thought people need but ended up building just a feature factory.
While it’s okay to be motivated by a project, you also need to know when you are headed down a dead end. I spent a few more months trying to see if I could get more people on the site, but retention numbers kept dancing toward 0%, and I eventually gave up on the project.
But I was motivated by the motto of Lewis in Meet the Robinsons, “Keep moving forward.”
Seeking inspiration for my next project, I reflected on the needs of my local community. This time around, I wanted to build something people actually need and are willing to pay for.
I came up with the idea to make text messages cheaper and easier to send to multiple people at a time, more like Whatsapp backed by SMS. After speaking to different people about it, I decided this was the next thing to do.
I named the project Xmx Me. It was going to be a J2ME app. This meant I had to learn Java. Looking back in time, I have to admit that it was the biggest challenge I encountered. I had to read some tutorials several times to fully understand them.
After completing a few Java courses, I was ready for work. Relentlessly typing one line of code after another, I carefully built the backend with PHP, the frontend with HTML and CSS, and the mobile app with J2ME. The app was coming to life.
I built all of the pieces of my app not on a laptop, but on a feature phone (J2ME).
You read that right.
How I built my production apps on a feature phone
At this point in my life, I have never programmed on a laptop. I simply couldn’t afford one. My parents wanted to help me. But it was difficult for them because they had to choose between paying our school fees (or other necessities) versus buying me a laptop.
I hadn’t used a laptop before, and my only interaction with computers was at cyber cafes. I remember watching some videos about how to use a computer (left click, drag, drop, and other basic stuff) and then walking into a cyber cafe to practice them.
I was lucky and a relative had given me a feature phone (The Nokia 2690). The phone below changed my life and it’s what I used to develop Xmx Me, my failed social network and several other projects.
With nothing but a phone and the will to succeed, hour after hour I typed my code on that tiny keyboard. I was lucky again to have found an app that allowed me to compile my J2ME projects. Yes, building a J2ME app on a J2ME phone is possible.
The SDK was resource hungry, so when my battery went out, I would write the code on paper to review any syntax errors. I don’t think I will fail any Java whiteboard coding tests after having done this for so long. 🙂
Launching my group SMS app
After some months, I had the product ready. I was able to convince someone I met on an internet forum to help me pay for the website hosting and the bulk SMS service for a limited number of SMS units.
The app launch went well — at least better than my first project. We got some local press, and one of Kenya’s top blogs even wrote about the app. We grew almost organically to about 5,000 users.
We were in business and we were getting transactions a couple of times a day. With no prior experience running a business, I made some huge mistakes, some of which were:
- There was no easy way to charge users in Nigeria. Not everybody has a debit card. So, I allowed people to pay using their mobile phone credit. The problem here was, there is no official way to convert this credit into money. I had to sell to vendors, who bought it back at a ridiculously low rate.
- I wasn’t very experienced with running a business. There was little to no accounting. I was losing money and I didn’t know about it. I didn’t factor in some overhead costs. There were several missing pieces.
I was considering selling the App to buy a laptop. Not knowing what to do, I went online to beg. Yes, I was that shameless and hungry. It didn’t turn out well as I was accused of being a scammer (later resolved). Again, I was inexperienced and I handled the situation poorly.
After borrowing money multiple times to keep the business running, I decided to throw in the towel. Looking back at this, I think it was a bad decision. I think with a little more learning and experience, I would have been able to make things better. Maybe I didn’t see any future in an SMS app. Well, I did a throwback recently and many of the users still love the app.
Lessons I learned along the way
I realized if I was going to get a computer anytime soon I will have to work hard for it. So, I began saving all the money I could. I cut my daily expenses and lived as simple a life as possible. I asked my relatives for help. I even sold some personal belongings to raise money for the laptop.
Still, it wasn’t enough. Determined to achieve my goal, I took on a freelance job of building a website to earn the remaining sum.
How do you build a website for PC on a feature phone? Simple: have a Facebook friend you disturb every night to view your website on his computer and give you feedback. It was cheaper than going to a cyber cafe repeatedly.
I also made heavy use of Ideone which allowed me to run my PHP scripts to see if they work before uploading them.
Well, I finally was able to get a laptop. I can still remember the feeling of joy I had. That smell of plastic when you unbox a brand new cheap computer. I could now work on any project I wanted without feeling restricted because of my phone.
Since J2ME devices were slowly dying out, I eventually switched to building for the Android platform. My Java skills were still relevant there. I just needed to learn some platform-specific things.
The next year in 2015, after high school, I decided to start working to support my family. So I began freelancing. I was always active in local forums and groups, looking for people who want help building an Android app.
Because I didn’t have a good portfolio, I would build apps for some people before they even paid, without any guarantee that I’d be paid. I was stung by this approach several times, but it allowed me to build a good enough portfolio.
I would like to share something I wish I knew while I was freelancing:
Don’t spread yourself too thin. Taking up too many responsibilities is not good for your health, your family, or the clients.
I have worked with several clients from different parts of Nigeria who loved my work. I eventually got a full-time job in Lagos, Nigeria after working with a client remotely.
While going through my news feed, I saw a job advert for an Android developer position at Dot Learn. I looked them up and realized they are an MIT startup working in an education technology field that I was passionate about, and in a market I understand. They had a unique idea: to solve the problem of access to online education by making educational videos that are extremely data-light — as low as 1MB for every hour of video.
This was almost unbelievable, and I knew it was key to making education very accessible to a lot of people.
I am very passionate about revolutionizing education in Africa. In fact, I have already built a free (ad-supported) exam prep app called PrepUp that has over 30,000+ installs and was one of the finalists at the West Africa Mobile Awards 2016. I wanted to be part of what Dot Learn was building.
I have gone through the developer job requirements and I felt I had a chance, but impostor syndrome didn’t want me to be great.
For days I had conflicting thoughts. Should I apply or not?
Then I realized one thing: I had nothing to lose.
The worst that could happen is I get rejected but I won’t die. So, I went ahead and applied.
Fingers crossed, I started re-watching several of the videos I had downloaded from MIT OCW. I also spent some nights watching some coding interview solution videos. In the past, I had mostly been hired based on my strong portfolio and previous job experience, but I didn’t want to be caught off guard if they gave me a coding interview.
Well, long story short: after lots of preparation, answering some difficult questions, a phone interview, and some coding projects, I was accepted.
I couldn’t believe it. I was ecstatic.
Looking back at it, this was one of my best decisions.
Working at Dotlearn, I have had exponential growth in my career and have met with lots of awesome people from MIT, Harvard, and other great places.
From attending big events like the Techcrunch Battlefield (I ended up missing my flight) to realizing I could rap (no links), it’s been a fun and exciting experience so far.
I know I’m just getting started, but the goal of my story is to inspire someone somewhere in a similar situation like me.
I will be going back to school next year. I think I now see the importance of getting a college degree. I might be wrong but I have already made up my mind on this.