What is your definition of a full-stack developer?

Funny you should ask – I’m known for having a strong distaste for the “full-stack developer” moniker, and I’ve started many a friendly debate on the subject.

Preface

I was recently asked a series of questions and decided to create blog posts from the answers. 

Everything herein came straight from this horse’s mouth. I didn’t once flex my Google-fu or Bing-kwondo except to determine the best way to spell Bing-kwondo. My goal was to respond to the proposed questions solely with the knowledge I’ve gained from experience over the years. When reading my response, please remember – with passion comes opinion. I value your opinion, even if it is different from mine, as difference breeds understanding and growth.

“Full-stack developer”

I put “full-stack developer” on my resume partially because I do believe I fit someone’s definition of the term, but mostly because I’m afraid “ludicrous-stack developer” won’t appear in search results.

It’s marketing fluff, at best.

If you put a gun to my head, I’ll concede some validity to the title. Developers needed a succinct way to characterize the breadth of their capabilities, and “full-stack” became the hammer.

The problem, of course, is that there is no concrete definition.

I’d describe a full-stack developer as one with the proven ability to fully execute a project from start to finish, specifically including the following tasks (<assessment>/<excitement level> on a 1-10 scale based on the types of projects I’ve worked on in the past):

  • Brainstorming (9/10)
  • Requirements gathering (8/10)
  • Architecture (8/10)
  • Dev Ops (also up for discussion) (8/10)
  • Database design (7/9)
  • Graphic design (7/5)
  • UX (8/9)
  • UI (7/7)
  • Maintenance/support (8/2)
  • Infrastructure (9/10)
  • QA (10/6)
  • The ability to lead a team in the process (8/9)
  • Front end coding (8/9)
  • Back-end coding (9/9)
  • Sales? (1/1)

So why is that my definition of “full-stack”? Because I consider myself to be a software developer, and I’ve performed all of those roles.

I realize that’s a massive skill set, going far beyond what might traditionally be considered a software developer. Most days are spent wearing just one or two hats, but the spirit of “full-stack” is in having the experience of wearing them all.