When developing software you usually optimise for some aspect of the creation process. There are many things when considering a software development project like accessibility, usability, user satisfaction, delivery/deployment speed (release cycle), correctness of the code/app, developer happiness and many more. Some of these are first level concerns, some are on lower levels.

Continue reading Trade-offs

Why are our estimates off, always?

As I previously mentioned I freelance for a nice client right now. I am embedded in a great team and like working with these people. Summer came and our project manager was about to take his vacation. (He cycled from Finnland to Hamburg in Germany with a friend, in case you were asking. I think that's great as I am a cycling maniac myself…)

Before he started his vacation we groomed the backlog in Trello and scheduled various tasks for me and the other freelancers. I had the seniority in the project during his absence, so I took on the load to manage the others.
After scheduling a few tasks we looked at each other and decided to schedules some more because it felt like these were too few during his three-week leave. Then we scheduled some more "just in case" we were super fast.

Continue reading Why are our estimates off, always?

Formatting dates

When was the last time you needed to display a formatted date somewhere in your applications? Since I work a lot on React (or generally JS) apps these days, I recently had the "pleasure" to format dates in JS. After receiving them from a Ruby API. Which in turn takes the (Postgres) db timestamps and converts them into Ruby (date)time objects. Oh, the fun we had. "Of course" standardizations saves your ass in this situation. Usually at least.

Continue reading Formatting dates

Reading Code

This is another email I am sending while being happily busy with our newborn.

Two days ago I linked you to an article about Livable Code. Today it's about reading code. While learning software development I often heard the phrase that you should read other people's code because it makes you better.

I have to admit, I never purposely did so. Well, one time, I followed through the Rails framework to understand how an HTTP request is handled. But that was the exception. It turns out, I am not alone:

Continue reading Reading Code

Surprises when starting out as a software developer

This is another email I am sending while being happily busy with our newborn.

My first job was as a software developer at Ericsson in Montreal, working with the mobile switching center that handles calls in a cellular network. There was a lot of code controlling call set-up, hand-offs, roaming etc, but I was pretty disappointed to see that it was all done with quite basic data structures and algorithms. The most interesting part I found was the code keeping track of roaming subscribers currently in the system. It consisted of one thousand binary trees, where the last three digits of the subscriber number determined which tree a given subscriber belonged to. To find a subscriber, you picked the tree based on the last three digits of the number, then traversed the tree to find the subscriber. Apart from that, it was pretty much only linked lists or simpler.

Continue reading Surprises when starting out as a software developer