Contact

Currently building at the Recurse Center

2024 Year in Review

Hi, and welcome to my 2024 End of Year review. This one is going to be really lengthy, way lengthier than last year’s. Last year, I don’t think I actually wanted to write it for myself, but it’s a good thing that I did. I think I wrote it because people were writing it, and I felt like I needed to write something too. But I mean, I would tout the idea of, having something to look back on.

I didn’t really believe it at the time, but now I am very glad that I did because I can reference that and say that, I didn’t really go in-depth because there wasn’t a lot I could reference and it was all about stuff that wasn’t as important. So yeah. So I’m going to do the timeline style for this one, meaning I recount every month and talk about the things that happened and all that. So I might as well just get right into it.

January

So in January—what happened in January? The year started off pretty chill. Spent New Year’s at the beach. There were a lot of fireworks, and the guys were there. Stellar time to be alive.

Shavliel’s Graduation

So that year was my friend Shavliel ’s graduation. He got his Bachelors in Agriculture, which I must say was a really proud moment for me, shout out to Shavliel . I realized that, as someone who didn’t get the opportunity or wasn’t able to finish my education because of financial constraints, it was wonderful that I have people who completed the whole academic journey and actually came out of it with really flying colors and everything.

Graduation Image

The Experience 2

Shortly after that, a day or two later, there was a performance—an event held by my friend Hemans . He would invite artists to showcase their art and performers to share their music with the artistic community. There were people who performed, yes, but a friend of mine, Flex The Father , had a performance. I hadn’t heard from him in quite a while. We got to catch up briefly at the event. We talked a bit, and I got to see his performance, which I hadn’t seen in about a year or two.

The song he performed was one I had seen him perform before, but this performance was very different. His charisma was incredible—he was really owning the stage in a way I’d never seen before. The stage presence was amazing. Everything was just wonderful, honestly.

He was completely owning his craft, and it showed how important it is to command your audience. I remember at one point, the DJ kept messing up his mix. Flex got so frustrated that I thought there might be a confrontation. The DJ kept making mistakes, and Flex told him, Do not mess up my stuff. Do not mess up my shit!

Yet, every time the DJ messed up, Flex would start over with the same energy. It wasn’t just words coming out of his mouth—he was truly owning his performance. That was beautiful to see because it demonstrated the importance of fully embracing your craft.

Before, I would talk about this concept but not truly embody it. Seeing him do that was a revelation. The energy he brought was so refined and authentic—it was so him. I remember thinking, Wow, this guy has really been in the lab working. He sent me some of the music he made, and honestly, I was blown away.

That experience motivated me to work with my whole heart. It doesn’t matter what you do—whatever you create is your product. If you decide to draw a line in the sand, that is your creation. So if you’re going to create something, make it look good. Even if no one else notices, you will know that you made it, and it should mean something to you.

Because if it doesn’t mean something to you, why should it mean anything to anyone else?

Thank you, Flex, for that.

February

February was my birthday month. I didn’t really do a lot of celebration, but I did celebrated, in my eyes at least, which is a huge step because usually I won’t. I would just treat it as any passing day. But it was a great day. I got sent baked goods, as a gift, it was all wonderful. Oh, I also had someone buy a React course for me on my birthday from Josh Comeau, so that was awesome as well.

March

Busua Trip

I went on a trip to Busua. That’s in the Western region of Ghana, One of the main reasons I ended up going for vacation is I experienced panic attacks twice, probably because of overworking and stress, and I guess my system didn’t know how to handle it anymore. Mental health awareness.

That was the first time I’d ever taken a vacation. Went on a solo vacation to Cape Coast, stayed there—no laptops, nothing, just breathing, living and reading—and it was wonderful. I got to meet people, including Jean, a Googler (someone who works at Google). I got to meet some other wonderful people who were so friendly. Someone even taught me how to walk on tightropes.

It was a wonderful experience. Getting to interact with the locals at the beach, where I also found a secret spot where no one was—it was rather enlightening. During the trip, while I was centering myself, something made me feel like I had to take the initiative to move out and get my own place. I decided on a timeline of 3 months.

So when I came back, I told the boys, Hey guys, I will be leaving in 3 months, and lo and behold, in 3 months, I actually had to leave, which was crazy. But then it just goes to show that you should really trust your intuition in certain things. So yeah, that was my trip.

