Written By Richard Armstrong – High Vision Systems – December 2024
In today’s tech industry, there is a pervasive and narrow view of what defines an “experienced developer.” Many employers insist on only hiring programmers who check every box for their current frameworks and tools, treating technology stacks like rigid job descriptions. This is akin to comparing candidates from different hamburger restaurants: while every restaurant offers burgers, each has its own unique spin. To assume that a great chef at one burger joint can’t cook the burgers at another is, quite frankly, unrealistic—and everybody involved misses out.
This dangerous and limited mindset ignores a fundamental truth: programming is about adaptability and the ability to learn new tools and languages over an entire career—not about being a walking encyclopedia of every trending technology or heavily marketed buzzword of the day. Let’s be honest—no one can master everything, and no college produces any such developer, because these technology waves are always temporary and inevitably come and go. There is always another one on the horizon arriving on the scene to learn.
Programming: A Career of Constant Learning and Evolution
Programming is an expansive and diverse profession. While today’s tools and frameworks (far too many to list here)—React, Next.js, Angular, Vue.js, Svelte, Ember.js, Laravel, Ruby on Rails, Flask, FastAPI, ASP.NET, Docker, Kubernetes, Jenkins, JIRA, AWS, Azure, Firebase—and the absolute plethora of many other popular frameworks and tech stack combinations—are undeniably useful, they represent just a tiny fraction of the technologies that have shaped the software landscape. Developers who have worked with other, and even legacy, technologies weren’t just following framework recipes—they were often innovating solutions and building the foundations of modern programming from scratch.
Consider this:
- If you don’t meet every checkbox requirement but you’ve written and debugged code for the original Apple Macintosh, calling Pascal libraries from C via the Mac Toolbox, and wrestled with converting strings between the two languages, does that disqualify you as an experienced programmer? These developers had no Stack Overflow or comprehensive guides—they had to figure out how to bridge incompatible technologies themselves.
- If you don’t align with every framework listed but once wrote COBOL, FORTRAN, or IBM Assembly for an IBM 370 mainframe, debugging programs punched into Hollerith cards, are you still a programmer? Those who worked on these systems relied on precision and efficiency, with tools as simple as rubber bands to keep their card decks in order—a literal lifeline for programming in that era.
- Developers who don’t check every box but wrote flight software in ADA for the Titan rocket or Macro-11 Assembly for the PDP-11, or worked on the NEXT or Unix SPARC computer systems, tackled challenges so novel and complex that no best practices existed—they had to invent them.
- Imagine someone who doesn’t meet every framework requirement but has built high-performance ETL (Extract, Transform, Load) systems in Oracle Pro*C to process nightly, thousands of 90,000-page mainframe reports, transforming them into usable data for an Oracle data warehouse, and then even re-create the original report or a custom report for users via PHP and .NET web technology. These weren’t plug-and-play systems—they were handcrafted solutions to massive challenges.
- Developers working on systems like the Space Shuttle’s robotic arm, life-support systems, or today’s drone flight software, specialized sensors, and computer vision applications had to design software where failure wasn’t just unacceptable—it could mean life or death.
Just as these pioneers tackled life-critical systems, today’s developers in cutting-edge fields like IoT, edge computing, computer vision and AI are also building the future, often without predefined roadmaps. Utilizing Python, C++, Arduino, ESP32 and Pi boards with Arduino IDE and PlatformIO. These fields require extreme learning and ingenuity to work within constraints like limited memory, real-time processing, electronics, custom sensors, and energy efficiency—qualities that are just as critical in modern systems as in legacy programming.
The most critical point is this: no one was trained for these tools or technologies before they existed. There was no list of boxes to click. These developers didn’t “know the stack”—they built the stack. They weren’t following pre-written documentation or object-oriented design patterns; they were innovating the future at the speed of thought.
This pioneering spirit—figuring things out from scratch, solving unprecedented problems, and inventing entirely new approaches—is what defines true programming expertise. Developers who thrived in these environments demonstrate adaptability and problem-solving skills that are just as relevant in today’s world of cloud computing, AI, microservices, and frameworks.
Programming Is a Craft, Not a Checklist
Programming as a profession transcends any specific set of tools, languages, or applications. At its core, programming is about:
- Solving problems,
- Adapting to and always learning different systems, languages, paradigms, and frameworks.
- Creating solutions that work, no matter the technology.
Developers working in specialized fields—embedded systems, IoT, edge computing, scientific computing, legacy systems, game development, and more—may never touch today’s trendy buzzword tools, yet they are unquestionably experienced programmers. Many of the technologies we now take for granted were built by developers who never worked with the frameworks and tools dominating today’s job postings.
By rejecting these experienced developers because they can click on some, but not every box in your tech stack, you, your team, and your company are missing out on amazing talent and innovations.
The Role of Adaptability in Building Great Teams
The ability to adapt to change is the most critical skill in software development. It’s why colleges focus on teaching database technology or core programming concepts instead of specific vendor tools like Oracle, Firebase, or PostgreSQL. Professionals are expected to adapt to whatever challenges they face, whether that means learning a new tool, embracing an unfamiliar paradigm, or troubleshooting an unexpected problem.
Over the span of a career—40 or 50 years—developers will encounter hundreds of tools and technologies, most of which didn’t exist when they started. Likewise, the technologies you rely on today will inevitably be replaced. Hiring solely based on today’s stack is like planning for yesterday’s future.
The Value of T-Shaped Developers
Great developers aren’t just defined by their depth of expertise in one framework but by their breadth of knowledge across languages, paradigms, and industries. These T-shaped developers—who bring deep expertise in one area and broad adaptability across others—are the innovators who will keep your organization ahead of the curve and moving into the future.
Developers with experience in older or legacy systems are a perfect example of this. They have already demonstrated their ability to adapt, innovate, and solve problems in diverse contexts, making them invaluable assets in modern development teams. The adaptability they developed while pioneering solutions in the past is exactly what allows them to thrive in today’s rapidly changing technical landscape.
Conclusion
The point is this: there is no singular path or checklist of frameworks to becoming an “experienced developer.” Programming is a journey, not a destination—a lifelong craft that evolves and thrives on diversity, learning and change. The strength of the software industry comes not from mastering every buzzword along the way but from the rich diversity of experiences, industries, and eras that developers bring to the table—and that can propel your team into the future.
When hiring, don’t focus solely on who checks every box for your current technology stack. Instead, also look for those who have proven their ability to learn, adapt, and innovate. By doing so, you’ll build stronger, more versatile teams—and perhaps discover new possibilities for your organization that your existing stack might be holding you back.