systems engineering

How we build software

Author

Henning Goes

veröffentlicht

12.4.2026

Lesedauer

3 Minuten

Every client that we work with has different needs when it comes to their software. In our work we have discovered some principles that every company can use to improve their development process.

If you want to learn how to apply them to your company, get in contact! We can help.

The foundation: A robust, automated CI/CD pipeline

If you want your developers to bring new features online fast, they must have a quick, reliable way to deploy their software. A good CI/CD pipeline not only automatically deploys software, it also prevents bugs by executing the test-suite and checks that the software is actually deployable.

If your developers have a CI/CD pipeline they can trust, they will be much more confident in releasing new features for you.

Making sure it works: A realistic staging environment

Your developers will feel much more confident in releasing new features if they are provided with a safe environment where they can test them rigorously without interfering with your production environment.

We can help you set up environments that simulate your production environment.

Exactly as you need it: Infrastructure as code

If your developers need to request resources whenever they require them and then they need to be provided manually, it slows down your delivery speed.

Rolling out your software to new environments becomes a week long process of manually making sure everything is exactly as you need it.

Using infrastructure-as-code tooling such as Terraform, we can help you automate this process. This ensures that your environment is always in exactly the state that your developers expect.

Building trust: Code reviews

Code reviews make or break your software. If done correctly, not only do they catch bugs, they increase the knowledge and trust of your developers and increase the readability, maintainability and uniformity of your codebase.

Good code reviews are an art that is aquired through experience. Each review is a possibility for knowledge transfer within your team. We at Kernalytics have taught many teams how to make their code reviews count and we can do the same for you!

Keep it simple: The technology stack

One of your worst enemies when it comes to software complexity is overengineering. All software engineers are guilty of this. We always want to use the latest, flashiest technologies, build the perfect abstractions etc. However, when it comes to building reliable, maintainable software, less is more: Fewer dependencies mean lower complexity. Using a few, battle-tested technologies instead of the latest craze means your software will stand the test of time.

While we at Kernalytics have experience with a whole host of different technologies, we usually recommend a very minimal stack of technologies:

  • PostgreSQL - While it is well known for being a robust relational database, it has been silently transformed into a flexible, extensible data-storage system. Support for JSON makes it a replacement for NoSQL databases like MongoDB. Full-text search capabilities eliminate the need for dedicated SOLR or ElasticSearch instances. Even message queing systems can be implemented in it.
  • Go - The programming language used internally at Google has a lot going for it when it comes to backend development: A low language-complexity, very well designed standard library and very good baseline performance make the language very quick to learn by new team-members.
  • React - When it comes to the frontend, React is the most established solution for designing modern web applications.