MTN/AR

In March, I got the opportunity to work on an AR Lens for MTN. They were having a sending-off party for their former CEO. They organized to do a huge thing, but from what I gathered, the problem being solved was that he wouldn’t be able to take pictures with everyone, so they wanted to make an AR Lens where you could take pictures with a AR representation of him. By being able to work on that, I got to know someone who knows someone at MTN, and that was wonderful. I will expand on the reason why this was wonderful later in the blog, though.

Not a lot happened in March really. March was a lot of NC work, and I was outside of the house a lot because of the rampant power cuts. Getting stuff in place for my podcast, which I actually didn’t keep as active as I wanted to for several reasons, which I would also outline later in the blog.

April

In April, I started working out. Unfortunately, I wasn’t as consistent as I wanted to be. I just took the plunge and started. That was actually the most important thing because I just wanted to start—just do it. And I did, and I kept going, but unfortunately, I would be moving around a lot in that month and the coming months, so I wouldn’t be as consistent as I wanted to be. Plus, I had to move to my new place—more on that later, though.

Casprine also came to Ghana. He was here for about a month, and we got to talk and hang out. We were with him most of the time at the Airbnb where he was staying while in the country. The whole group chat was there: Casprine Assempah , Dave , Sebastian , John Rhule and Mychi Darko

Us guys used the flowers that a friend got someone as a gift for a group picture.

Group Picture

Three flowers and three guys because we are the prize😆

Sebastian

There was this particular event where, Sebastian and I had to go to the Legon Botanical Gardens, which is now closed, unfortunately. While we were there, he would talk about, this thing where usually, because of life’s hardships and all, it’s common to hear people say life is hard. Life is hard. Common within the Ghanaian context but Sebastian brought up how Mr. Eazi came from hardship, but he would use the phrase Life is Eazi, which would be a play on his name and a play on the word easy. And he decided that from then onwards, he’d start using the phrase life is easy. That really was a very wonderful concept because a man is what he thinketh. That’s something I got to adopt in my daily life, and I must say it really changes the way you look at things, because when you keep saying life is hard, everything can seem like a burden.

Even stepping out of the house seems like a burden, but life is easy, honestly. You just have to go out there and do what you want because you can just make things. If you want something that you like, you can just make it. You don’t have to be constricted by your location or your position.

You can go out there and meet people who want to help you. There are people who beg to help you for nothing, but you just have to find them. This quote I saw on Twitter that says, “if you, you want to run and you want people to run with, just start running. You will meet them.” You will meet them on the track. Like, just run. Just keep running. hat’s a wonderful thing.

May

In May, there were a lot of power outages—so many power outages. It seemed like a lot of load shedding was happening during that time, so I spent most of my time outside. We’d wake up in the morning, shower and all depart to wherever their workstation would be outside the house. My spot was Wild Wheats at the Oyarifa Mall. Lovely place with lovely staff. I’d work out of there and I would take my NewComma meetings and calls there as well.

During this time, I was trying to take Hay seriously. So when I was done with NewComma work, I would move to working on Hay, formerly known as Mailpigeon. I was working with Esther Bansi and Ornella on this. During this time, I’d be listening to podcasts, usually the Y Combinator podcast or their YouTube series.

During that time, there was also Pent Hall Week, and I got to help Shavliel run his stand at the event. He sells cocktails, and his business is called FunGuy. For about 3 or 4 days, we would just go and hang around, helping however we could. If there were things we needed to share, or people we needed to talk to just to keep the place alive—just being there so that the place would stay lively. That was super helpful for my people skills and I believe that was super helpful for him too.

That served as my wake-up call to actually start a physical business. Just because I’m into tech doesn’t mean I have to stick to tech for everything that I do. Like, all my income doesn’t have to come from tech. That doesn’t make sense.

When you listen to people like Warren Buffett talk about investing, they always talk about diversifying your portfolio and proverb about not putting all your eggs into one basket. I hear them and in my mind I would think maybe I’ll do a fintech app, and I’ll do a social media app. But just because I’m into tech doesn’t mean I have to do just tech sales because as it stands, I am moving to more of a founder position in the projects that I take on and how I interact with people, and products. Not waiting for anything to fall in place just going right at it.

It took me until the final month of the year to realize what I actually wanted to work on as a physical business. I’m currently pursuing that—more on that in the December timeline and recap. So, yeah. That happened.

