Under The Hoodie — Michael Trojan Okoh, CTO at The Peer

In this edition of #UnderTheHoodie, Michael talks to us about learning to code before he was a teenager, learning humility, and how he got the name “Trojan”.

Under The Hoodie — Michael Trojan Okoh, CTO at The Peer

Under The Hoodie is a weekly series where we talk to people about their journey into tech. It focuses on the intersection between life and career. UTH Week 12.

Michael Trojan Okoh is the 21-year-old CTO at The Peer. In this edition of #UnderTheHoodie, Michael talks to us about learning to code before he was a teenager, learning humility, and how he got the name “Trojan”.

I always thought Trojan was a nickname. It isn’t?
No, it’s not. It’s my middle name.

Wow. Your parents named you Trojan?
Well, they didn’t. It started in secondary school. We were in computer class when I wrote a shell script that shut down all the computers on the school network.  All the computers were on the same network and I could send a CMD over the network. It was supposed to be a prank. It took two days for them to trace the virus to the PC I used, and from that time, everyone called me Trojan.

It became so popular that if I searched for it, my profile would come up. My dad eventually suggested that I do a name change, so I did. So, yes my name is officially Trojan.

If you could build viruses in high school, you must have had some experience before then. When did you start coding?
I would say I’m a bit privileged. I got my first laptop when I was five (5) as a birthday gift from my Dad. I didn’t start coding then, though. Not until I was 10 or 11. Before then, I would just scrawl some stuff on Microsoft paint and write random stuff in Excel.

We had internet access at home through ethernet cables, so I would load up google and search for random stuff. I stumbled on Apple events like Apple Keynote, WWDC, etc., and started watching them at a very young age. I saw how Apple released the Mac OS X Leopard, Snow Leopard, Lion, Mountain Lion, etc. I was very interested in how to build stuff like that.

I was curious enough to google how to build my own operating system, and that was how I got started. I learned about kernels, microkernels, C, Assembly, etc. Basically, I started to get some context about it.

I told my Dad about wanting to build my own operating system. By the way, my Dad is my Gee. He writes Assembly and is very good at it. He taught me X86 assembly. We spent a month doing weekend projects to build a kernel on the I/O port. The kernel let us know if anything had been plugged into the peripheral—just a log of events that happened. That was the first software I built.

Then around the same time, Blackberry released the Z10, and there was something they did with the UI that I really loved. I did some research and found out that the Blackberry OS 10, which was the operating system of the Z10, was built with C++. So, I started learning C and C++.

At a point, it became boring because all I was seeing was black and white. I couldn’t really do the UI stuff I wanted to. There was this GTK C++ library you had to use, and then I thought you had to be an expert to do it.

I felt that way until a family friend who had worked at Microsoft came around and told me I could get into web development; that it was easy. Well, not like it was easy, but then it was just HTML, CSS, Ajax, and jQuery. He gave me some PDFs and  I started learning HTML and CSS.

To motivate myself, I would go to Apple’s website. Incidentally, it led to me quitting front-end development. Apple would have all these beautiful designs and animations on their website, and I would be stuck wondering if I was ever going to be that good. I mean, I was still struggling to center div and add colors at the time.

Then I wrote ASP until I got my first job which was to write a desktop platform that would collect details and store them on a Microsoft Access dB. I got paid N10k for it.

When was your first job?
I was around 13/14 then. The family friend who introduced me to web development needed to build a small project for his company, so he commissioned me to do it. He taught me JavaFX, and how to build a database layer. I think that was where I picked up backend development. It was more interesting because it was straightforward. I didn’t have to do any magic or write the y-axis or any of those front-end things.

But my first real job came in 2017 at ntel, the telecommunications company. Another family friend came around and told me about the job opportunity. It was around the time I was fighting for my freedom at my parents’ house, so I took the opportunity to move out and join ntel.

I was paired with a team that was building their self-care portal. Before then, I had been learning Laravel and building stuff on my LocalHost that never saw the light of day. When I joined the team, everything seemed like magic to my eyes. It was a stressful time because I had to prove myself. It was my first time working with a team and building something from the ground up. I worked overtime to learn everything I could.

