Nick Tune
@nick-tune
Author of Architecture Modernization Curator of legacy-modernization.io Check out my DDD list to find lots of DDD people on here nick-tune.me @nick_tune@hachyderm.io #legacyModernization #ddDesign
By combining state machine-driven workflows and event sourcing you can get more nuanced insights about how your agents are behaving. If a pull request fails to meet requirements or the workflow seems to be inefficient, you can dig in to the data and replay the exact sequence of events.
My new little side project is now live: living-architecture.dev Basically: extracting software architecture from code and visualizing it. Demo: living-architecture.dev/eclair/?demo... Currently there is a library, CLI, schema, and web app. 100% open source on github: github.com/NTCoding/liv...
Claude Launcher is a super simple bash script I use to start all my Claude Code sessions that allows me to choose the system prompt for the conversation. It's basically a wrapper for "claude --system-prompt" but it saves a few taps of the keyboard. github.com/NTCoding/cla...
Legacy-leveraged learning phase is the name I use for a pattern we've been using at PayFit in a few places recently. This pattern is controversial because it violates my most important modernization principle: respect domain boundaries. 1/4 #legacyModernization #dddDesign
I've been playing around with the new claude hooks features and so far I think it could be a decent step forward. No matter how good your prompts are, I find even the best models will still create code with lint errors, and generally not follow your instructions as much as you want them to. 1/2
Vibe coding is a ride into the unknown. You never know where you will end up. Unfortunately at DDD Hungary tonight our ambitions were derailed by this.createChicken ☹️ But with @zherendi.bsky.social as our inspirational product manager, the group was able to deliver a 3d-rotating vegetables feature
Is TypeScript a good language for doing type-driven functional domain modeling Scott Wlaschin style? It certainly has weaknesses compared to other languages but you can do some nice things. Example: multi-country logic where some parameters are required in some countries but not others. 1/5
There might be biblical rain, risk-of-life flood warnings, and lightning all over the sky... ..But that's not enough to stop me getting my chicory coffee and beignets in New Orleans.
@mentrix.bsky.social absolutely blew the roof off the venue with her opening keynote. I hope Steve can forgive her
Listening to @randyshoup.bsky.social talking about the ups and downs of his life at eBay was very entertaining and educational, and far more revealing than most conference talks.
Had a great week at Explore DDD in Denver. Live refactoring with @jimmybogard.com and a cup of green tea with honey was the combo I never knew I needed.
When modernizing you might be tempted to modernize the queries/reads of a subsystem first. And this can be a totally valid approach if you want to unlock value by building new APIs that provide more advanced features or better performance/scalability. But there are some risks... 1/3
These Brazilian cookies are delicious! 😍😍 I shouldn't be eating them for breakfast but YOLO! Thanks for the gift @marcelojscosta.bsky.social
"it would be lovely if everyone could just understand Archi Mate" - @kenny.weave-it.org #AmA2025
The famous DDD potato notation makes an appearance at @amaconf.bsky.social !! #ddDesign #ama2025
It was so kind of you to add some slides about @jchannon.social . He's contributed a lot to the world of web frameworks and APIs. Glad to see he is finally being appreciated.
An under-appreciated benefit of architecture modernization is the chance for semantic convergence (of your software and mental model). It's common in legacy systems for words and concepts not to align with how people think and talk about the business. 1/4 #architectureModernization #dddDesign
I was caught out by a bug recently that seemed like it shouldn't be possible. I could see in the logs the value of a field did not match the type. It should not have been possible. But the problem was me, I didn't understand that the 'as' keyword puts a lot of control in the developer's hands.