June - August

As I mentioned earlier, I moved out.

When June arrived, I got a call from NC management. They had a conversation with me to let me know that the runway had ended. They hadn’t been able to raise new funding, so there would be no money coming in.

I wouldn’t be paid going forward. It was contract work and wasn’t like an actual salary in the first place. But when that ended, I continued to work for free because it wasn’t about the money. Even though it was a nice touch to help me stay incentivized, I was really there because I loved the product so much as a creative. Building a product for creatives is really peak social work. So that was why I stayed. Stayed with them for free. There was no money coming in since then until I was let go.

That exact month was when I had finished saving enough to move out. During those 3 months after my Busua trip, I saved enough money to move out, and at the end of those 3 months, I lost my job, and I still had to move out anyway. It felt like a whole fresh start—like I’m moving to a new place to start a new journey with everything anew and that’s exactly how I treated it.

Because I couldn’t afford to furnish the place, move things around, eat, and everything, I had to let go of my phone by selling it. I bought a little iPhone 6S, but the battery got swollen, so that phone became obsolete. So I didn’t have a phone for about 3 months-just me, my laptop and my PlayStation.

I would wake up, take a bath, sit down at my laptop, and just study. Looking back, I think I was using that to cope because I didn’t want to actually dwell on my current situation. So I just coded straight through.

I think that period was a little depressing for me, but because I was able to deflect it so much, I hadn’t realized it at the time.

September - October

Recurse Center

In September, I met Isaac Oppong and Raymond Akornor . This was while I was trying to join the Recurse Center. Thank you, Joel Anaman , for putting all this in place for me. My friend Dave, who is my mentor, mentioned that he was in the Recurse Center. I had no idea what that was and I wondered, is that a job?, and the answer was No

It’s a programming retreat. And he mentioned that it’s free, and you don’t have to pay, but they don’t pay you either because they no longer provide financial assistance due to budget constraints. So I was like, “Okay, cool.”

But then I still wanted to go anyway because—I mean, yes, I love that I get to code, but I wanted to expand my horizons, and I had decided earlier on that I wanted to join Y Combinator. So I figured joining RC or the Recurse Center would be a nice step towards that. That way, I get to practice my people skills and sharpen my programming skills with other good programmers in the world. To have culture exchanges and also revalidate how I solve problems, how I choose the kind of problems I solve, the whole deal.

And Isaac helped me understand that the Recurse Center is a wonderful place for that, and I figured, why not? So I applied, and he gave me a few tips on how to go about it. He mentioned to me several times that I shouldn’t be nervous because they are not there to fail me. They are not there to attack me—they are there to just help me, which was a huge boost to my confidence at the time.

If anything, they want to help me. So I shouldn’t feel antagonized or alienated or anything because everyone is open. They’re my friends, everyone. I don’t need to feel so awkward or anything of the sort. I actually got into the Recurse Center, which was awesome because that was the first thing that I actually applied for and got because I don’t tend to apply for things . I’m very selective about the kind of projects or endeavors that I take because I don’t want to do something that doesn’t mean anything to me.

Getting in was when I realized that I do not know how to celebrate because I was so excited, I was in the house, and got back from visiting Raymond.

Raymond Raymond was the first person to get into RC from Ghana. Super chill guy. We met, and bonded over music.

We were just rapping and everything. All the way, he drove me back to my place, and I live a bit far, but he drove me anyway, just rapping all the way back. And he said something really cool to me which was that he doesn’t like to fit in the category of people who just learn enough to get a job and leave it at that which made me feel so seen. He’s a super smart guy, super interesting guy. Shout out to Raymond.

And he told me that he was supposed to go to the Recurse Center back then, but it was COVID. He was to go to New York to attend, but it was COVID, so they had to move batches online

I really wanted to celebrate, but I realized I didn’t know how because I’ve never actually celebrated anything. And there’s this idea that certain people have—they’re not supposed to celebrate a win, it’s not actually a win, you just keep moving. But I don’t think that’s right, because I want to enjoy the little things and my little pleasures, and this is not even a little thing. It’s a huge thing to me. And I couldn’t even celebrate a huge thing. So that felt very hurtful, and I decided that I’m going to take the initiative of celebrating things more. I’m going to live with an open heart always and I need to celebrate it in whatever way I possibly can. So yeah, that was the Recurse Center.

