RSSAmplifier

Blog

Markus Tacker · Software Crafter

Software Crafter

coderbyheart.comRSS feed ↗20 posts

Latest posts

Registration for Codefreeze 2027 is open

It's about people. It always was.

npm 12 stops running your dependencies' code

Almost every recent npm supply chain attack has used the same delivery mechanism: a compromised package ships an install script, and `npm install` runs it. npm 12 turns that off by default.

Meta is killing source code writing, if you like it or not

Meta is investing billions into an LLM that writes software the Facebook way, and it has reassigned thousands of engineers to produce the training data for it. This paves the way to change how all of us build software, whether we like it or not.

ES+CQRS on AWS: the simplest version yet

I have been iterating on Event Sourcing and CQRS architectures for nearly a decade. When I first started with this pattern around 2016 and 2017, the implementation was considerably more complex — a lot of ceremony, a lot of infrastructure, and a lot of things that could go wrong. Over the years I have stripped it back again and again, and what I have arrived at now is something I'm genuinely happy…

Do not expect an LLM to think

LLMs are excellent at scaffolding code that follows an existing pattern. They are not equipped to design new domain concepts. When you let one do design work, you get code that looks right, tests that pass, and an implementation that quietly misses the point. Worse: you own none of the understanding, so when something breaks, you're debugging a library you didn't write.

Readable Error Messages

Use RFC 7807 "Problem Detail" to document API errors.

Separate workflows through events

Build scalable systems by separating concerns.

Do not change two different things in one Pull Request

A pull request should only address one change at a time.

Keep code left

Make code more readable.

Rebase and ideally Squash instead of Merge Pull Requests

A pull request should only address one change at a time.

Clean .gitignore files

A .gitignore in a project should only cover artifacts caused by the contained source code, not those caused by the personal choice of editor and/or environment of a developer.

Don't use global state like env variables in modules

This hides dependencies to configuration values and makes them hard to spot.

PRs should never contain formatting changes

It's important to have an automated way of formatting source code to eliminate discussions around style and remove noise from diffs.

master is the wrong name for the main branch

I prefer saga branch over master because I think that this name (which means a long continuous recollection of histories) better reflects how development happens.

Method calls: favour argument bags over individual arguments

Bad: myMethod(arg1, arg2, arg3); Good: myMethod({ arg1, arg2, arg3 });

Don't say "sorry" for things you can't control

At work I don't like when people say sorry about something they can't control. I prefer they either just acknowledge it, or tell me what they are going to do about it.

Building serverless applications on AWS

This is the material I share with colleagues who want to learn the idiomatic way of building serverless applications on AWS

Software Quality made this talk happen: push-to-deploy as the means to deal with uncertainty

This talk is an encouragement for developers to trust their skills and tools, but also invest in mastering them.

Serverless Development on AWS

Great book for devs & managers: serverless intro & potential!

How to develop a cellular IoT project

A small lecture I gave on how to approach designing the software architecture for a cellular IoT project.