Embracing the Generalist Path: A Journey Through Diverse Tech Stacks
Have you ever felt the pressure to master a single technology or a specific tech stack? The conventional wisdom for solo software developers tells us to become experts, to specialize. I’ve often felt this pressure and made several attempts to follow this path. However, this year, I’ve come to a realization: I am, at my core, a generalist. And that’s okay.
Throughout my career, I’ve attempted to master various tech stacks and even pivoted my business a couple of times. From the early years of working exclusively in FileMaker Pro, then trying to pivot to iOS app development, becoming fascinated with game development, and even getting pulled into virtual reality. I spent entire years focused on a single stack such as Swift/iOS or C#/Unity. And in the midst of these major shifts, I steadily built up a significant knowledge base in web development.
In 2016, I was eager to make a consumer product and started learning Swift and iOS development. I had ideas for apps, but I soon realized that iOS development was far more complex than I had anticipated, and I hit several roadblocks. Yet, instead of being deterred, I found another avenue in SpriteKit, which opened the door to game development for me. Despite the hurdles, I gained valuable insights and confidence from these experiences.
After a stint with game development, I ventured into the realm of virtual reality. I spent a significant chunk of my time and energy learning about Unity, C#, 3D modeling, animation, and AI. But despite the fascinating nature of VR, I realized I was in way over my head. I wasn’t going to make a great game, not because I lacked the technical skills, but because I didn’t have the type of vision and creativity it required. So, I decided to step away from VR development, at least where games were concerned.
By 2020, it became clear to me that consumer software wasn’t my forte, and I decided to return to working with small businesses. It wasn’t a failure, but a strategic shift based on the lessons I had learned. This led me to refocus my energies on creating useful things and solving problems for my customers, utilizing a handful of skills including FileMaker, WordPress, PHP, and various front-end web frameworks. At the same time, I kept exploring new things, such as Vue JS and WebXR, and started several side projects that further expanded my skills.
Looking back, I realize that each pivot, each endeavor, and each exploration, whether successful or not, has shaped me into the developer I am today. I’ve learned that it’s okay to be a “Developer General” (a silly title I’m considering). It’s not about mastering every single skill, but about understanding a handful of core concepts and learning the rest as I go.
Every skill or technology I’ve worked with has provided me with valuable lessons that have made me a better developer. Even when I’ve had to set a skill or technology aside, I’ve never truly left it behind. Every experience, every project, has contributed to my growth.
Being a generalist doesn’t mean you are a master of none, but rather that you have a broad range of skills and the flexibility to adapt to new challenges. It’s about being able to see the bigger picture and make connections between different fields. And most importantly, it’s about continuous learning and growth.
If you’re a developer who thrives on working with a variety of technologies, don’t feel pressured to limit yourself to a single tech stack. Embrace your inner generalist. We have a unique perspective and a diverse set of skills that can add value in unexpected ways. As developers, we should celebrate our strengths and the diverse paths that have led us to where we are today.
To all my fellow Developer Generals out there, I say this: Keep exploring, keep learning, and keep growing. Your journey is unique, and that’s what makes you invaluable.
One Comment