Also got into the game Black Myth - Wukong that came out, and I’ve been playing—wonderful game. Shout out to Game Science. During my time at RC, I was trying to focus on Hay but I realized that I was losing interest really quickly. And one day I had to sit down to reassess why I was losing interest realized that I didn’t actually care that I was creating a Typeform competitor.

The honest truth is that I don’t care about forms as much because I don’t even fill forms that much. It’s not something that I have come across that much to be able to say, Okay, I have used this so much and I think I can improve on this, so let me bring up my own solution and I think that’s how I want to approach projects from now on.

Only approach and tackle projects that I actually use and care about because I only have so much time. And if I’m going to work on things, I might as well work on things that I believe are the important ones because the time is going to pass anyway so I might as well. No more side projects. Because why build a bookmarking app when I’m perfectly satisfied with the one I use? Or a form app that I don’t care about when I can actually work on something that I care about?

To everyone who this makes sense to: Thank you for understanding.

Before RC, I had started study on email servers. Had to borrow a spare HP laptop to tackle that and that was the project that I went into RC with to fully flesh out and I met Sufian Rhazi and Ninad Pundalik who taught me so much about setting up email servers with custom domains and we actually got banned by Google one time (temporarily though). I also found out that the ISPs here in Ghana do not allow you to use port 25, which is the default port for email servers. So I had to find a workaround for that which was having to SSH into RC servers and take it from there.

I also met Cindy Wu who is also a YC alumni and we had such an eye opening conversation about what it means to be a founder and picking up problems to tackle and the way you tackle them. How your disposition is also a huge plus to that.

November

In November, I was gifted a kitten by a friend, and I named it Czar. It was too young to tell the gender, I was with it for a while, about some days or a week, and I had to leave the house to attend to some other things. Unfortunately, It passed away and I took that more to heart than I thought it actually did.

I’ve had cats back in the day, and I wanted to actually be able to nurse something from its young age. Unfortunately, I wasn’t able to because it passed away. Hard truth is I wasn’t ready for that because I wasn’t ready to take it on as I had thought. So I wasn’t in the space where I was ready to take care of a pet, and what happened was that it died, and that cost a life. So that was also a wake-up call that if I don’t have the time to commit to it, then I shouldn’t do it because it’s just going to be harmful to the thing I’m committing to. Because why do I say I want to adopt a cat when I know that I would have to be leaving the house, and the cat would be alone for a while, and it wouldn’t be able to take care of itself yet because it wasn’t strong enough. So I would need to be around, and I had to reassess my priorities and what I take on and what I don’t. RIP Czar

Esther’s birthday

That was a blast. Her boyfriend, Devin, threw a whole birthday party for her and her expression was priceless. That was very beautiful. For that, we had an Airbnb at the top floor, so the view was nice and everything. During that, I got to catch up Sebastian .

Esther's Birthday

Road Trip

Later in that month, I also went on a road trip with De-Great Yartey and Mychi Darko . It was originally to Somanya, and the plan was to leave in the early morning.

We couldn’t catch the sunrise, which was my fault entirely for being late. We got to Somanya, and he had gotten a new car, a BMW. So he was just revving it, which was pretty nice. We got to Somanya, and the question was Where should we head out next?

We figured, since we’re here, we might as well go to Akosombo. And so we did. We found a little spot nearby (Aylos Bay) to eat and relax, and some of De-Great Yartey ’s friends came around which made the trip livelier.

I had some questions which they were delighted to answer, and that was nice because I realized I ask way more questions now. And I believe that’s the effect of both being in RC and also me finding myself. During the whole trip, we went on two boat rides. The first was in a canoe, I got to stand on rocks in the water, which from afar can look like I was standing on water, which was cool.

And the second one was a cruise ship. It was like a 45-minute trip around the Volta River. I realized that everyone was having fun, but I was the only one who wasn’t.

Yes, the cruise ship was really nice. We were at the top of the cruise ship and all. But then everyone around the shore of the river was living in poverty—abject poverty. You see people peeing in the water, defecating in the water. You see a woman in a canoe rowing on with food. When you go around it, then you go meet Aqua Safari and when you’re over at that side, you don’t get to see all of that and it’s not like poverty is remotely new to me or anything though but the class divide just dawned on me.

