Hi I’m Ben Simmonds.
I’m passionate about making software. I love learning, problem solving, having fun with my peers and making great software. Some of my current interests include Rust, Linux internals and Kubernetes.
I’ve been professionally crafting software since the early 2000’s. Mostly in enterprise environments and a few startups. I grew up in the age of the web and Java. Thanks to years of consulting I’ve worn many hats in many fields including frontend, devops, backend, software architecture, distributed systems, databases, message queues and buses, data streaming, data analytics, artificial intelligence and service-based architectures.
Academically I hold 2 university degrees (with a 3rd ETA this year) in this space and a decent pile of certifications. One of the most satisfying things I’ve done as a software engineer is nand2tetris by the Hebrew University of Jerusalem, which involves building a CPU and general purpose 16-bit computer literally from the NAND gates up to the OS. Thanks to Ben Eater I soon followed this up by making my own physical 8-bit CPU out of hundreds of TTL logic gates and breadboards. This pilgrimage has led me into the wonderful world of low-level topics including OS internals, binary reversing and exploit development which I’m actively studying at university.
I live and breath my craft as a software maker. I code in my free time. I invest in the best equipment, tools and training I can afford, much as a passionate cabinet maker invests in only the best chisels. I think about it when I’m asleep. I re-read essential books (Mythical Man Month, Pragmatic Programmer, Peopleware, Code Complete, Joel on Software, Domain Driven Design) about how further the depth of my craft. After visiting Japan in 2014 I was relieved to discover a culture that embraces taking one’s craft seriously. At a Soba noodle bar I was shocked to discover the family business had been making Soba noodles for over 5 generations. Depth, focus and complete commitment to a craft is the norm in Japan. My Japan trip helped me realise its okay to embrace my craft.
My Tools (chisels)⌗
Some examples of tools and equipment I consider worth every cent:
- Herman Miller Aeron my chair
- IKEA IDÅSEN my desk
- GMMK Pro a 75% layout, completely custom keyboard that I personally modded with a combination of Kailh Box Brown and Glorious Panda mechanical switches
- Ergodox EZ a completely open source and customisable split keyboard, which I’ve heavily modified
- Podcaster - RØDE Podcaster my microphone
- Acer Predator X34 my monitors, all on arm mounts
- Vim my editor, over a couple of decades I’ve taken the time to learn my editor thoroughly, a deep time investment that continues to pay dividends
- JetBrains toolbox subscription the best IDE’s and software craftsman productivity tools you can buy
- Physical books - I use and love my books, I break spines, highlight and annotate on them, they exist for one reason, to make me better software engineer and I will never sell one of them
- Training - I’m an annual subcriber to Pluralsight, O’Reilly Learning, InterviewCake. I pay to study at University.
- Great computer hardware - my 2021 custom build runs a 12 core AMD Ryzen CPU, fastest NVMe flash storage, etc.
Critical books on software construction⌗
- The Mythical Man Month by Frederick Brooks
- The Pragmatic Programmer: From journeyman to master by Andrew Hunt and David Thomas
- Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister
- Code Complete: A practical handbook of software construction by Steve McConnell
- Joel on Software by Joel Spolsky
- Domain Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
- Refactoring by Martin Fowler
- Designing Data Intensive Applications by Martin Kleppman