Sign in

Nick Tune

@nick-tune.me
2.8K followers 1.6K following 2.2K posts

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.me@bsky.brid.gy - www.linkedin.com/in/nick-tune #legacyModernization #ddDesign

PostsRepliesMedia
Nick Tune @nick-tune.me · 14/09/2026
LOL get in the bin
GPT stops again even though it is not blocked and specifically says "no product decision is needed from you" showing that it knows it's not blocked.
000
Nick Tune @nick-tune.me · 14/09/2026
Dumb as a bag of rocks. This is a workflow with hooks designed to prevent the. model stopping and remind it not. But it just switches to blocked for no reason. No matter what you do, these GPT 5.6 find a way to stop for no reason. They are broken.
ChatGPT in the blocked state. User asks, why are you blocked and GPT responds that it shouldn't be. But instead of carrying on with the work it stays in blocked and returns control to the user.
100
Nick Tune @nick-tune.me · 12/09/2026
Yeah, caching is well worth it.
010
Nick Tune @nick-tune.me · 12/09/2026
At the current rate I'm going to burn about about 1 USD per hour which is a single conversation on low thinking. So the costs can still build up pretty quickly if you've got multile agents going on side projects. But nowhere near the 10s of thousands you'd be paying to Anthropic or OpenAI.
deepseek usage dashboard topped up 4.87 total cost 0.12 USD for 8.5 million tokens across 97 api requests8.2 million tokens used via input cache hit out of 8.5 million total
110
Nick Tune @nick-tune.me · 27/08/2026
I believe that highly standardised codebases will make working with AI better for a variety of reasons. In previous blog posts I showed how strong conventions make deterministic enforcement easier, down to a granular level. Those conventions can also make extracting architecture from code easier.
github pr comment added by an action showing changed subdomains and entrypoints in the PR, generated directly from the code without any LLMsSecond part of the comment showing changes in the domain layer. A new aggregate was added containing and entity and 2 mtethods
131
Nick Tune @nick-tune.me · 20/08/2026
Codex is annoying me today. It keeps randomly stopping, even when I tell it not to. "I'm sorry I shouldn't have stopped"... <immediately stops again> So i try the "/goal" command it's just broken 75% of the time
Codex: "failed to set goal" when /goal command is broken
000
Nick Tune @nick-tune.me · 15/08/2026
Elon musk topless looking very different to the AI video he posted
000
Nick Tune @nick-tune.me · 20/07/2026
Is this good?
Visualisation of SpaceX share price cratering
440
Nick Tune @nick-tune.me · 15/04/2026
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.
AI coding session stats (tool calls, files, edits) grouped by workflow state: implementing, reviewing, submitting pr...
290
Nick Tune @nick-tune.me · 31/12/2025
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...
full graph viewsingle flow viewentity view
3115
Nick Tune @nick-tune.me · 15/11/2025
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...
CLI terminal running "cl" command (claude launcher). Presents a list of 7 system prompts. Number 5 is chosen - super-tdd-developer
470
Nick Tune @nick-tune.me · 18/10/2025
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
Phase 1: Learn

