Saturday, April 18, 2026

Will AI aka LLM replace Software Developers?

Question

Will AI aka LLM replace Software Developers?

Short answer 

No. The rising of LLM will increase the demand of software developers. 

 

 

Longer Answer

A LLM can generate text based on the training data. That's brilliant if you  doing you homework or writing a message a teacher (South Park episode "Deep Learning"). If you search for information, LLM are brilliant, comparing things, aggregate information that the jobs LLM can help you a lot.

 But Coding, writing software; is not writing text. If you want to learn a programming language, a LLM is great. If you searching for boiler plate code or a strange configuration property, LLM is my tool of choice. That's not coding. That's a advancment over Google or Stack Overflow. A LLM can improve autocomplete in my IDE (Kai Lentit on Y). LLM can't write software that is correct, that is fast, that is reliable, that is save, that is robust, that you and your business can rely on. So far, LLM has never been able to handle any programming task for me that went beyond the beginner level. And believe me, I tried it hard and I found out this a general limitation of LLM. I can explain it, but it's an other story.

LLM is great of doing Bullshit jobs. It will free people for better jobs. LLM increase the efficiency of software development in general. 

LLM is a good new tool, but a fool with a tool is still a fool, with brand new legacy code. LLM is a just a tool like Excel or the Internet, LLM is just a high sophisticated tool (2026). 


 

Summary

  1. LLM increase the software development efficiency
  2. LLM lower the entry level for software development
  3. IMHO LLM will create a Rebound Effect on software development
  4. LLM will help to create more Software faster
  5. Software Developper will be more important than before. 

Saturday, January 31, 2026

How to Fix NPEs forever

Null is biggest flaw of Java, saying some developers. Null causes NPEs causes crashing software. IMHO this is the same vibe as C vs Rust and I totally disagree. Crashing software is caused by developers and not by the programming language.

The easiest and best way to prevent NPEs is … proper exception handling. It is as simple as it sounds.

Bye the way, NPEs are often a side effect of OOP. All Objects are unsafe until you checked them. But checks are unsafe so go with exception handling.

 


 

Saturday, January 24, 2026

Increase resilience: Decouple external system calls

For most software companies resilience means that the replication factor is 2 or higher.

 

Well that's far from good. You resilience is still bad as with two instances of your weak micro service. 

One way to increase the internal resilience of your service is to decouple external service calls. This  includes Data Base operations, Kafka, HTTP. For HTTP calls it is very common and most developer understand that this HTTP calls can go wrong but Data Base calls, yes all external services are running over a network, firewall, load balancer, switches, ... So it's a good idea to make all external call more resilient:

  1. Put the external calls into own treads. This keeps your application running in case of an error or time out.
  2. And have a time out or watchdog on it. By the way, Java futures are a easy way to do it.
  3. Check the results also for write operations. 
  4. Extend logs and monitoring to recognize external call errors.

Sunday, December 21, 2025

Complex vs Complicated Code

 There many definitions what is the difference between complex (weather, stock market) and complicated systems (airplane, car). For code, I'm not using the ambiguous term software, for code I will go with my own definition.

Complicated code is a huge amount of code. The LOC metric is a good indicator of how complicated code is.


 

Complex code has a huge amount of execution paths. The cyclomatic complexity, or rather the cognitive complexity are a good indicator of how complex the code is. Spagetti Code is complex code. Code complexity is one code quality characteristic.

The metrics listed above are meaningful, easy-to-calculate code metrics. However, it should be noted that it is very easy to create examples where these metrics undoubtedly fail. 

 Try to avoid complex code. Try to replace complex code with complicated code. 

Wednesday, July 16, 2025

How to simply improve efficiency of software development without costs

It's an often heard, software developer have not enough time for coding. Short look in my calendar reveals that I have at least 20% meetings and I know many developers have much more. So how can I increase the efficiency of coding:

  1. Skip useless dull meetings
  2. Work only at one item at time and close all tabs and applications you don't need for the current task.
  3. Don't switch to often or to fast between topics. I call it: human process trashing, it's a computer analogy of https://en.wikipedia.org/wiki/Thrashing_(computer_science)
  4. Regular breaks keep your mind fresh
  5. Try to switch between topics after a break like in the morning or after lunch 
  6. Don't work overtime 
  7. Finishing your tasks before going into weekend 
  8. Compensate your sitting time at work with sport

And as Bonus: Writing, reflect and write it down. The important part is writing! 

Tuesday, July 8, 2025

Tech debt: Flaky Tests and How to fix it

 Are getting Flaky test on your nerves? Here is how you can fix them easily.

 


Here, How to handle flaky tests. Start on top of the list and go down until the problem is fixed. 

  1. If it's easy, then fix them.
  2. Complain about it. 
  3. Disable flaky tests.
  4. Delete flaky tests.

Sound easy, yes it is. Now let me explain it.

  1. If it's easy, then fix them. But is is in 99.9999% of the cases I seen, it not easy. So you have to try the next idea.
  2. Complain about it. This is an underrated or over seen solution. If you complain about a flaky test you trigger maybe an other developer who knows an easy solution. 
  3. Disable flaky tests. A flaky test doesn't secure any code behavior, because it's flaky. But it desensitise you, see image above. And a flaky test cost you development time, rerunning the tests. So there are only benefits in disabling them.  
  4. Delete flaky tests. If you are ready to disable the flaky tests, you can delete them, because it's dead code. An additional benefit of deleting it, it makes it easier to refactor your code.

 If you you have any comments or other ideas, leave a comment below.

 

Sunday, January 5, 2025

Code Quality 2024 Part 4: Collaboration and Software Development


 

Why collaboration influences software quality? This is a very simple answer. If you have a bazaar of ideas or solutions you can select the best idea. Or to describe it a little bit more mathematically, if you know at least two solutions from N and selecting the best of the two, you have guarantee that you solution is not the worst. Software development is not a game of perfect, it’s more important not to pick the worst solution. And if you put some statistics in it, you have two random solutions, then you can imagine the benefit of collaboration.


Collaboration in the Real World

Collaboration in the Real World doesn’t exists, mostly. But try it, try pair programming, learn how to do pair programming. It takes a really long time to establish pair programming. Don’t give up.