Disclaimer: This is where I shout my thoughts and opinions.

Anemic Domain Models
John Mikael Lindbakk John Mikael Lindbakk

Anemic Domain Models

It was not long ago I championed anemic models. They were great! Easy to set up for testing and easy to work with. They were malleable and adapted to whatever context I needed.

I was wrong…

Read More
Observations After a Decade Making Software
John Mikael Lindbakk John Mikael Lindbakk

Observations After a Decade Making Software

The waves towered above our ship. Each time we reached a crest, I felt as light as a feather, freed from gravity's grasp, if only for a moment. The sea happily accepted our descent. I was cushioned by a mattress in my bunk each time we dropped. My port window showed nothing but water, a strange sight given that my cabin was above sea level at our departure.

Read More
The tech-debt death spiral
John Mikael Lindbakk John Mikael Lindbakk

The tech-debt death spiral

Tecnical debt is a sinister issue that plagues many companies, yet many of us are happy to ignore it. So many developers and managers are happy to prioritise other things over technical debt and allow our codebase to rot.

Let's look into the nature of technical debt, what makes it so dangerous and how it can kill companies.

Read More
The joy of self-updating dependencies
John Mikael Lindbakk John Mikael Lindbakk

The joy of self-updating dependencies

As developers, we've constantly faced the choice between reusing existing solutions or writing them ourselves. Most of the time, we end up reusing something already existing, be it an ORM library, a web framework or something else. Most developers work on projects with a whole bunch of dependencies…

Read More
Why can't we just turn off infrastructure?
John Mikael Lindbakk John Mikael Lindbakk

Why can't we just turn off infrastructure?

The other day I read Testing Without Mocks: A Pattern Language by Jame Shore. The post is positively provocative, and it really made me think. The underlying idea is that we add code to production to simply "turn off" infrastructure requirements for the application.

The notion of simply switching off infrastructure got me thinking: Why don't we do that today?

Read More
John’s 9 Traits of Well-built Systems
John Mikael Lindbakk John Mikael Lindbakk

John’s 9 Traits of Well-built Systems

Everyone has their view of what a well-built system looks like. We have the Joel test, the 12-factor app and many more. This inspired me to reflect on what is important in a modern system, at least to me.

Read More
The exciting new world of AI-generated code (Copilot)
John Mikael Lindbakk John Mikael Lindbakk

The exciting new world of AI-generated code (Copilot)

A few days ago, Github released a completely new tool to the world called Copilot, and I am very excited about what it may lead to, which is why this post exists. I have not received an invite, so I have yet to try it out for myself, so these are just my thoughts based on what I’ve seen.

Read More
Useful tools: Feedly, Pocket & Kobo
John Mikael Lindbakk John Mikael Lindbakk

Useful tools: Feedly, Pocket & Kobo

There are so many different websites for news and articles these days. We have local newspapers, international news sites, blogs, tech sites and whatnot. With so many places which produce quality content, it is impossible to keep up.

Read More
The ultimate developer reading list (according to me)
John Mikael Lindbakk John Mikael Lindbakk

The ultimate developer reading list (according to me)

This is my “master list” on literature which I believe to be relevant to developers. Rather than writing a new blog post for every book I read I will instead update this post right here. Do you think there’s a book I should read? Feel free to send the tip my way!

Read More
ORM framework anti-patterns
John Mikael Lindbakk John Mikael Lindbakk

ORM framework anti-patterns

These days, most projects tend to use one form of ORM frameworks. They make development easier by hiding all that pesky database stuff away. ORM frameworks help with security, cuts down on bloat and remove a bunch of potential traps one can fall in if one opts for not using one. At this point, I’d be more surprised if a project using a database without an ORM framework.

Read More
Introducing .toUUID()
John Mikael Lindbakk John Mikael Lindbakk

Introducing .toUUID()

If I had to choose which aspect of software development I am most passionate about it would probably be how we make our products, which includes things like what kind of standards we follow when writing code, which tools we use, how we get our final code into production in a safe manner. I care about the long term sustainability of what we’re making. Therefore, to nobody’s surprise, I care a lot about:

  • Code readability

  • Automated testing

Both of which .toUUID() attempts to help with!

Read More
A programmer's resume
John Mikael Lindbakk John Mikael Lindbakk

A programmer's resume

Up to this point I’ve used Google Docs for hosting my resume. After all it is cloud based, available from any computer and phone with an internet connection. Using Google Docs I may convert my resume to whatever format I like. Google Docs is great, but I’m a developer and using something like Google Docs, Word or anything like that would not be very developer-esque of me.

Read More
Spock and JUnit - a comparison
John Mikael Lindbakk John Mikael Lindbakk

Spock and JUnit - a comparison

In the book ‘Working effectively with legacy code’ Micheal Feathers defines legacy code as code without tests. While some might not agree with this definition I do think it showcases how important testing is. It is very difficult to maintain and develop quality software without proper test automation.

Read More
Utility and helper classes - a code smell?
John Mikael Lindbakk John Mikael Lindbakk

Utility and helper classes - a code smell?

This is a very spicy & hot take of mine: I consider most utility or helper classes I’ve seen throughout my professional career to be a code smell and, generally, they are detrimental to the overall solution. Allow me to elaborate.

Read More
The case of the else statement
John Mikael Lindbakk John Mikael Lindbakk

The case of the else statement

Architecture happens at all levels of the application. We got the high level architecture such as diagrams and charts laying out the architecture of the solution and we can go all the way down to how functions are structured and how the code is written.

Read More