Fight perfection

Seeking perfection is a fool’s errand. Perfection is a fading spark that can only be achieved for oneself - never when working with others - and as soon as it’s gone the search for the new perfect begins. By constantly searching for perfection you end up living in the fantastic future - in th...

Continue reading ...

What is a professional tool anyway?

One weekend in 2017 I was using my Macbook Pro when all of a sudden the screen turned black and it started spewing white smoke like it had just elected the new Pope. Luckily, it didn’t catch fire. Later that day I opened up the laptop to see what happened. To my surprise it wasn’t the battery...

Continue reading ...

A week in Helsinki

Last Wednesday my girlfriend and I woke up at 4 AM and headed to the Zagreb Airport to catch a flight to Helsinki. I haven’t been in Helsinki since Junction 2016, but with EuRuKo 2022 (the European Ruby Konference - this is not a typo) being there this was the prefect opportunity to visit agai...

Continue reading ...

How an index made rendering slow

I noticed that a view I was working on was rendering much slower than I would expect it to. The view showed a list of events, together with the person that generated the event and the device that the event belongs to. It took nearly half a second to render 25 events, while other similar pages r...

Continue reading ...

140 million rows later

… At work, as part of a project I’m working on, I wanted to add a new reference to a table. ”Simple enough” - I thought. Spoiler alert, it wasn’t. Adding a reference from one table to another is straight forward in Rails. You create a migration using rails generate and then write in it somethi...

Continue reading ...

“Having a monolith is a single point of failure”

I recently took part in a discussion that brought to light the most unusual argument against having a monolith that I have ever heard - that a monolith is a single point of failure. I want to make clear that I consider monoliths and microservices neither good nor bad, or universally better or ...

Continue reading ...

The humble ActiveModel

ActiveModel is one of my most used tools in Rails applications. I use it in service objects, form objects and objects that represent external entities. Why? Because it provides a nice interface for validating inputs and results, it can have callbacks for pre and post-processing data, and it in...

Continue reading ...

Take a break

At my first job I used to take a break every time I got stuck on a problem until one day my boss caught me looking out of the window. He didn’t say anything the first time he saw me, but when he saw me in the same position some 15 min later he yelled “At least sit by your desk and have your la...

Continue reading ...

Keep it boring, don’t surprise me

I’ve spent a lot of my life worried that people will think I don’t know enough. Sometimes, that worry has made me use big words when I didn’t need to. –Randall Munroe in the foreword to the Thing Explainer I used to be a stickler for organizing code by what it was. Models, decorators, form o...

Continue reading ...

Scrum is for time estimates, not projects

From my experience Scrum is the prevalent project management framework in software development. Most of the teams I was part of used it to develop, deliver and maintain their projects. Despite its prevalence I always felt like Scrum was bogs me down - that it was more harmful than useful. I kn...

Continue reading ...

How I stumbled upon Strada while forwarding an email

I wanted to forward an email one evening, so I opened up the Hey app on my phone, found the email, tapped on the “More” button, and just before I hit “Forward” I noticed a “Share or print…” button at the bottom of the screen. I hit “Share” and to my surprise was greeted by a share sheet. It off...

Continue reading ...

Previous PageNext Page