Hello! I am a software engineer with a background on distributed systems and data plumbing. I currently work as Principal Software Engineer at Midokura building systems to manage fleets of intelligent devices within Sony's Edge AI sensing platform, AITRIOS. You can find more about me in the about section, or just send me an email.
This page contains some of my writing on software engineering. You can subscribe to updates on my mailing list (low frequency and long form content) or the RSS feed. I'm also in Twitter & Mastodon.
The most recent piece is: Alert on symptoms, not causes.
Highlights
- How organisations cripple engineering teams with good intentions. Engineers benefit from participating in product, sales, customer support, etc. But let's not forget they have a job to do.
- How to build a PaaS for 1500 engineers. Deep dive into the strategic principles we followed at Adevinta to build an internal platform to support 1500 engineers across some of the biggest online marketplaces in Europe and South America).
- How does the default hashCode() work (and how it impacts biased locking). Wondering about the default `hashCode()` I ended up in a deep, although fascinating rabbit hole around the JVM's biased locking implementation.
- "Kubernetes made my latency 10x higher". Blending complex systems often has surprising effects that are hard to predict.
Archive
- Alert on symptoms, not causes
- How about we forget the concept of test types?
- How organisations cripple engineering teams with good intentions
- Migrating an Eureka-based microservice fleet to Kubernetes
- Talk write-up: "How to build a PaaS for 1500 engineers"
- Kubernetes made my latency 10x higher
- Sizing Kubernetes pods for JVM apps without fearing the OOM Killer
- GC forensics by example: multi-second pauses and allocation pressure
- How does the default hashCode() work?
- Frugal memory management on the JVM (Meetup)
- DirectBuffer creation / disposal has hidden contention on sun.misc.Cleaner