Embracing the Metal: My 12-Month Journey into Software Fundamentals with Zig
Embarking on a new adventure often brings a potent cocktail of excitement and apprehension. Today, I’m publicly committing to such a journey – a year-long dive into the foundational principles of software development, with the powerful Zig programming language as my primary guide. This isn’t just a personal quest; it’s an open invitation for you to follow along as I navigate this challenging, yet profoundly rewarding, path.
For many who know my work in web development and DevOps, this pivot might seem unexpected. However, a deeper current has been pulling me towards a new obsession: performance. My recent YouTube podcast, where I’ve had the privilege of learning from industry experts, has cemented this trajectory. I’m no longer content with surface-level solutions; I crave an understanding of what truly makes software efficient, robust, and timeless.
My search for a new path is driven by a desire to contribute to an ecosystem that values simplicity, high performance, reliability, and durability. While the mainstream often drowns in fleeting frameworks and vendor lock-in, I’ve found inspiration in communities like Elixir, which champion craftsmanship and long-term thinking. There’s a palpable pull to explore beyond the familiar patterns of web development, to get closer to the ‘metal’ and understand how software truly interacts with system resources. Phil Eaton’s compelling narrative of his transition from web developer to database developer resonated deeply, providing the final push to solidify my resolve: this is a deliberate choice to cultivate a different kind of expertise. For the next 12 months, Zig will be my vehicle for mastering data structures, algorithms, concurrency, and computer architecture.
“Why Zig? Why not Rust or C++? There are no jobs! It’s not even 1.0!” I anticipate these questions, and they are valid. Yet, my choice extends beyond market demand; it’s about the profound satisfaction derived from working with a tool that aligns with a specific philosophy. While I’ll continue my freelance work in the web ecosystem, my passion project will be Zig. I believe that with dedication and the right conditions, the Zig ecosystem is poised for significant growth. Early adopters have the unique opportunity to help shape this future. Projects like the TigerBeel database and the Ghostty terminal are already demonstrating Zig’s capabilities in production, showcasing a masterclass in its philosophy.
What truly captivated me about Zig wasn’t just its elegant syntax, but the underlying mindset. Its creator, Andrew Kelley, and other community members articulate a philosophy of software engineering that emphasizes simplicity, correctness, and performance – principles beautifully encapsulated in the ‘TigerStyle’ guide. Recent financial commitments from influential figures like Mitchell Hashimoto, Synadia, and TigerBeetle further underscore that Zig is a serious project with a vibrant future, far beyond a mere hobbyist language.
This journey is ultimately about mastering fundamentals, with Zig serving as the catalyst. I plan to build challenging projects, documenting every step of the process – the struggles, the breakthroughs, and the inevitable messy parts. If you have an interesting problem that could serve as a valuable learning experience, I encourage you to reach out on X or LinkedIn. My long-term aspiration is to contribute meaningfully to the Zig ecosystem itself.
I won’t sugarcoat it: this will not be easy. Concepts like manual memory management and pointers are new territory, and the fear of ambitious projects falling flat is real. But that’s the essence of learning in public: transparency, vulnerability, and shared growth. I’m stepping far out of my comfort zone, and I invite you to join me on this exciting, unpredictable ride.
Thank you for being a part of this journey. I look forward to our interactions and the discoveries we’ll make together.