Test more and better with less friction is a talk I did @ JavaZone 2024, all about reducing friction in our automated tests.
John Mikael Lindbakk - 2024-09-01
Read moreMost developers are aware of SOLID at this point, and 'I' stands for 'Interface Segregation Principle'. And like a lot of the other principles in SOLID, it has been wildly misunderstood.
John Mikael Lindbakk - 2024-02-01
Read moreThere are a lot of wildly misunderstood concepts in programming. Some that spring to mind are agile, unit testing and, yes, object-oriented programming. Let's talk about that.
John Mikael Lindbakk - 2024-02-01
Read moreIt 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…
John Mikael Lindbakk - 2023-08-01
Read moreThe 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.
John Mikael Lindbakk - 2023-08-01
Read moreTechnical 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.
John Mikael Lindbakk - 2023-03-01
Read moreAs 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…
John Mikael Lindbakk - 2023-03-01
Read moreThe 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?
John Mikael Lindbakk - 2023-03-01
Read moreEveryone 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.
John Mikael Lindbakk - 2022-12-01
Read moreAuthorisation can be represented by if and else statements, but the impact of how one decides to implement authorisation can have broad and long-lasting consequences.
John Mikael Lindbakk - 2021-08-01
Read moreA 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.
John Mikael Lindbakk - 2021-07-01
Read moreThere 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.
John Mikael Lindbakk - 2021-02-01
Read moreThis 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!
John Mikael Lindbakk - 2021-02-01
Read moreThese 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.
John Mikael Lindbakk - 2020-12-01
Read moreIf 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 and Automated testing. Both of which .toUUID() attempts to help with!
John Mikael Lindbakk - 2020-10-01
Read moreJohn Mikael Lindbakk - 2020-10-01
Read moreThis 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.
John Mikael Lindbakk - 2020-07-01
Read moreSome of the most dangerous and scary things a developer does is making changes to the database. Be it fixing some dodgy data in production or changing the database schema all together. Users trust us to at least not lose any data, even less so to break it. SQL changes also tend to be somewhat of a 'side thing' compared to normal development.
John Mikael Lindbakk - 2020-06-01
Read moreMost ORM frameworks allow developers to code in values into the models which is actually not a part of the database model. Java calls this transient fields, which is the word I will use throughout this post as well. I aim to explain why transient fields are toxic, and how to avoid them.
John Mikael Lindbakk - 2020-06-01
Read moreArchitecture 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.
John Mikael Lindbakk - 2020-06-01
Read moreThe current COVID-19 pandemic has shocked the world. For developers, like myself, it means that we’re working from home. Working from home is not an issue for me personally. I have an office, a good chair, reliable internet and everything an office has except for the people.
John Mikael Lindbakk - 2020-05-01
Read moreThe names of our unit tests might seem like the most insignificant part of our code. After all, they usually don’t even get shipped with the release code of our software, so therefore they cannot impact runtime functionality. To make it worse, the naming of a test does not impact the implementation of a test, so they cannot impact the running of these tests either. So the question becomes why I would make a blog post out of the importance of naming these tests appropriately.
John Mikael Lindbakk - 2020-05-01
Read moreI’m a keyboard guy. If it was practical I would love to throw the mouse away. This is why my personal computer runs Manjaro with the I3vm. A window manager which is the keyboard first. Often there’s applications which simply do not allow me to use keybindings, or are so unintuitive that it isn’t even worth learning them, whereupon I often script the functionalities I need and execute them from the command line. The point I’m trying to get across is that I love doing things from the keyboard…
John Mikael Lindbakk - 2020-05-01
Read moreThe other day some of my coworkers and myself had a discussion about what it meant to do a code review. To my surprise it turned out that we had wildly different opinions on what it meant to have a pull request approved and what can be expected from the code reviewer. Some believed that code reviews are to check for bugs, performance issues and so forth. Others indicated that it is to check that we have made the correct thing. That the code does what the customer wants it to do. Others thought it was to check for code quality…
John Mikael Lindbakk - 2020-05-01
Read more