Blog
I write to think. Most of what follows started as a problem on my desk. A team that had stopped talking, a codebase nobody wanted to touch, an API that fought back. Then it turned into something worth writing down.
Roughly half is about leading mobile engineers, the other half about Swift and the tools around it, plus whatever else has my attention at the time.
No schedule: I publish when something actually interests me.
Start here
Intuition lies: lessons from a CSV parser
SERIESA CSV with 260 MB and 5.6 million rows: reading it the most intuitive way costs 11 seconds and 782 MB, but the culprit isn't what it seems.
The engineer you’d want to be
Writing code is one part of the job. With AI folded into every workflow, what makes an engineer stand out is most of the rest.
Don't hire for passion
Dozens of technical interviews led me to an uncomfortable conclusion: passion is a poor hiring signal. Professionalism is the one that holds up.
Healthy approach to code reviews
Reviews raise the quality of the code and put people on edge at the same time. Who should review, what to look for, and how to comment without making it personal.
All posts
- Intuition lies: lessons from a CSV parserSERIES
- Oh no! Yet another refactor request!
- Fixing the Xcode 16 LLDB error “Couldn’t realize type of self”
- The engineer you’d want to be
- Don't hire for passion
- Beyond specialization
- Task & Threads in Swift Concurrency
- The effect of indirect actions on team dynamics
- Not everything has to be perfect the first time
- Thoughts on moving to a leadership role
- Healthy approach to code reviews
- The broken window principle applied to software
- Modern networking in Swift
- How Feature Flags can boost your mobile app
- The economy of tech debt