Dang! Its been a whole year. Doesn't even feel like it. About a year ago I was employed at Techinnover Analytics Ltd, where I had several firsts - but I refuse to mention them here. I was managing software that issued tickets for Filmhouse Cinemas in millions of Naira, and an audio mgt. software that managed music, announcements, and jingles used in 90+ shopping malls and superstores around the country. It felt complex at the onset, but a few months into the 2+ years I spent there, it became routine. I wanted something else, something more. So, I spent a few nights sending out cold emails, hoping to hear back. On a particular night in June, after sending out about 50+ cold emails manually, I remembered something a friend and former coursemate had told me about using Twitter (now X) for job hunting, so to round off the night, I decided to search for a few backend roles there. After scrolling down a couple times, I saw it. Mono. Hmm. I didn't know too much about them at the time becasue of unfamiliarity with the Fintech space, but I loved their website. It felt modern and foreign. That was my last application for the night.
I sent out an email (could have been two to two different mails). I think a day or two later, I would hear back from the head of engineering, Ahmed Alfawwaz, who, despite being younger, would turn out to be my manager, and a great one at that. He was impressed by my resume and by something I had done a few months prior - I was featured on the Microsoft On .NET Live show where I talked about the challenges of managing data in distributed systems. https://youtu.be/dMsM0mN0hb8.
So, he scheduled for us to have a call. I was thrilled. Booked a session on his calendar and joined the call on the said date. Oops. He didn't join. I didn't know what to do. Should I send an email and look desperate or should I compose and maintain steeze. I sent an email jare, and he apologized for missing the call, saying he didn't see the booking. I booked another slot, and we had a meeting.
You know the drill: starting off with some light conversation and getting familiar with ourselves, before the real business of the day. He said usually they give a take-home assessment but since he was already impressed, we can just talk about the assessment right there on the call. I eat system design weekly so I was full and ready to rumble. Scratch that. I was readily humbled :D :D.
To cut the story short, he wanted me talk about tracking success rate (confidence score) for a list of institutions based on the success rate of the transactions they process. The system had to be flexible such that the tracking window can always be altered without distorting the result, and the system also had to maintain records to allow it track the confidence score across longer duration e.g. past month, quarter, year etc. Yeah, its sliding window problem and my thought process seemed to be sliding away.
Long story short, I started off well, started blanking out eventually, and then I was done - off! It was terrible. I knew it was offer. Omo. We had such a great start and now we're here. My beloved system design, something I thought I was great at.
I could feel the disappointment in his voice. He sounded like someone that was really hoping I would be the candidate to finally end his search. I wasn't. Omo, na so interview end o.
I only felt slightly terrible, surprisingly, but I shrugged it off and continued with my daily routine, but the experience never truly left me. So, about a week later, on the next weekend, I decided to pay a second attention to that problem when I got home from an evening walk I had where I couldn't stop thinking about it. So, I pulled up my laptop, scribbled down some thoughts on a piece of paper, and typed out the algorithm I had in mind for the problem. It missed a few edge cases but it did the job. I fed that to ChatGPT to enhance and identify more edge cases (it was still a crude solution at this point though). You can see it here: https://github.com/lexNwimue/mono-assessment.
I sent it over, mentioning clearly how I got the solution, and how I enhanced it with ChatGPT. Also told him I just needed closure and this didn't have anything to do with the interview. Can't deny it though, a small part of me was hoping the solution would help my case. I didn't hear back that day. I kept polling. Incoming webhook - email! He was impressed yet again. We scheduled another call, talked about my solution, then talked about a possible offer.
I didn't want to get too excited yet. I waited a few days, hoping they hadn't changed their mind. Then I got an email from the people (HR) team, and in a few weeks, after my notice period, I was officially in.
That was exactly 365+1 days ago.
My first task? Investigate and fix an issue on the settlement report service. It was always OOM-ing, so my solution was to switch from a memory-hogging approach to a stream-based solution. After my solution went live, I would occasionally look at the Grafana chart, impressed with how flat the lines have gotten over the past few days due to my solution.
Today, I still lead the payments team, and I do some of the things Alfawwaz used to do when he was still working with us, until he left a few months ago to join Apron, a company in the UK. I'm still grateful to him for wanting this role for me.
I did get what I want - something to keep me on my toes and not feel routine. Its been a year and sometimes I know less than 0.2% of what I'm doing - sometimes I know too much of it. Its never the same because Mono is not your regular company.
Later today, I'd be testing some fixes we made to our disbursement service as well as fix other issues on the dispute manager service, write a script for some fee-related stuff I'm not too sure about yet, then possibly making some updates following feedback from the TPS team on our partial sweep product.
That's it. Later.
Top comments (0)