It was then that I realized I don’t exactly know my family history as well as I want to. I don’t know my ancestors because I didn’t just appear here. I came from a long line of people who were here a long time ago. And who knows—I might have the hands of my great-grandfather or maybe my great-grand-aunt’s hands and someone else’s feet. My hands look like this one’s feet. My face looks like this one. People that I do not know, but they came before me regardless. And there are people who are going to come after me, God willing.

And I believe that people make wishes and wishes get passed on because when you come from that, you desire to leave. I don’t think there’s anyone who would be comfortable in that position. You desire to leave and then you have offspring. You pass desire through your DNA. Maybe the drive that I have, the thought patterns that I have because you don’t know where your thoughts come from.

You think that you think them, but do you really think them? Because who gave you the thought? Do you really control how you think? People will say that we aren’t actually in control of how we think, at least not fully, because the conscious part of our mind only make up 5%. The subconscious is 95%. So in all that 95%, there’s a ton of information that we cannot access, but it influences the conscious.

So all that stuff in the back, what is it? Where is it from? Because when I was born, I could think, but how did I know how to think? So that is one interesting thing that got me all of a sudden—everything, which I shared with Sebastian.

Because I didn’t know how to share with the people on the cruise ship. Everyone was new to me, and they were having fun, and that would be a depressing thing to do to soil the mood, not just for myself, but for everyone.

December

Voting

December was election time, and I actually voted. First-time voter. I used to see voting as a silly thing that didn’t matter. I cant help but feel like it’s rigged but I still went ahead because my outlook on things has changed. I want to be able to be active in the things happening around me. I can’t just have things happen to me. I should be able to influence things because I have ideas I want to see in the world. In order for me to make that happen, I need to be a part of things as well. So I think voting was a really bold step for me because I actually took the initiative and went out.

And mind you, my polling station is nowhere close to me. It’s an hour and a half journey. Went to cast my vote anyway. It rained that day, which reminded me of when the late president Atta Mills died. There was heavy rain everywhere in the country.

Election clouds

Okra Farm

I’m also starting an okra farm with Shavliel, who, as I mentioned earlier in January, has a Bachelor of Science in Agriculture degree. We went to see the place and everything, but things are a bit slow on that end. There’s stuff to be addressed over there including clearing of the land.

Lucia

So going back to my previous point about the wake-up call while helping Shavliel with his stand was a wake-up call to starting a physical business. The business that I actually decided on working with is a bakery. It’s planned to be a full restaurant, but I’m starting with a bakery for now. I struggled to much to find a name.

It took me weeks just thinking of a good name to give it. Since I was working with my chef, I figured I would use her name, but she was very adamant about not using her name. So my suggestion was my mom’s name, and Mom’s name is Lucia.

That’s one reason. That’s definitely one. Another thing is that starting a food business was something that was always a dream for her, but she was never able to pursue it. So, I figured I could use her name in her honor. So that’s how Lucia came about, and I am just starting out.

So that’s the interesting story about how Lucia came about. I am in charge of everything. I put in a very personal touch to the point where I am designing the packaging myself. The name, the logo designs, colors, working hand in hand with the chef to craft the food that comes out, sending out samples, all of that good stuff. It’s been a tough ride so far and it’s going to get even tougher. But this is all practice for the founder that I am becoming.

Brent

I met a photographer named Brent , which I actually didn’t plan on meeting, but doing so was one of the best things to happen to me because his story is so wonderful and interesting. he lives in Koforidua, but does a lot of work everywhere. He’s been taking photos since about 2014.

He showed me where he started, and as a photographer, he keeps discards. He showed me his room in 2014, his parents’ house in 2014, where he came from and where he is now. The difference is stark. It’s a tremendous gap, and that was super impressive. When he started out, he didn’t have a phone. He didn’t have a camera. Nothing. He would use his friend’s phone to take pictures and put a logo on them. That’s how he started and worked till he got his own phone.

He would use the phone till he could afford a camera, and still on the grind. And he kept working his way up. And I’ve seen pictures that this guy has taken. I tell you, he really has the eye. There are pictures that are really award-winning pictures, and it just hurts that he doesn’t have the platform that he needs to put that out.

And all that makes me think about Newcomma and the potential the platform has. So I guess that’s a sign for me to reach out to Natalie and Nigel to work on, if possible, a photography campaign together.

Hike

