Why I Chose Linux: A Journey To Development Freedom
Leon mckenzie (rowan turner)
Posted on January 27, 2024
Introduction:
As a software engineer and music producer, the essence of my digital existence hinges on one critical principle: full control. In the sprawling universe of development environments and music production tools, this mantra has led me down a path less traveled, a journey punctuated by love, loathe, and a relentless quest for the perfect setup.
My relationship with development tools is intense, to say the least. Xcode? I've given it a try, but let's just say it wasn't a match made in heaven. Enter Neovim – a beacon of hope in a sea of bloated IDEs. It's not just a tool; it's a statement. A statement that says, "I know what I'm doing, and I need the freedom to do it my way." Neovim has been a game-changer for me, stripping away the unnecessary and leaving a sleek, powerful interface that bends to my will, not the other way around.
But let's not forget the other side of the coin – my passion for music production. Here, the narrative takes a different turn. The Mac, often seen as the antithesis of customization and control, paradoxically, becomes the hero. Why? Because, in the domain of music production, it simply excels. The seamless integration of hardware and software creates a symbiotic ecosystem where creativity flows unimpeded. In this world, the Mac is not just a tool; it's a partner in the creative process.
And then there's Windows – the operating system that tries to be everything to everyone and ends up being a master of none, at least in my eyes. My heart belongs to Unix. Its philosophy, its power, and its flexibility resonate with me on a fundamental level. It's the underpinning of my chosen platforms, a testament to my desire for a computing experience that feels like an extension of myself, not a constraint to be wrestled with.
In this blog, I embark on a candid exploration of my journey through the landscapes of software engineering and music production. It's a tale of two worlds – one where Neovim reigns supreme in a Linux-dominated realm, and another where the Mac becomes the linchpin of musical creativity. Join me as I delve into the reasons behind my choices, the challenges I've faced, and why, despite the dichotomies, I've found a setup that feels like home.
My Ultimate Development and Production Setup:
At the heart of my technological domain lies Garuda Linux Dragonized, enhanced with KWin for a tiling window manager experience that merges aesthetic appeal with efficiency. This choice isn't just about the look; it's about creating a fluid, distraction-free environment where my ideas can soar unfettered. Neovim, my trusted sidekick in the realm of code, is the cornerstone of this setup, its extensibility and speed harmonizing with the Linux foundation to cut through development tasks like a knife through butter.
For my diverse project needs, I oscillate between a suite of powerful languages and frameworks. CMake, JUCE, and Qt lay the groundwork for my desktop applications, with the choice of Rust, Go, or C++ depending on the project's demands. When the web calls, JavaScript, TypeScript, Node.js, and Svelte are my go-to tools, weaving together the frontend and backend with finesse. And yes, I admit to the occasional foray into VS Code for certain tasks— a cardinal sin in the eyes of some purists, but a pragmatic choice for its unparalleled ecosystem and integrations.
For my day job, Python along with PyTorch serves as the backbone of my endeavors into the realms of data science and machine learning, where the manipulation of vast datasets and the training of sophisticated models demand both flexibility and power.
The physical manifestation of my digital workspace is just as critical. My ThinkPad P14s Gen 1, boasting 32GB RAM and a 2TB SSD powered by an i7 processor, is the engine driving my endeavors. This powerhouse is complemented by a triple monitor setup, extending my digital canvas and enhancing my ability to multitask and visualize complex projects. A split keyboard with a custom layout sits at my fingertips, an ergonomic choice that keeps me coding and producing music for hours without strain.
This setup is not just a collection of tools and hardware; it's a carefully curated ecosystem that reflects my identity as a developer and artist. It's where functionality meets personal expression, enabling me to transcend the ordinary and venture into realms of unparalleled creativity and productivity.
Embracing Cross-Platform Development and the Power of CI
The journey towards embracing Linux as my primary development environment wasn't just a personal preference; it was a strategic move underpinned by years of cross-platform development experience. True, I navigated the ecosystems of macOS and Windows for five years, a period that not only broadened my technical expertise but also deepened my understanding of the unique challenges and opportunities each platform presents. At my startup—which I proudly founded and lead—we've crafted a complex yet elegant continuous integration (CI) system that stands as a testament to our commitment to developer freedom and efficiency.
Building across platforms is no small feat, especially within a lean team of three. The key to our agility and adaptability lies in our CI system, a setup that allows us to compile, test, and deploy our applications irrespective of the individual development environments. This autonomy is crucial for a startup where innovation and speed are of the essence. We believe strongly that any company, particularly those with a focus on technology, should invest in a robust build pipeline and cloud-based development practices. For those unable to make this leap, providing developers with the necessary hardware, like laptops, is a fundamental responsibility.
Our CI system enabled a significant transition for me personally—it allowed me to switch back to Linux without compromising our workflow or productivity. This move was more than a change of operating systems; it represented a strategic decision to align our development practices with the most efficient, flexible, and scalable solutions available. In doing so, we not only enhance our capabilities but also set a standard for what good leadership and foresight can achieve in the tech industry. By advocating for and implementing these practices, we empower our team to work in environments that best suit their skills and preferences, all while maintaining a high standard of quality and collaboration across our projects.
Navigating Between AI Research, Startup Ventures, and Linux:
My professional journey straddles two distinct yet complementary worlds: by day, I immerse myself in the cutting-edge realm of AI research within a lab setting, where Python and PyTorch are my tools of choice in pushing the boundaries of machine learning and data science. This work, while challenging, offers a unique perspective on the potential and complexities of AI technologies. By contrast, my entrepreneurial spirit finds its outlet in Synergy DSP, a startup I founded to explore the innovative frontiers of digital signal processing. Here, our commitment to agile development and robust software practices is embodied in our sophisticated CI system, ensuring our small team can deliver high-quality, cross-platform solutions with remarkable efficiency.
This dual engagement presents a fascinating dichotomy:
the structured, research-oriented environment of my day job versus the dynamic, fast-paced world of a tech startup. Bridging these two is my unwavering preference for Linux as my development environment. The choice of Linux is not incidental but a deliberate preference for its open-source ethos, versatility, and the unparalleled control it offers over the development process. Linux, with its rich ecosystem of tools and languages—from Neovim for code editing to the use of CMake, JUCE/Qt for desktop development, and JavaScript frameworks for web projects—provides the perfect foundation for both my AI research and startup projects.
The decision to pivot back to Linux for my development work, even as I navigate the complexities of AI research and lead a startup, stems from a simple truth: Linux aligns with my need for a highly customizable, efficient, and open development environment. It caters to the diverse technological demands of my professional and personal projects, enabling a seamless integration of my coding practices across different contexts. The CI infrastructure at Synergy DSP, designed to support cross-platform development, underscores this philosophy by allowing us the freedom to choose our development environments without compromising on productivity or collaboration. This setup not only reflects our startup's adaptability but also my personal ethos as a developer and entrepreneur: embracing the tools and platforms that foster innovation, efficiency, and creativity.
In essence, the choice to prefer Linux is more than a matter of personal taste; it's a strategic decision that enhances my effectiveness across my roles in AI research and as a startup founder. It signifies a broader commitment to leveraging the best tools and practices available, ensuring that whether I'm delving into AI algorithms or building the next generation of digital signal processing software, I'm doing so on a platform that maximizes my potential.
Conclusion: Embracing Linux in a World of Diverse Tech Challenges
My journey through the realms of AI research and startup leadership has been a testament to the power of choosing the right tools and environments that not only cater to immediate project needs but also align with broader personal and professional goals. The transition back to Linux, a deliberate choice in my development arsenal, underscores a philosophy that has guided me through both areas of my life: the pursuit of efficiency, flexibility, and control in the technology I use.
Linux, with its open-source nature and robust community support, has proven to be an invaluable asset in tackling the diverse and complex challenges I face daily. Whether it's developing cutting-edge AI algorithms in the lab or steering Synergy DSP towards innovative digital signal processing solutions, Linux offers the stability, performance, and adaptability necessary to navigate these tasks with confidence and creativity.
The CI system we've implemented at Synergy DSP is not just a tool for facilitating cross-platform development; it's a reflection of our commitment to creating an environment where innovation thrives, free from the constraints of proprietary platforms. This system, coupled with my preference for Linux, represents a broader ethos: that the freedom to choose how and where we build our technology is fundamental to driving progress in the tech industry.
In conclusion, my return to Linux is more than a mere preference for an operating system; it's a strategic alignment with a platform that embodies the principles of openness, innovation, and control. It's a choice that has empowered me to excel in the highly technical field of AI research and navigate the entrepreneurial challenges of running a tech startup. As the tech landscape continues to evolve, I remain convinced that Linux will continue to be a pivotal force in my development journey, enabling me and my team at Synergy DSP to push the boundaries of what's possible.
Posted on January 27, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.