Full Stack App Developers
I enjoyed reading Justin Williams “The Parts of Your Platform”. It’s a good rundown of how an indie developer (or small team) can leverage the tools available to them in todays world to build every layer of a software product. What’s more interesting to me is the term “Full Stack App Developer” and the reaction by some who seem to think this is a new idea.
The ‘full stack’ paradigm is starting to make its way to app development going forward as well. It’s no longer enough to just know how to write code for a single platform. To be truly relevant and valuable you need to have an understanding of API design and implementation and cloud computing as well.
This is what I’ve been doing throughout my 12+ years as a professional software engineer. When I’m asked to describe my career in a phrase, I say that I’m “well-rounded”. What I mean is that I’ve been a major contributor or owning architect at every layer of a software solution at some point in my career.
In my first professional job after graduating college in 2001, I wrote software that communicated with teleconferencing bridges through raw socket connections. On top of that layer we created a web service (using classic ASP pages and XML-RPC), as well as a Windows Pocket PC app that allowed the host of a conference call to control the conference from their device.
At NewsGator, I started by taking over NewsGator Outlook and integrating the new RSS sync web service, then writing a handful of other RSS desktop apps before joining the platform team and working on the lowest levels of the codebase.
With Glassboard I had the honor of doing File > New on the Microsoft Azure platform, architecting the REST API as well as implementing the 2.0 version of the iOS app.
I recount all this not to brag (though its good to remember your accomplishments), but to counter the thought that the “new full-stack developer” is actually new. For myself and many of my friends and co-workers, its been our template for success.
I’d encourage everyone to be a full stack developer. Not to “adapt or die” but instead to “learn and grow”. Your software (and users) will thank you.