Goal for 2020: Deliver

Dec 08, 2019 · ☕ 4 min read

Disclaimer: This is personal blogging.

The guy sitting next to me at the office has a wallpaper saying “ALWAYS FUCKING DELIVER.” This dude thinks I’m a good developer. He sometimes asks me for tips or opinions on code-related stuff. Little does he know, I am a developer-disappointment. When it comes to delivering, I ain’t close to Jesus. I’m actually closer to the Polish Post.

I’ve started numerous side projects, which I didn’t ship. A startup idea I was working on with my close friend didn’t get sherlocked, which is hardly a good thing, because we hadn’t even started to ship when it was already too late.

MVP of a car is not a rolling chassis. It's a skateboard.

Illustration by Henrik Kniberg. I’ve managed to build a bike or maybe even a motorbike once. The rest is a garage full of rolling chassis.

I wanted to build a perfect product, with fantastic user experience, the newest tech stack, and the cleanest code, while maintaining some degree of personal life, passing exams, and completing a thesis. The thesis included an app, which isn’t production-ready (of course), but took more than five hundred hours of work of my partner and me combined.

Obviously, I was an idiot. I bit off more than I could chew. I started drinking way too much coffee. My, once thick and bushy hair started falling off, and I’m probably skinnier than I ever was. I don’t remember how to prove a thing about Van Emde Boas trees or Fibonacci heaps.
I can probably do a simple amortized analysis, nothing fancy, though.

On the flip side, I learned. I don’t mean computer science. I got really good at starting projects. I learned GraphQL, got a good grasp of the JavaScript ecosystem with bundlers, React metaframeworks, and the like, but this isn’t the most valuable piece of knowledge I acquired.

I learned that communication is key. Unfortunately, in a hard way.

I learned that a good chunk of Medium software gurus and best practices prophets spend more time marketing themselves than actually building software. Any blogpost claiming that you should follow a few simple rules to be a good developer is a hoax. Instead (unfortunately?), we have to strive to understand the problem at hand, analyze the choices we have, and put in honest work.

Performance optimized code can be confusing and complicated. Code written to unrealistic deadlines is usually bad, but you only get to have code if your business is still running.

You can't hide from trade-offs behind a bible of best practices.

How does my life look at the end of 2019?

I’m still failing. I’ve started adding a hamburger menu for this blog. I wrote an SVG by hand, animated it and made it work without JavaScript. I managed to actually finish the job almost a month later. This is a failure, but a small one. I don’t need it until I add a “speaking” page with a list of my past meetup talks and notes for them.

I’ve started a side project with two friends with whom I played roleplaying games. Turns out they’re kickass developers and we can learn a lot from each other. I already learned what Event Storming is. We did two sessions of it and goddamn! If only I knew it before! I’m feeling pretty confident that we’ll ship the thing. We’ve set the deadline for a prototype we can start dogfooding for the end of January.

The entire thing is (and is going to be) open source. Including ADRs with the significant decisions we make. Our successes and failures will be visible in the open, and we’ll learn from them in public.

I’ve got a few non-software side projects I could to write about, including a huge one with the girl I like, but this is the time to stop writing this blog post and get to work.

Edited 13 times
  1. 055e15bFeb 19, 2020Remove unused import
  2. fda7ec5Jan 08, 2020Fix whitespace
  3. 097b4aaJan 06, 2020Redact /deliver
  4. 57cddbeDec 30, 2019Mention I added a hamburger menu in /deliver post
  5. 4ecbc81Dec 23, 2019Add missing article
  6. 55d843dDec 23, 2019Add missing 'follow' word
  7. 94edf75Dec 17, 2019Cosmetic changes
  8. 2e92b56Dec 14, 2019Tweak /deliver post a bit
  9. aea78f9Dec 14, 2019Finish /deliver blogpost
  10. fcf59f5Dec 12, 2019Give up on embedding tweets
  11. 70818e6Dec 12, 2019Fix <br/> tags
  12. 50c6dadDec 12, 2019Run deliver post through Grammarly
  13. 133e2b9Dec 09, 2019Draft Deliver post