The Full-stack Developer Panic

Confession: the term scares me. Personally, it inflicts instant panic.

Let the panic begin

I’m one of those developers who feel that I don’t seem to fit in one category or label. Professionally, I am called a front-end web developer but I can also design templates and posters in Photoshop. I’m a developer who designs and codes. HTML + CSS + Photoshop + WordPress is my area. I can also work with Joomla and had spent almost 4 years with Liferay Portal. These became my specialized set of technologies just because my work required these of me. I stopped trying to figure out the job description ages ago.

These days, it’s not enough. I know this for a fact and feel it heavily now that I have moved to a new country, starting over, and had been looking for work. 5 months and 2 interviews in, I still don’t have a full-time job (hurray for freelancing!). The first interview ended with the employer wanting someone who have more design experience and the more recent one wanted a very technical developer with various programming skills. I’m neither. However, I know I can code well and I can create graphics like this one below –

Panic button

According to an article in Sitepoint – here’s the list of skills a “competitive web developer” needs to have in order to be successful in the present state of the industry –

  • HTML, CSS, Javascript
  • A backend language
  • Version control
  • Command line usage
  • Node/Ruby Tooling
  • Preprocessors
  • Client Side MVC frameworks
  • Popular tools and frameworks like Angular, Laravel, Rails, etc.
  • An understanding of database systems
  • An understanding of server environments
  • Website deployment strategies
  • How to create and use a REST API
  • Responsive web development
  • Accessibility
  • Code testing

Kaboom. For my role as front-end web developer in my previous work, I never really  had to worry about most of the things on this list. I do however, understand how important JavaScript is and I had been pushing myself on that direction with jQuery. I use GIT, I use the command line, I understand Java, PHP, and database though I do not write programs with them, I can modify their code to fit requirements and solve the issue. I understand the concepts of MVC, agile, responsive web design, mobile apps but have no full-on websites as sample works to show, just plugins/pages here and there. I also manage my own websites in my own VPS, use Cpanel and WHM. But as you can see, it’s not enough. There’s Sass, LESS, Grails, Bootstrap, Foundation, Node.js, Angular.js, UI/UX design – and a whole lots to learn. Whew.


The wish list

As an employment counselor once told me, it’s just a wish list really.  It’s a list of things an employer wishes you have but most probably not expect to have all of it. This explanation actually made me feel a bit calmer. I have lost count of how many job postings I have read and the skills now required for my current job title makes me feel really old and obsolete. I’ve had that illogical thought for quite a while now – being obsolete. But I can’t accept that it’s too late for me. When the panic ensues again and I go get my hands on any tutorial and online courses to try to keep up.


“Ah she’s a web developer? I can do that, too. I can just watch videos and I’ll know how to make websites”.  

Full-stack developer – with just one term, I felt alienated from an industry I built my career with almost 7 years experience. Don’t forget that you’re competing with more and more people because everyone can code now (which is very good!) but when you tell me you can learn how to make a website from just watching some videos, hell, I feel you have disrespected and belittled the whole web industry. I sound bitter, like I’m just making excuses now but this is out of frustration to the comment – after all the hours I spent learning, days and nights working, years of different projects. Seasoned developers should get more love regardless of what technologies they have in their stack.


Companies need to let their developers learn new things

Resources are very easily accessible now if you want to learn something. Sure, it’s just online, some websites, some YouTube videos. Everyone who has access to the internet can learn now. Fresh grads have different skill sets that sometimes is in more demand than what seasoned developers have. For example, UI/UX design, we didn’t have that in college. The subject of internet technologies was an elective. We didn’t have HCI. Now, it’s everywhere. It’s in the goddamn stack.

In order for a developer to be more competitive and not be obsolete, companies should support their continued education. The web industry changes so fast. I started making websites when the proper use of CSS was just coming out and I used tables for layouts which is now a big no-no.

Companies should give their developers time during work hours to learn these new important skills. It benefits their developers and their companies more in the long run. I know how hard it is to try to study on your own time, making side projects, while working full-time on different projects with different skills. You will end up sacrificing something like sleep and rest (or sanity) which is never good. You’d rather want to love what you do, not resent it.


Jack of all trades, master of none

I’d like to think that most employers don’t really look for full-stack (with such a big stack) developers and that it’s just a wish list. Else, you’ll miss out on the diamonds on the rough. In the web industry, specialization can sometimes pigeon hole people and not creating enough opportunities for your company’s current talent to expand can be a death sentence. It has to be a balance. It’s possible to learn a decent amount of skills really well (though not really be a perfect expert) and then expand to a few related skills to add on the stack. For most web workers, it boils down to learning curve and opportunity. What we do  is essentially problem solving after all. The broader our abilities and experiences are, the better we can creatively solve the pieces of the puzzle.