Deep Water Soloing at Tonsai Bay


I'm Mike Czech, a software engineer and data scientist living in Hamburg, Germany. I work on autonomous driving safety at MOIA and write about data, machine learning, software engineering, travel, and other things I’m learning.
One of the things I enjoy most about AI coding agents is how much easier they’ve made it to show work that would have stayed hidden before. Quick visualizations, one-off tools, and small interactive demos are suddenly worth building because they only take minutes. As a result, presentations have become much more lively. We end up discussing something tangible instead of imagining it!
Generally, I’m a big fan of a show and tell culture instead of endless discussions about abstract ideas. People should feel comfortable showing incomplete work, know it’s okay not to be great at presenting, and be proud of small achievements. Coding agents make this easier than ever before.
“Sunk cost fallacy can be a feature: if you have spent a lot of blood, sweat, and tears on a project, you are more likely to push it through adversity and the doldrums that inevitably one will encounter. If all it took was one of those momentarily brilliant ideas and a prompt on Claude to produce something, there is no attachment whatsoever to it.”
I’ve been working in an environment where heavy AI usage has been the default for a few months now, and I’ve noticed an interesting shift in the economics of recognition.
If exceptional work is increasingly assumed to be AI-generated, the incentive to produce exceptional work may gradually weaken. Recognition has always been part of what motivates people to push beyond “good enough”.
The challenge is that AI makes authorship harder to infer from the output. Even when you solve a problem where AI failed, others may still assume AI did most of the work. As recognition becomes less connected to visible skill, the incentives around excellence begin to change.
I have a feeling that the next breakthroughs in AI won’t necessarily come from more capable models, but rather from much faster inference. In the past two weeks, we’ve seen three interesting developments in that direction.
First, OpenAI announced GPT-5.6 Sol:
“We’re also launching GPT‑5.6 Sol on Cerebras at up to 750 tokens per second in July”
Second, Google released Nano Banana 2 Lite, bringing image generation down to just a few seconds. Finally, they also published Diffusion Gemma, achieving over 1,000 tokens per second on a single NVIDIA H100 GPU.
I suspect that even with model capabilities around the level of Claude Opus 4.6+, this kind of inference speed would enable a lot of new use cases, much like video streaming only became practical once the internet became fast enough.
I’ve noticed that with AI-assisted coding, it’s becoming even more common to end up with large PRs. This is problematic for several reasons:
The interesting thing is that AI coding agents are also really good at splitting large PRs into smaller, more manageable pieces! I’ll often ask an agent to identify independent changes, separate refactors from functional changes, and suggest a sequence of smaller PRs.
To me, this shows that AI-assisted coding isn’t just about producing more code in less time. It can also help reinforce good engineering practices, which are necessary if you want to scale development over time.
One of my favourite new tricks is to be a little more verbose in Slack and then use Claude and Slack MCP to generate a pull request from the discussion. That way, ideas from our Slack discussions make their way into the product almost immediately!
It’s a small example of how software engineering is becoming less about producing code and more about collaboratively shaping the product.
Recently, I’ve been working more with dbt again and came across a useful way to handle questionable rows: configure a test to warn and store its failures.
{{ config(
severity = 'warn',
store_failures = true
) }}
select *
from {{ ref('some_model') }}
where ...
With dbt test, this writes the failing rows to a table instead of stopping the whole pipeline. That makes it a handy way to flag invalid or suspicious records and keep them available for investigation.