Remote / Distributed Engineering Leadership
Michael Kroes
Fifteen-plus years building software engineering teams that hold together across time zones — with a decade of that spent fully remote and self-employed, working alongside distributed and nearshore teams.
Currently — Software Engineering Manager, Thales
Leadership snapshot
- Leads a value stream of multiple engineering teams plus cross-segment architecture functions at Thales, working closely with nearshore colleagues.
- Coached and mentored 100+ engineers across multiple teams through Agile and BDD adoption at Rabobank.
- Brought in to help steady a struggling engineering initiative — advised leadership, rebuilt team ownership and delivery.
- 10+ years self-employed, leading and collaborating with fully remote, international teams.
Technical background
Fifteen years leading teams hasn't come at the expense of staying hands-on — a career spent mostly in the .NET ecosystem, with working fluency across a few others as projects have called for it.
- Languages
- C#, Java, Kotlin, Python, TypeScript, Swift, Dart
- Platforms
- .NET, ASP.NET Core, Node.js, Flask, Vue.js, Flutter
- Data
- PostgreSQL, MS SQL Server, MongoDB, SQLite
- Tooling
- Azure DevOps, TeamCity, Git, Docker, CI/CD
- AI & agents
- Agentic coding workflows, LLM-assisted code generation, applied AI tooling
Building with AI, not just talking about it
I don't treat AI tooling as a chat window bolted onto a workflow — I design the systems around it. My home infrastructure (Proxmox, Docker, Home Assistant, UniFi networking) runs as a fully documented, git-tracked codebase where Claude Code is a standing engineering partner, governed by the same discipline I'd expect in production: every mutation is committed before and after, irreversible or shared-state actions (firewall rules, DNS, destructive commands) require an explicit human confirmation gate, and read-only investigation is handled by permission-scoped subagents that structurally cannot write.
That same approach carries into side projects: a daily-refresh content pipeline for a local events aggregator runs as a scraper → verifier → QA-reviewer agent chain rather than a single unsupervised job; a shipped bilingual mobile app uses a cost-tuned visual-QA subagent for UI regression checks; an undocumented carrier API became a published Home Assistant integration through systematic reverse-engineering. I've also introduced Claude Code tooling into an existing open-source medical-device codebase (Trio, an automated insulin-delivery system) without disrupting its established contributor workflow.
The common thread: agentic AI is powerful in proportion to how well you scope its blast radius. That's an engineering-management problem as much as a technical one — and it's the same judgment I bring to leading teams.
Beyond the day job
Since 2021 I've contributed to the Type 1 Diabetes Care community — improvements to Nightscout, AndroidAPS, and Loop, the open-source tools behind DIY closed-loop insulin delivery — and help new parents make sense of the technology after a diagnosis.
I've also been an open-source contributor and former co-maintainer of Mail-in-a-Box since 2015, reviewing pull requests and building features in Python and Bash.
For fun, I also build small browser games end-to-end with Claude Code — starting with Star Struck, a logic puzzle in the Star Battle / Queens family.