AI Expert: Most Software Engineers Aren't Ready for What's Coming
TL;DR
AI doesn’t replace engineering judgment — it amplifies it — Dennis Vink, principal consultant at Xebia, says the real differentiator is still system design and software architecture, because strong engineers get “exponentially higher” quality from models than people without those foundations.
Modernizing legacy systems safely starts with tests, not prompts — before migrating old codebases, Dennis first adds maturity: test coverage, parity tooling, and documentation, so the new system can be checked automatically against the old one feature by feature.
Feature parity is the core migration trick — in his game migration from binary/C/C++/Flash to Rust plus a web interface, he built simulators around the old code’s entry points and verified that the new system produced identical outputs and consequences for the same actions.
Big migrations are still slow, iterative, and expensive — Dennis pushed a roughly half-million-line legacy game server through a month-long migration process that consumed billions of tokens, done in scoped chunks with executable plans, regression tests, and lots of iteration.
The workflow shift is from hands-on coding to orchestration — instead of “finger-snap” rewrites, Dennis breaks work into small user-story-sized pieces of value, prompts against those, and parallelizes only across clean boundaries like database, editor, server, and web client.
He’s genuinely worried about junior engineers skipping the struggle phase — Dennis thinks new developers may miss the deep learning that comes from manually building, debugging, and making mistakes, even as AI makes non-technical people productive enough to ship real prototypes in under an hour.
The Breakdown
Dennis’s AI work has moved from education to real production systems
The conversation opens with Dennis Vink explaining how client demand has shifted: in 2024, companies mostly wanted to learn AI, but now they’re more self-sufficient and bring him in for harder production problems. His recent examples are practical, not hypey — knowledge-base systems, BigQuery-style data research tools, and AI components embedded inside actual products.
Side projects reveal his real obsession: bringing old systems back to life
Dennis lights up talking about personal builds, especially reviving a 20-year-old game from a binary and partial C/C++ source into Rust with a browser-based interface. His point is that syntax knowledge fades, but patterns and principles don’t — if you understand architecture and debugging, you can still read the old thing and rebuild it.
Vibe coding is real, but control is the missing ingredient
He pushes back on the idea that anyone can just “vibe code” their way to solid software. Yes, you can generate an app with zero programming knowledge, but then “it will just go the direction that the model thinks is best,” and you won’t be able to judge quality or steer it when things get weird.
His migration playbook starts with parity, tests, and risk mitigation
Using the game as the example, Dennis explains that migration is about proving identical behavior, not matching code line for line. He writes tests and parity tooling around the old and new systems, triggers the same entry points, and checks whether the outputs and downstream actions are exactly the same — a brute-force method, but one that reduces risk.
The process is not automated magic — it’s scoped iteration with a lot of waiting
Dennis rejects the “finger snap” framing of code migration. He works in small pieces of value, almost like user stories, and feeds those to the model one chunk at a time; even the game migration, including editor and web interface, took about a month of part-time effort. He also talks about the new bottleneck: not typing prompts, but waiting for agents to finish and then evaluating their output.
Why system design matters more, not less, in the AI era
When the host asks whether system design still matters, Dennis is emphatic: yes, maybe even more. AI empowers engineers who can zoom out and reason about architecture, while juniors who skip the manual struggle may never absorb the foundations — he literally says he worries for the new generation because “the learning experience” is being taken away.
Legacy modernization at scale is possible, but tokens and structure become the constraint
On large codebases, Dennis says the limiting factor isn’t theory but cost and context. His own migration burned through billions of tokens on roughly 500,000 lines across assembly, C++, and old Flash, so he works in chunks, documents each completed section, and continuously runs regression tests to make sure a new fix didn’t break an earlier migrated feature.
AI can make someone feel like “you’re now developer” — but that doesn’t make software quality free
He ends with a great anecdote about helping a non-technical colleague with a real-estate product idea. In one session, they turned her functional requirements into an implementation plan and then a working POC she could show to VCs; when he handed control back and said “now you’re going to do it,” she lit up. But Dennis closes the loop carefully: empowerment is real, yet “to write great software, you still need to be a great engineer.”