Niko Heikkilä

Niko Heikkilä

👋🏻 Hello, traveller! I’m a software craftsperson with a strong passion for making work and life better for software engineers. This blog contains insights related to modern software engineering practices. Read the longer story of me, and if you liked what you read subscribe to my feed.

Latest Articles


Health Check Before Jumping to a New Organization

May 9, 2021 ☕️ 3 minutes read

Many software developers who have at least a couple of years of experience in this industry are often barraged with headhunting letters from recruiters…

#career#recruiting#agile

You Can't Grow Yourself Unless You Grow Others

April 24, 2021 ☕️☕️ 8 minutes read

During our careers, almost everyone has regular one-on-one meetings, sometimes referred to as performance reviews. There we take time to go through our past…

#agile#mentorship#career#softskills

Reducing the Lead Times with Little's Law

March 28, 2021 ☕️ 5 minutes read

There’s a fascinating law of mathematical theory applicable to agile software development, which helps you deliver features faster without sacrificing quality…

#agile#processes#extremeprogramming#continuousdelivery

Blocking Time for Tasks with Toggl

March 20, 2021 ☕️ 4 minutes read

For people doing mainly project work, planning daily tasks is a constant struggle, which can cause severe issues with productivity and mental well-being. As a…

#productivity#tools#opensource#golang

My 21st Century Note-Taking Workflow

February 7, 2021 ☕️ 4 minutes read

Taking notes is a serious business. While I’m not your typical person journaling everything they see or hear, I write a lot whether it be articles…

#productivity#writing#tools

The Unsurprising Truth about What Motivates Developers

October 26, 2020 ☕️ 5 minutes read

Throughout the observed history, human motivation has adapted to demands and economies of the current age. The first establishment, Motivation 1.0, provided us…

#motivation#career#autonomy#mastery#purpose

Fight the Inner Impostor with Just-In-Time Learning

October 15, 2020 ☕️ 2 minutes read

This post might come off like a weird spiritual tip for a developer, but bear with me a minute… Santosha A word I came across in yoga that fits very aptly into…

#selfhelp#motivation#learning

First Four Weeks at Futurice

September 13, 2020 ☕️ 5 minutes read

Earlier in the summer of 2020, I made a bold decision to refresh and broaden my career from a product company to software consultancy. I was yearning to work in…

#career#onboarding#life

Kickstarting the Open-Source Culture in Your Company

June 15, 2020 ☕️☕️ 11 minutes read

By the 2020s, every software company in existence should be using open-source code as building blocks for their products. Better than that, every company should…

#opensource#github#culture#workplace

Rapid Prototyping with Table-Driven Testing

March 27, 2020 ☕️ 2 minutes read

Developers often need to work with something from scratch. Usually, it’s a couple of lines of code whose suitability to real business logic needs to be measured…

#testing#typescript#golang#productivity

The Five Ideals of Developer Experience

January 6, 2020 ☕️☕️ 8 minutes read

Developer experience is a term often thrown loosely without much explanation. You might have come across it in developer communities describing how easy it’s to…

#devops#business#processes

Checking a Web Page for Dead Links

November 24, 2019 ☕️ 7 minutes read

There is no content on the web that is immune to rotting and growing moss. Blog posts start festering with old dead links pointing to nowhere, and images blank…

#tutorial#golang#webdevelopment#tools

Death of the Production Line and Factory Workers Attitude

November 18, 2019 ☕️ 2 minutes read

I often find myself asking whether I’m in the right profession, working as a software developer. It’s a question I’ve answered negatively in the past, but for a…

#career#software#craftsmanship

Customizing Your Shell Prompt for Productivity

August 6, 2019 ☕️ 2 minutes read

To developers, the command line is a natural environment for daily work. It makes sense then to customize it to be as helpful as possible. Try opening an…

#tips#terminal#bash#zsh#fish

Why I'm Quitting Twitter

August 2, 2019 ☕️ 1 minute read

Recently I ended a long relationship with Twitter, and I’m relieved. For over 10 years I’ve written to a platform for which the experience, safety, and justice…

#announcements#twitter

Generating Conventional Changelogs

May 25, 2019 ☕️ 3 minutes read

As an open-source maintainer, I have a severe obsession for informative release notes and I cringe every time I see release notes with the dreadful “Bug fixes…

#git#fish#shell#tips

Don't Use Bash for Scripting (All the Time)

May 5, 2019 ☕️ 7 minutes read

Writing scripts is a subset of coding we sometimes can’t avoid nor should be afraid of. The standard tool for writing scripts is Bash for UNIX environments and…

#beginners#bash#cli#linux

Serving Gatsby Site with Docker Multi-Stage Build

April 23, 2019 ☕️ 6 minutes read

Developing and deploying static sites can be managed with a wide variety of techniques. If Docker is already a part of your tooling you can drop your content as…

#docker#gatsby#deployments

Static Site Rendering Conquer All

April 19, 2019 ☕️ 4 minutes read

Recently I began migrating my blog from an old - but not vulnerable - WordPress installation to Gatsby. The migration went well save a brief downtime due to DNS…

#wordpress#gatsby#now

Quick Tip: Faking Dates in PHP with Carbon

June 24, 2018 ☕️ 1 minute read

Often there are scenarios where our code depends on the current time. Most programming languages handle datetime parsing pretty eloquently but a demand for…

#php#development#carbon#hottip

The (Im)Practical Continuous Delivery

April 29, 2018 ☕️ 4 minutes read

This week I participated in a 2-day training session about pragmatic solutions in Continuous Integration, Delivery, and Deployment. I was there because one of…

#continuousdelivery#continousintegration#softwaredevelopment

Squashing Software Defects with Eisenhower Matrix

December 5, 2017 ☕️ 2 minutes read

Both in my work and personal life, I’ve used a plethora of project management tools but only Trello has stuck. However, even Trello can be useless unless you…

#trello#bugs#eisenhower

Three Lessons I’ve Learned as a Professional Web Developer

December 3, 2017 ☕️ 4 minutes read

Last month I had the pleasure of achieving my first full year as a professional web developer in a Finnish company centered around online payments. #1 PHP Is…

#php#tooling#continuousintegration

Please, Do Not ‘Wake Up’

August 21, 2017 ☕️ 3 minutes read

The stabbing spree that took place in Turku, Finland last Friday was indeed a horrific act of terror leaving many a person in shock and wondering about the…

#politics#xenophobia#terrorism#fascism

Listin’ It Up: The Musical ABC

May 27, 2016 ☕️ 2 minutes read

This week I challenged myself to another hopeless, yet interesting, listing project. I decided to take a deep dive into my music library and surface with music…

#music#lists

Keybase – Secure Communication without Hassle

March 22, 2015 ☕️ 2 minutes read

I’ve played with this service for a while now after I received an invitation to the alpha. Yes, it’s alpha, not even beta. Keeping that in mind Keybase works…

#security#apps#encryption