Five Stages of Grief

Letting Go of a Software Project

You might be aware of the Kübler-Ross model (known as five stages of grief). It is a model designed to postulate the progression of emotional states experienced by terminally ill patients after diagnosis. The five stages are chronologically: Denial, Anger, Bargaining, Depression and Acceptance (source: Wikipedia). Today I don’t want to write about the original Kübler-Ross model, but an application of it on dying software projects. How are we dealing with dying software projects as developers? As software developers, we are often identifying ourselves with our work. As a result, we often suffer if things are not going right at... [Read More]

The Things more important than Code

There are Programmers living in ivory towers built from their own egos ruling over their systems. Technical solutions for the sake of technical solutions are not the things you should be building. Your code has to solve a problem. It is not beneficial to build a solution and start to look for matching problems. There is this saying: “If all you have is a hammer, everything looks like a nail” – Maslow’s Hammer, Abraham Maslow So make sure you work hard at solving a problem and not building a “solution without a problem”. The Software Developer Your part in this,... [Read More]

Git Best Practices

Over the years I learned a lot about git. Most of the parts I learned the hard way by using it on a regular basis. Here I summarize a lot of the things which I would consider Git Best Practices for using git in a team. Use the force Luke – use the CLI At least give it a real try! Like the young Skywalker you at least once should limit yourself to the bare minimals. Use the force Luke – let go! Over the years I got used to the terminal interface of git in a way that all... [Read More]

11 Ways to Kill Your App in the App Stores

1. Make Sure to Build the Wrong Features Users complain a lot about features which don’t work. So what would be better than building things they won’t use at all? Features not getting used are the ones with the lowest number of bugs reported. 2. Don’t Listen to Your Users This goes hand in hand with the advice I just gave. Why should we listen to our user base? Aren’t we experts who get paid for developing good software? Would you give feedback to a chef who wants to cook you a steak? 3. Ship No Matter What Every user... [Read More]
Tags: experience

What nobody tells you when you get your first Job as a Developer

Hi everybody, I just got a friendly reminder – an annual HR talk with my boss – that my graduation is now more than two years in the past. Time again to reflect upon what I learned during the last two years and how that differs from what I expected. What I expected from my first Job Phew, maybe I should have written this two years ago. If my mind is not playing tricks on me, I remember that I was a bit afraid of what I have to learn and all the things I don’t know. I already knew... [Read More]

What Two Years With Microservices Taught Me

When I joined my current employer we were operating a full blown Monolith with around 20k lines of code. The Monolith was serving an Android and iOS Application which both were also developed within the team. We migrated from that Monolith to Microservice architecture. This article is about our Journey. Also: This is my first programming gig after graduating from university (despite having a formal 3 year education to programming before), so maybe it is better if you keep this in mind while reading this article. The Project Speaking about the Team: In case my mind is not playing tricks... [Read More]

Flaky Tests and other Demons

What have Demons and flaky Tests in common? I think a lot. Demons haunt you while you are living your life. They also corrupting the soul of their targets. Ok, maybe I exaggerated just a bit. Still if you think more deeply about this comparison, there is a grain of truth in it. Corrupting Tests are haunting you while you do your work: Just imagine following scenario: You modify some code and wait for the tests to finish and then out of a sudden there are test fails. Yikes. Ok, alright. Probably you did some mistakes while refactoring or you... [Read More]
Tags: tests

How We Made Our Spring Boot Applications More Robust with Redis Cache and Spring AOP

Do you know that feeling? You have a webservice dependency which is not having the best uptime? My team at work certainly has, and thought that it was time for a change. This whole article is written as a tutorial. You can find the code on the GitHub Repository. Status Quo and Evolution: Quick Chart of the Interaction from Frontend to Backend As depicted in this chart, we are having an Android and an iOS app which access our backend services. Exemplary for our total backend, I have drawn one service. As you can see it is already using Redis... [Read More]

The 4 Most Important Things Every Programmer Should Be Aware of

A lot of things you need to know as a Software developer depend on the technologies you work with. This should be a general article and therefore it shouldn’t get into too much detail about language or technology specific things. Depending on what you are currently working on or with, there might be quite some different factors. But let’s talk about the general points which I found helpful in the past: Knowledge of a Low Level Language with Manual Memory Allocation I have done this during my apprenticeship: I learned C. Yes, C without ++. There we learned a lot... [Read More]

Year++ - A Software Engineer’s New Year’s Resolutions

The time between Christmas and New Year’s Eve is always a time for me which I use to reflect a lot upon myself. It is a tranquil time of the year where I reason about the good, the bad and the ugly of the last year and what I want to achieve in the next year. So what is better than writing an own list of New Year’s Resolutions. 2018: The ugly: To make it short: I did not look after my physical health. My weekends were often spent thinking about production and whether it will break because of external... [Read More]