I went on a hike this year at Korforidua, and there’s a different blog about that if you want to read the whole story. There was this particular tree on top of the mountain that I had always looked at but never actually saw. The last time I was there, I really saw it. I didn’t just look at it—I actually saw it. I thought that would be the perfect logo to use for my app Endow, the express tracker for mobile money. I wanted to model that tree for the logo, and I decided to climb the mountain and see the tree for myself.

So I just ventured out and started walking. I would ask whoever I could to show me the way, and some would. Sometimes people didn’t know the way. Sometimes people would be rude about it, but at the end of the day, I found it. I got lost, and it was a whole ordeal—I got to the top, and then finding my way down, I couldn’t. I had to descend the other side of the mountain, which was very steep and life-threatening.

Cuts and bruises everywhere, rain damaging my phone, and me getting drenched by heavy rains. But I came out, and it was a wonderful journey. I didn’t get to see the tree, but I got the experience of the journey and the determination that I had to get there. And the will—I actually discovered what proper will feels like.

So yeah. I’ve done a lot, but that has been my year’s review. Things are happening to me and they just started

Technical Section👨🏽‍💻

Left out the technical bits out of this post because I didn’t want to overwhelm non-technical readers but Selorm Akoto asked that I add it so this is a dedicated section for it.

I must say I didn’t do nearly enough technical projects as I wanted to in 2024 but acceptance is always the first step to recovery after all. For languages I used this year, it was mostly Go. There was Typescript of course but mostly Go. Some Rust here and there. During my time at RC I was able to pick up SwiftUI by starting and finishing the 100 Days of SwiftUI program by Paul Hudson. Below I talk about the technical books I read (cover to cover) in 2024, the projects and some takeaways from them. All in chronological order

Books

This was a helper to a real-life Go project. I picked up Go in 2022 but most of what I built were CLI tools and very simple web servers and since I was mostly looking for a quick and easy solution I would go with Leaf PHP. At a point I felt like I wanted more control of the data I process and asked my mentor Dave for his opinion and he suggested Go and that’s how I eventually ended up picking up this book after gobyexample

Same thing as Let’s Go but just more complex examples and opinionated practices

This was my formal introduction to distributed systems after building a distributed Redis system. I would hear about microsystems from Griffith Awuah but I could never get a concrete understanding of the concept and why it was a thing. I asked him if this was a good read and he gave me a thumbs up and dove right in. If you plan to pick it up please know that the K8s section is outdated and you will most likely face errors but getting over them is how you learn

Nothing to say here really. I write python only when I need to but it’s not a language that’s my first choice when picking out a tool in my bag

Wonderful read. So many beautiful concepts and is highly recommended for anyone in tech, even if you don’t code.

During my time at NewComma, I reported directly to Barima Effah and he’s one of the best people I’ve ever worked with. One time I was faced with a dilemma about designing and his advice to me was that I don’t need to learn design. All I need is good taste. At the end of the day you have to judge your work yourself and if you have good taste you just flow with it.

This was a study resource sent to me by Ninad Pundalik for learning about Email Servers when I was building one and let me say, Email Servers are complex!! The biggest issue with servers is managing spam and once your server loses credibility in the network it’s extremely difficult to get it back up. Whew!

Courses

This should be the entry course for anyone starting out with React right after Josh’s CSS for Javascript Developers. I had been writing React 3 years prior but taking this course felt like a breath of fresh air and a push towards the future of the frontend industry. The course is also designed is be skimmable for experienced folk

Projects

I started this project because I wanted to do more public building but I discontinued it because I wanted to preserve it for my podcast as it is. I also wanted to be more personal with my opinions and projects and as such, push projects with my name and not a brand (My name is also my brand in this case)

This is a form builder that was to be a Typeform competitor. It was later renamed to Hay since I figured the name MailPigeon was more fitting for an email server. The Email Server was discontinued because for me to work on it I would have to be working via SSH with RC clusters and since they’re experimental I wouldn’t want to deal with the frustrations that come with unavailability. As I mentioned earlier in the year’s review, I had to be honest with myself and accept that I did not care about this project enough to carry it so I just had to let it lay. Not looking to lose another Czar

