Author's note: as previously mentioned, I lost my entire blog because I didn't know what the f**k I was doing with databases. With the help of the Internet Wayback Machine, I was able to recover all but two blog posts.
This was one of them and while it didn't receive lots of traffic, those that read it really liked it and I'm very proud of it from a journalistic standpoint. Thankfully, I spent lots of time proofreading it, so I remember enough of it to rewrite it.
Since its publish date, I've talked to more developers, hiring managers and recruiter friends. I'm updating it with this new info and have indicated the updates.
And as a heads-up: it's not the best time for code bootcamp grads looking for high-paying jobs. At least, the time of this re-post. #justsaying-------
Update December 21th, 2018: the Wayback Machine displayed this post in its original format!!! That's what's here now but I kept the updates...ENJOY!!!
After a short bout of unemployment, I got a new front end web developer job this week. I’ll be using my current skills while having the opportunity to learn new ones…REALLY exciting stuff.
I performed a pretty intensive job search to get to this point…more so than ever before. I learned a lot (a whole lot) about finding a web dev gig in 2017 so here are my random notes on the subject with hopes it helps other job seekers.
A preamble...like I start all my posts
For all the nervousness and anxiety that comes with unemployment, I knew I would get a job sooner than later. Regardless of what I do and don’t know as a web dev, I know enough that I wasn’t going to be out of work for too long…only a month in the end.
But I also knew my limited experience with the currently in-demand frameworks and libraries (Angular, React, etc.) meant I would have to work harder than others in getting a job. I’d used them a bit in customer-facing sites and had played with them on my own, but my limited “on-the-job” experience with them was going to be an issue.
Zach Holman’s awesome “Startup Interviewing Is F**cked” article also prepared me for what I was about to face. It points out how startup interviewers sometimes want interviewees to solve programming riddles with specific right answers, and how it can be a poor indicator of if the interviewee can do the job.
I kept all this in mind for each 2017 interview I went on: not just the startup ones. I also drew on past experiences from other jobs and from interviews during the previous year.
Here’s what I learned and I’ll start off positive…
You WILL find a front end web developer job...
If you have front end web development experience, you will get a job. You may encounter some rejections in the process, from jobs you really want and from jobs you thought you were going to get.
But as long as you have verifiable web development experience, you will get a web dev job. End of story.
...But how fast you get one will depend on your library/framework experience
I tweeted this once in 2016:
In 2017, you can start swapping “Angular” out for “React”. And in a few months, you might be able to swap it out for “Vue.”
UPDATE: At the time of this rewrite, React and Angular 2/4/5 are neck-in-neck for the most desirable skillsets. Vue is catching up, but not as fast as I thought it would.
Again, my limited experience with the framework/library stuff meant I had to work harder than other job seekers. I was only jobless for a month but that would have been two weeks if my resumé had more React/Angular/whatever experience.
There’s lots of strife-laden debate in the dev community about frameworks and libraries. How useful they are (or aren’t), how too many are coming out too fast.
But it’s absolutely fair for employers to insist you have specific framework/library experience if you want to work for them. So sorry, but you’ll need to learn some frameworks and libraries if you don’t know them already.
Frameworks solve problems for lots of companies who will spend money to hire (and keep) those that know them. At the time of this post, it’s good to have as much React/Redux and Angular knowledge as possible.
Use your time off to ramp up on those frameworks and libraries
If you have to ramp up on those frameworks and libs, do it while you’re unemployed. On my first jobless day, I spent a few hours at Starbucks going through a ton of React tutorials.
Over the days, I moved onto some Redux tutorials, including those kick-a** free Redux tutorials on Egghead. With that, I felt confident enough to put React on my resumé, which led to more interviews.
UPDATE: The Egghead course is taught by Redux creator Dan Abramov and is worth watching. But if you’re a Redux beginner, I would suggest watching Wes Bos’ free Redux course first. It holds your hand a bit more and also discusses how to use Redux inside React and not just Redux.
You need to know CSS better than you might think
Bootstrap and Foundation let you create responsive layouts fast and efficiently. Some interviewers wanted developers that knew these frameworks, but some wanted devs that could write a responsive layout without them.
Also, large CSS codebases have a reputation for being poorly managed. Developers come and go from a project and create sloppy, under-performant code before they go: quick-fixes using
!important, super-specific selectors, etc.
You need to walk into a web dev position knowing how to deal with and fix many CSS problems. Most interviewers I spoke with expected an understanding of CSS linting techniques and self-documenting CSS design patterns like BEM.
But almost every interviewer I met with wanted developers with CSS preprocessor knowledge…Sass and Less in particular. I’ve heard newbie developers claim they can work without using these: perhaps but not knowing them lessens your job prospects.
Knowing all the above (and more) indicates if a developer can maintain, debug and contribute to a large CSS codebase. Hiring managers want this in prospective hires more than you think.
UPDATE: Newbie developers still tell me that they can do without CSS preprocessors and that I think this attitude weakens their employability. Frankly, this really ticks me off so, I’m going to implement some tough-love here: all developers need CSS preprocessor skills…those without them are significantly less employable.
About those programming riddles...
The Holman article discussed the importance that interviewers place on programming riddles. He said that interviewees getting them right was important at times, but not that much…especially when it was time for the developer to get to work.
He’s right: I once worked with two awesome front end web developers who had to ramp up on Ember. They did this, got good with it over the course of a year, and were still looking for bug solves on Stack Overflow.
They solved those bugs even though they didn’t have the exact answer to an Ember problem stored in their brain. This is because developers are really “engineers” and traditionally, solving problems is part of an engineer’s job description.
Knowing the answers to certain questions does make sense sometimes. Correctly answering lexical scope and
return questions can indicate how good a developer is at fixing AND preventing bugs.
But a developer incorrectly answering a programming problem on the spot doesn’t mean they can’t solve it if they encounter it at work. And any interviewer that thinks otherwise (particularly those at startups) is kidding themselves.
(Side note: I found Jeff Kolesky’s excellent article on job searching after I got my new front end web developer job. It didn’t prep me for my job search but expands on the programming riddle points Zach made in his article. Read it.)
Try to go above and beyond with your answers to those questions
Still, you’re going to have to deal with those questions, just like I had to. A web search will give you a list of the most common web developer interview questions, and their answers.
The most common JS questions I got in interviews were on
this/lexical scope, closures and Promises. But before you search for the perfect answer to a Promises question, ask yourself this:
“I can define Promises, but can I also talk about a time when I used them?”
If yes, do that in the interview.
An interviewer asked me to define a Promise during an interview for a contract job. I did and also recalled how I once used them to solve a problem, making sure to use phrases like “race condition” and “jQuery when/done pattern.”
That answer went above and beyond what I asked and expressed confidence in my skills, which interviewers want to see.
I got the contract.
Coding bootcamps have affected the interview process
Three days before a startup interview, I reviewed the position’s required skillset. It listed a few things I wasn’t that experienced with.
I asked the team if they still wanted to meet me despite this and they said yes. When we met, they admitted to padding the skillset with things not needed for the job.
Why? Because it limited the amount of applications coming from less-experienced coding bootcamp graduates.
I had similar conversations with another interviewer and a recruiter. Based on those conversations, bootcamp grads must know the following:
Many people are graduating from bootcamps like General Assembly in 2017. Then applying for front end web developer jobs with an average $70,000USD salary.
As a result, hiring managers are getting flooded with resumés from people that may be good coders but lack job experience. Which, in turn, has led to a more strenuous web developer hiring process that, on the average, looks like this:
- Employers like applicants with active GitHub profiles.
- Employers regularly want applicants to perform code challenges where the latter must code up a small app within a short time. I once had a challenge that I had to finish within 30 minutes.
- Lots of the CSS coding challenges I went through required creating a responsive site with pure CSS, NOT a framework like Bootstrap.
- Programming riddles with specific right answers suck, but they help experienced devs stand out from bootcamp graduates.
Bootcamp graduates deserve respect for the work they put into become developers and deserve a chance at available jobs. But they need to remember that experienced developers want those jobs as well.
Learn more server-level Node
Any front end web developer job will require using Node-powered tooling on the command line: Grunt, Gulp, etc. But employers increasingly want front end web devs with Node server experience as well.
This is occurring everywhere and not just at startups (like I thought). According to the LinkedIn listings I saw, American Express, A&E and Bank of America want Node server developers as well.
Indeed is the best online job search tool
LinkedIn is a feature-rich social network built around searching for a job. Indeed does one thing and one thing well: it lets you search for jobs.
Indeed has a barebones, Google-like search interface, displays your recent searches on the homepage and has a simple job-applying workflow. I got more face-to-face and phone interviews with it than with any other job searching resource.
Using Dice leads to spam
I applied for one job through Dice…ONE JOB!!! Fifteen minutes later, I started getting slammed with recruiter calls and emails.
If you really need a job and want to use every resource available, you can use Dice. But using it brings on too much aggravation, at least, it did for me.
There’s a saying that “You need to treat finding a job as a job” and I did just that. I went on a job applying spree where at one point, I went on eight interviews in one week: with four on the same day.
I learned a lot about in-demand skill sets, interviewing techniques, job sites and recruiters along the way. It was an informative journey…one that ended in my getting a new front end web developer job.
I hope these notes on the journey let you do the same. Feel free to ask me any questions on this stuff…except for my starting salary. 😁