Every year, I like to teach myself a new language by working through the Advent of Code problems. This year, I wanted to dive into typescript. I’ve written a fair amount of JS before, and I like having explicit typechecking in my code, so TS felt like a good fit.

Everything was going great until I hit Day 15, and my solution worked well for the small case but was painfully slow in the large case.

You should definitely click through and read the problem statement, but to summarize:

You start off with a comma-separated list of numbers. This is…


A short while ago, we were building a distributed backend service where multiple instances of the service would be sending requests to each other to coordinate work splitting and availability. We were concerned about a number of potential roadblocks, including overwhelming the receivers and congesting our network traffic. We also realized that, in this case, immediate consistency wasn’t a top priority — we could tolerate a few seconds of delay, and as long as we were eventually consistent, the system would behave as we expected.

We took inspiration for this problem from debounce mechanisms in web development. On the web…


“Most people like to dunk on Edge, but I think it’s a pretty great browser,” my coworker Thomas told me. We were a few hours into attempting to fix a bug that only occurred in Microsoft Edge and I had just been complaining about Microsoft Edge. This is the story of how he turned out to be right, and I turned out to be wrong.

The Bug

When a user clicks an external link to our platform, and they haven’t authenticated, we present them with a login page and then, after they log in, we redirect them to the link they had…


I recently had the opportunity to work remotely while traveling for six weeks with Hacker Paradise (I took the opportunity to hide from the Toronto winter like a coward and fled to beautiful sunny Montevideo, Uruguay). This was a huge step for Vena, because until this point, our idea of “working remote” was “working from home today because I need to let the maintenance people in” or whatever. It was on a day-to-day basis and extremely informal.

Our development process at Vena is intentionally very collaborative — we encourage pair programming and debugging, and when someone needs to brainstorm a…

Mustafa Haddara

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store