Henrik Jernevad

@henrikjernevad
187 Followers
98 Following
941 Posts

Software architect and developer with a passion for simple, effective solutions.
Focus on software design and backend development.

Tech: #typescript #kotlin #java

Web pagehttps://henko.net/
Bloghttps://henko.net/blog/

Ever been handed a legacy system whose dependencies haven’t been touched in a decade—and then been asked to upgrade it?

My latest blog post is a survival guide.

https://henko.net/blog/upgrading-legacy-systems/

#programming #legacy

Software survives by being easy to replace.

This may sound counterintuitive, but if there’s one thing we know, it’s that things change. Technology evolves. Requirements shift. Sooner or later your system, or parts of it, will be replaced. Often sooner than you think.

My latest blog post discusses some helpful guidelines.

https://henko.net/blog/write-code-that-is-easy-to-replace/

#programming #softwarearchitecture

A professional job is one that leaves the system ready for the next task.

We shouldn’t mark an issue as “done” until the codebase has been restored to a maintainable state. Feel free to reduce the scope if the deadline approaches, but make sure to complete the work you commit to.

https://henko.net/blog/leaving-code-messy-is-unprofessional/

#programming

Leaving code messy is unprofessional 🧑‍🏫

A professional job is one that leaves the system ready for the next task.

Henrik Jernevad

If you look at the source code of a typical application, you will likely find business logic tangled with database calls, HTTP requests firing off in the middle of validation rules, and try/catch blocks sprinkled here and there. The biggest casualty of this coupling is testability…

#programming #javascript

https://lackofimagination.org/2025/11/managing-side-effects-a-javascript-effect-system-in-30-lines-or-less/

Managing Side Effects: A JavaScript Effect System in 30 Lines or Less

If you look at the source code of a typical application, you will likely find business logic tangled with database calls, HTTP requests firing off in the middle of validation rules, and try/catch blocks sprinkled here and there. The biggest casualty of this coupling is testability…

Lack of Imagination

A good architect builds the system that the client needs, not the one they want to build.

You cannot judge an architecture as good or bad without considering the context for which it was created. My latest blog post provides advice on how you can take context into account and make architectural decisions that truly matter.

https://henko.net/blog/good-architecture-depends-on-the-context/

#programming #architecture

Good architecture depends on the context 🗺️

How you can make architectural decisions that truly matter.

Henrik Jernevad

AI-generated code often looks impressive at first, but then it drifts: it ignores conventions, duplicates logic, breaks architectural constraints, and assumes things that aren’t true.

To control this code drift you need to make AI take small, well-defined steps. Learn how in my latest blog post.

https://henko.net/blog/avoid-ai-code-drift-with-small-well-defined-steps/

#programming #ai

Avoid AI code drift with small, well-defined steps 🐢

To prevent code drift you need to make AI take small, well-defined steps.

Henrik Jernevad
Shower thought: #AI sometimes feels like a twisted genie that grants your wishes in a way that seems reasonable at first, but you slowly realize makes things worse. 🧞‍♂️

Big news in #AppSec: the #OWASP Top 10 2025 is now available! I'm part of the project team and ALL OF US want every dev, security engineer, and leader to read it (please).

https://twp.ai/4it1bO

1/5

AI promises to make us all 10x programmers, but if you stop reading the code, you aren’t speeding up; you’re creating instant legacy code.

Once the agents have written the code, the code becomes the ground truth. Either you understand the code well enough to verify and adjust it, or you rely on the AI to safely modify it. The latter means outsourcing correctness to a non-deterministic system with unknown failure modes.

Read more on my blog.

https://henko.net/blog/are-you-using-ai-to-generate-instant-legacy-code/

#programming #ai #llm

Are you using AI to generate instant legacy code? 🧑‍🚀

AI can accelerate development, but it doesn’t remove responsibility to understand the code.

Henrik Jernevad

Good point by @jasongorman.

> It’s quite clear that the factors that make code easier for us to wrap our heads around also make LLM performance on it better (less unreliable).

This means that even if you think you will be able to vibe code your way to success without ever reading the source cdoe, it is _still_ important that the generated code is understandable by a human. 🙃

https://codemanship.wordpress.com/2025/11/10/myth-ai-generated-code-doesnt-need-to-be-easy-to-understand/

#ai #llm

Myth: “AI-Generated Code Doesn’t Need To Be Easy To Understand”

You may see people online claiming that “AI”-generated code doesn’t need to be easy for humans to understand, because humans won’t need to.Bah humbug!It’s quite clear …

Codemanship's Blog