Fluffyshelf was a catalogue for books being read. Think GoodReads but actually looking good and simplified. This was a project I worked on as a team with the RGO crew (Sebastian, John and I). There were a couple of issues when building this project:

  1. Building with PHP I hit a wall with file uploads. The php.ini file dictates the max file size when uploading but people have all sorts of sizes for file uploads. The default was 2mb. Finding out how to change this with a framework was almost impossible till Mychi Darko came to the rescue
  2. CRUD interfaces using UUID can be tricky with PHP
  3. It was a web app. I hadn’t picked up SwiftUI at the time and definitely did not want to go back to Flutter and that was a huge blocker for adoption. Feels counter-intuitive to open a web browser to upload images.
  1. For every 3 minutes after 10AM, visit Stanbic bank’s website and check if their daily currency reported as been reported. This is in the form of a pdf. If the check had been done that day and rate had been reported, do nothing
  2. How do we check if the pdf has been updated? We can do this in multiple ways i. Parse the PDF for the date and verify if that was the current date ii. Check from the PDF if the rate has changes iii. Compare file buffer sizes

All these methods work but they all have their flaws:

  1. Parsing the PDF would mean getting the entire file, all the time
  2. Same issue + parsing + reading + comparison
  3. All the above + a lot more comparisons

My resolution was then to use the headers in the http response when I make a call. Looking at the X-Last-Modified had both the date and time so that was a perfect approach for this scenario.


Helping Mychi Darko with Leaf PHP, building Hana JS interface and building fly.io templates for the Leaf ecosystem

Figuring out the inner working of Redis, advantages and use cases. This gave me the avenue to play around with docker and k8s. Scenarios for when servers fail and leader-election policies. Replication is a beautiful concept.

This was my introduction to Email Servers. The core concept here was to how to look out for headers, the buffer size of those headers and how to parse them. A core learning point here was how each record is treated. Eg. TXT files are really just text files that are referenced by services. MX is for Mail Servers that donate the server ip. SPF handles spam and so on. The takeaway here is that now when Vercel asks that I put in certain values into my Advanced DNS section on NameCheap I know exactly what they’re doing

This was the project from the Distributed Systems with Go book and Proglog was something akin to Kafka in functionality. Core concepts like replication, observability and containerization were explored here.

This is a very notable mention. Unfortunately the distribution for this project was not handled as I hoped but the theme of Spawn Season 3 was cards (Popularized in Ghana as spar). The implementation for the website was such that tickets would be cards and everyone who signs up for a ticket would have theirs on the landing page, unless they ask their card not to be shown.

The pretty little detail here though was that the list of cards was live and whenever someone created a ticket and you happened to be on the landing page, it would appear and stack up on the page. This took advantage of Redis and Go on fly.io

This was a study project that was assigned to me by Dave when I asked that he mentor me. His advice was Know your tools and this was practice with that. A LOT of buffer reading and parsing

Autocompletion in VSCode for css variables. There’s a whole blog about how much I would prefer vanilla css when building out frontend systems and this is the tool I built to make everyone like me’s life easier. This was inspired by Tailwind’s autocomplete feature.

Products

Conductor is a MacOS app in the vein of Spotlight and Raycast but JUST for music. When I am doing deep work I use Endel to focus but aside that I’m always playing music and having to navigate out of my editor to change or queue music actually takes out a chunk of my time and focus and this is my solution to that. I started this project and built out the skeleton but have been able to continue because of the unavailablity of an Apple Developer Account. Currently taking contributions so anyone who would like to help can reach out to me :)

In December 2024, I had a conversation with De-Great Yartey about Adeton and the reason why he decided to solve that specific problem. There was a lot of interesting talks in that area but during the conversation he had the idea of merging merchant conversations though Adeton so that the process of inquiry all the way to payment can all be handled by AI through the chat section. We pair programmed on the idea and had a demo but we were impeded by Meta and their business registration policies. On a good day we might revive that project because it was such an exciting one that I would like to complete.

I was also vetted by De-Great Yartey later and the building of Adeton was entrusted to me. Going through his code is always a delight. Kudos to you

Endow is an app that I have been wanting to build ever since Mobile Money was a thing. The issue here was I was not able to make the problem malleable. The end goal is to track payments made through but I used to think through one particular lens. One superpower you can have as a person is to be able to think outside of yourself and that was something I learned during the latter part of this year. My approach to the problem has changed and I noticed that during a conversation with Selorm Akoto sometime in 2024 and I intend to tackle it. Again, I am working on problems that are important to me. No more side projects

PS: Also taking contributions for this project