Domain A accesses Domain B's data in the legacy directlyPhase 2: Migrate
The concept is validated, so migrate required logic to Domain B, create an interface, and migrate Domain A's dependency on the legacy to the new interface.
142
Nick Tune @nick-tune.me · 20/09/2025
These places look good
restaurants in the area serving pineapple pizza
120
Nick Tune @nick-tune.me · 13/09/2025
Spotted in the wild !
Bakery shop with sign "chocolatine" next to pastries
330
Nick Tune @nick-tune.me · 24/07/2025
I just ordered a cocktail called resident evil. Not bad.
Resident evil cocktail
160
Nick Tune @nick-tune.me · 05/07/2025
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
screenshot of terminal outpot showing claude code blocked until it fixes a linting error
130
Nick Tune @nick-tune.me · 31/05/2025
Managed to smuggle these bad boys out of Hungary
2 bottles of palinka
260
Nick Tune @nick-tune.me · 29/05/2025
I like how LinkedIn has to constantly remind me who I am
LinkedIn image and name with "you" next to it
150
Nick Tune @nick-tune.me · 28/05/2025
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
Console error: this.createChicken is not a function 3d rotating vegetables
030
Nick Tune @nick-tune.me · 24/05/2025
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
6173
Nick Tune @nick-tune.me · 22/04/2025
There's a domain-driven design outpost in New Orleans. #ddDesign
060
Nick Tune @nick-tune.me · 21/04/2025
The charbroiled oysters at Acme Oyster House were superb
Charbroiled oysters Empty plate
010
Nick Tune @nick-tune.me · 21/04/2025
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.
BeignetsFlood warning sms Café beignet chicory coffeeRoads turned into rivers
210
Nick Tune @nick-tune.me · 18/04/2025
@mentrix.bsky.social absolutely blew the roof off the venue with her opening keynote. I hope Steve can forgive her
Diana on stageDiana title slideDiana on stage with slide
150
Nick Tune @nick-tune.me · 18/04/2025
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.
Randy on stageTechnology dead ends at ebayeBay's flat revenue
110
Nick Tune @nick-tune.me · 18/04/2025
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.
Jimmy in a slightly weird position on stage Jimmy's UMLJimmy's codeJimmy's refactored code
150
Nick Tune @nick-tune.me · 06/04/2025
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
Architecture diagrams: writes go the legacy, reads go to the new
200
Nick Tune @nick-tune.me · 05/04/2025
These Brazilian cookies are delicious! 😍😍 I shouldn't be eating them for breakfast but YOLO! Thanks for the gift @marcelojscosta.bsky.social
Box of castanha do ParaOpened box showing the cookies
140
Nick Tune @nick-tune.me · 05/04/2025
Feels personalised
See you soon, Nick Tune
030
Nick Tune @nick-tune.me · 04/04/2025
"it would be lovely if everyone could just understand Archi Mate" - @kenny.weave-it.org #AmA2025
Kenny on stage talking about collaborative modelling with Evelyn
030
Nick Tune @nick-tune.me · 04/04/2025
Use the modularity maturity index to measure the modularity of your DDD potatoes #ddDesign
Modularity maturity index
120
Nick Tune @nick-tune.me · 04/04/2025
The famous DDD potato notation makes an appearance at @amaconf.bsky.social !! #ddDesign #ama2025
Carola on stage presenting a context mapContext map slide
151
Nick Tune @nick-tune.me · 27/03/2025
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.
The sock puppet
110
Nick Tune @nick-tune.me · 25/03/2025
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
Evolution of code model and mental model over time. At the start they are the same, but with each evolution they start to get more and more mis-aligned.
2145
Nick Tune @nick-tune.me · 23/03/2025
Don't discount anything when it comes to @maxsc.bsky.social and food:
Max eating sushi and choclate mixed on a plate
030
Nick Tune @nick-tune.me · 21/03/2025
Vibe coding shot and chaser
Co pilot says to use sqlite3-mock for in memory testing I asked co-pilot if sqlite3-mock exists and it says no I need to use something else
261
Nick Tune @nick-tune.me · 08/03/2025
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.
type Apple = { colour: string, weight: number }
type Money = { amount: number, currency: string, }

const items: (Apple|Money)[] = [
    { amount: 5, currency: 'EUR'}
]

items.forEach(item => {
    const food: Apple = item as Apple
    console.log(`Delicious apple: ${JSON.stringify(food)}`)
    // Prints: Delicious apple: {"amount":5,"currency":"EUR"}
})
510
Nick Tune @nick-tune.me · 15/02/2025
When modernizing, you may add stricter validation (new code). How do you ensure legacy data wont cause your new code to blow up? Example: when a write is made to legacy you create a corresponding entity in new. Legacy accepts string upto 100 length, new system limits to 75 and applies a regex.
Diagram of legacy write operation with validation string synchronising to new with validation regex
120
Nick Tune @nick-tune.me · 09/02/2025
Looking pretty good. No gradients.
Flattened coffee in portafilterAlternative view
030
Nick Tune @nick-tune.me · 09/02/2025
Time to test out the Normcore v4! #coffee
White normcore v4 tamper next to portafilter
130
Nick Tune @nick-tune.me · 05/02/2025
Been thinking about different approaches to behaviour change recently and trying to dig into my own biases and preferences. I think I generally lean more towards influence via system change. I like to trying to create an environment where people can learn and make choices themselves.
Diagram with two options: influence behaviour change with direction interaction or via system change
271
Nick Tune @nick-tune.me · 04/02/2025
I don't always agree with @gienverschatse.com. But here I have no choice but to concede.
180
Nick Tune @nick-tune.me · 01/02/2025
I will be at FlowCon in April. Hope to see you there. I've had a great year at PayFit and will share some of the good stuff I've been involved in or seen.
FlowCon conference talk description: the long journey of legacy modernization by Nick Tune

1st April
074
Nick Tune @nick-tune.me · 31/01/2025
Celebrating the French way 🥖
French baguette and pastry, fresh
250
Nick Tune @nick-tune.me · 31/01/2025
Passed by B2 in French. Let's go C1!
B2 exam results: 93.5/100
4330
Nick Tune @nick-tune.me · 28/01/2025
Currently listening to @settling-mud.bsky.social, the self-styled change smuggler.
Xin Yao - the change smuggler
270
Nick Tune @nick-tune.me · 18/01/2025
I think I must have trained it badly, by taking pictures of @maxsc.bsky.social eating chocolate and sushi.
Maxime eating chocolate and sushi at the same time altogether on a single small plate
240
Nick Tune @nick-tune.me · 18/01/2025
AI is so smart... How did it know that I really wanted to be reminded about the best sweet treats I've eaten, like this octopus. My absolute favourite dessert!
A plate of octopus and runny eggs
210
Nick Tune @nick-tune.me · 13/01/2025
I need to work hard to achieve my DALF C1 in French this year. So I'm creating a wall of interesting phrases that I hear at work.
A wall with post-its containing French phrases
3100
Nick Tune @nick-tune.me · 09/01/2025
First shot ✅
Shot of espresso
441