The Hardest Part of Serverless Is Not the Code
The hard part of serverless is usually not writing the handler. It is understanding what failed, what the event looked like, and why the system changed underneath you.
wade womersley – york based software engineer
Engineering notes from the sharp end
wade womersley – york based software engineer I write the way I work: direct, useful, and more interested in what holds up in production than what sounds clever on a slide.
201 published posts
Latest update
Latest post
The hard part of serverless is usually not writing the handler. It is understanding what failed, what the event looked like, and why the system changed underneath you.
Archive
The best engineering decisions usually do not add more process or more code. They remove work, shorten paths, and make the remaining system easier to understand.
Software delivery usually slows down because of decisions, handoffs, fear, and bad environments, not because developers are typing too slowly.
Offline support looks like a simple feature request until you have to deal with stale data, sync conflicts, retry rules, and user expectations. The hard part is not storing data locally. It is keeping the whole system honest.
Build pipelines stop being “just internal tooling” the moment they start deciding how fast you can ship, how often you break things, and how painful releases feel.
Kotlin feels good when it removes friction instead of adding ceremony. After enough Java, that difference becomes obvious very quickly.
The hard part of a mobile app is usually not the screen layout. It is sync, auth, state, permissions, offline behavior, and the release problems that show up after the UI already looks finished.
A good API is not just functional. It is predictable, consistent, and easy to use without a lot of guesswork.
Clever infrastructure looks impressive in diagrams. Boring infrastructure is usually easier to operate, easier to debug, and much easier to keep alive once real users depend on it.
Environment management usually looks simple at first. Then defaults drift, secrets spread out, local setups stop matching production, and the whole thing becomes a source of avoidable mistakes.