software engineering principles

Writing Code In Small Pieces - Vertical vs Horizontal Development

June 27, 2021 · 3 min read
There are many ways you can write your code. We have best practices and linters, opinionated frameworks and architecture patterns. The very big and very small decisions. Stuff you decide on the team-level. Then there's a middle ground. That's what happens while you implement a larger feature or a smaller service by yourself.

As A Developer, Learning Never Stops (And That's A Good Thing)

May 23, 2021 · 2 min read
It feels like we can never learn enough in our field. As software engineers, calling ourselves an “expert” in any area just doesn't feel right. How could we ever know everything about a specific language or framework? Here's why I believe this is a good thing.

A Simple Approach To Fullstack Error Handling

April 11, 2021 · 4 min read
Generic error messages suck. As a user, we encounter them all the time. “An error occurred, please try again later“. Often just to find out the problem wasn't some server outage, but something on our side. A typo in our email - and the server couldn't send that verification email, resulting in a 500 internal server error. Here's a simple but effective way to API error design.

3 Ideas How to Use Whiteboards for Software Development

March 28, 2021 · 1 min read
When I'm programming, I'm often making notes or scribble on paper or a whiteboard. It helps me explore and keep track of my options. For small or big architectural decisions (which we're making all the time), it's hard to keep all options …

Terraform for Fullstack Developers

February 19, 2021 · 9 min read
The more complex your infrastructure the more can go wrong. Let's look at Terraform as a way to automate tedious infrastructure setup (and to make it explicit).

You Need Less (Code) Than You Think

February 12, 2021 · 1 min read
The best code is no code at all. Second best is simple, easy-to-read-and-understand code. “A complex system that works is invariably found to have evolved from a simple system that worked...

Apply YAGNI to More Than Just Software

February 5, 2021 · 1 min read
You aren't gonna need it. That's a programming principle from extreme programming. It states that functionality should not be added until deemed necessary. Let's explore how YAGNI is useful in software development, and as a general productivity tool.

The Two Paretos In Software Development

January 22, 2021 · 1 min read
You know the Pareto principle, right? For many situations, 80% of the consequences come from 20% of the causes. The Pareto principle actually applies to two aspects in software development...