Blog | LinkedIn
mamboue.com

The simplest looking parts of software are sometimes the most complex to code

Software iceberg

Feb 6, 2023

TL;DR Simple looking parts of Fubolista took a lot of time to build and previous experiences helped me speed things up.

For the last 5 days, my focus was to finish enabling Anton to edit his online player resumé.

I had already set up a way to enable editing simple text fields like his name and email.

The next step was to enable editing fields like his nationalites and his soccer positions (he has 2 in both cases).

I figured it would be straightforward because it's just a list of options and I had seen multi-selection lists on other websites.

I was wrong.

Multi-selection lists

I started by looking for a multi-selection list component online and in my previous projects. I could not find one that fit my website.

That meant I had to build one myself. It was nighttime, and I was dreading the task, so I decided to sleep on it.

The next day, I had accepted that I needed to build it myself. I wanted it to be a list of checkboxes with a search bar on top that would filter the list.

I planned to support 246 countries and 24 soccer positions, so I decided to load them all into the lists instead of fetching them from the internet as the user types.

That meant a lot less work to build the search bar. After a few hours, I had a working component, and Anton was able to edit his nationalities and soccer positions.

Nationalities

Positions

The next item I decided to build was the photo update feature.

Photo update

I had built an image upload component for the ilufy.io project. It took me 4 weeks.

I had spent a couple of weeks trying to decide which service to upload the images to.

I ended up going with Cloudflare because other services charge you when someone downloads your image to look at it.

These are called egress fees. They become absurdly expensive if your platform becomes popular.

I think there's a lot of greed involved in charging those fees. You always need to be careful when choosing your cloud provider; there are many cloud horror stories out there.

AWS horror story

Some people wake up with unexpected bills of $100,000 or more...

You can understand a lot of the 4 weeks were spent worrying about egress fees.

I ended up building the component for ilufy.io using Cloudflare and I still haven't paid a single dollar for it, which is nice.

I reused my image upload component for the player photo edit, and it took me 2h30 instead of 4 weeks 🤯. I was shocked.

And most of my time was spent renaming and deleting things because I didn't need to upload video files.

The lesson is, if you build something once, you can reuse it later to save time.

Next, when Anton edits his player experience, I want to suggest a list of teams he can choose from.

Team suggestions

The idea is to let him add teams to the system and giving him suggestions will help reduce typos and duplicate teams.

It'll also allow him to select a team that has information in the system, like a logo, which will make his resumé look nicer.

I needed to let him search for teams in the database. So this time, I could not escape the search feature.

I've never built a search feature before, so I started looking for help online. Again, I could not find anything that fit my needs.

It was a bit frustrating because it took me a full day of work (compared to 2h30 for the image upload component). I did not expect that.

I needed an additionnal day of rest to recover from this but at the end, I was happy with the result.

For the final week of my 4 week challenge, I will focus on delivering the initial version of the platform to Anton.

This way, he can actually start updating and sharing his website with soccer recruiters.

As always, I kept him and my friends/family in the loop with my progress.

2023

Jan 18Using my experience to fix online branding for soccer athletes
Jan 19Options for soccer athletes building an online presence
Jan 20Starting small makes your solution the best for someone
Jan 24Shipping fast helps your product grow in the right direction
Jan 28Taking inspiration from other industries prevents you from reinventing the wheel
Feb 1Cheatcodes I use to build software at an insane pace
Feb 6The simplest looking parts of software are sometimes the most complex to code
May 22Lessons learned from my first users