It was a great way to learn, but I don’t want to do it again.

Weren’t there senior teammates you could rely on?
There were. One of them, his name is Rasheed was very instrumental for me. He was patient with teaching me stuff. He even taught me git. Before then, I would send clients zip files via emails.

ntel to now has been 4 years, what other remarkable stops have you had on your journey?
I was 17 when I was at ntel, and earning about 100k, which was good money at the time. But I decided to resign and enroll for the HNG 3 Internship which is unpaid. It was a risk, but it paid off. Most people I remember from my set are doing quite well for themselves now.

I thought ntel was brutal. HNG was a warzone. [laughs]

Mark [Essien] would light a fire under our butts. He would give us tasks that we thought we were incapable of doing and literally force us to skill up. It didn’t matter how you got it to work, you had to make it work. Sometimes that would involve working with competing teams.

HNG taught me how to work with people, lead teams, negotiate and even fight engineering wars. One time a team deleted our repo on a joint project, so we had to send them a DDoS attack [laughs]. It was pure vibes but I learned a lot.

After the internship, I worked at for two years. I worked with a lot of great people including Neo, Sarah, Nanmso, Friday, Fisayo, etc. It was a big family and we still keep in touch.

I thought when you got into the internship it would be like a breeze
I think it’s very easy to become proud if you’re the only one on your island. But when you get exposed and start seeing how things really are, you’ll notice your privilege, and how much you don’t know.

So, why did you leave eventually?
It wasn’t that the work was boring. I just get bored easily. After staying for two years and working on several projects, I needed something different. Also, that was around the time Fintech started getting interesting to me. I did some freelance work, including some documentation with TeamApt. And I was also shuttling school at the time.

Oh. How did you manage school with such an intense workload?
I chose my battles. I could either be an A student or be good at my job. There are people who can do both effortlessly, but I had to make the choice of trying not to fail too hard and being good at my job. The alternative for me was to be an A student and suck at my work for a couple of years.

What were you studying?
Computer Science.

Since you already did computer-related stuff, shouldn’t passing exams have been easy?
No. In my 200/300 level, I started to question if I came to study computer science or mathematics. That coupled with the curriculum being outdated was a challenge for me. I mean, we were writing FORTRAN, and that’s a language that’s older than me.

Can you write FORTRAN?

No. I read to pass. [laughs]

In fact, I have a funny story from when we were writing our FORTRAN exams. We were asked to write a program for a calculator. I was done with other questions, and I wanted to do some finesse. They expected us to do something simple like plus or minus, then return output. Because I was already in the field, I wrote functional programming instead. I created a function for add and subtract, took them into an argument, created an initiate method, added a prompt, and even added comments for extra measure. The whole thing took two pages because we were writing on paper. The lecturer failed me.

I got frustrated trying to prove myself to the lecturers and eventually stopped caring. I have graduated but I haven’t collected my degree. I have no idea what I graduated with.

You’ve had a storied career so far, what are the qualities that have helped you to achieve this level of excellence?
First, I’d say curiosity. I have a problem with people telling me they want to get into tech but don’t know how to. If you really wanted to get into tech, you would have found a way. I’m aware there are people without laptops, I understand my privilege. But if you really wanted to get in, you’d have done some research to understand what you need. Maybe then, your question would be “how do I get a laptop?” or “is this what I need to learn?” instead.

Two, assume you don’t know and ask questions. If you’re unsure of stuff, it’s always better to ask questions, search google, do whatever.

Three, hype yourself. You’re literally your biggest hypeman.

Four, if you’re going to do something, do it well. I write technical docs professionally, and if you read my articles, I try to make them neat and highly contextual. If I’m taking screenshots of code or a terminal, I try to make them neat with a shadow effect. I learned it from Neo Ighodaro and a few other top writers. Just going the extra mile to make it better.

Finally, I’d say be kind. I’ve seen people with a chip on their shoulder and I don’t like it. If someone needs help with a problem, and you’re in a position to help, be kind. You never know how much you’ll be helping people. It might just make their day, month or year.

Get weekly insights on tech startups and VC in Africa

Join Us On Telegram