Web Developer Career Guide
Web Developer Career Guide
By Chris Ferdinandi
v1.0.3
No one ever tells you how to answer the question, “So, what are you
making now?” (Don’t. It’s a trap designed to screw you out of money when
it comes time to negotiate salary.)
We don’t talk about how “fun” workplaces are complete bullshit, stock
options are worse than lottery tickets, or how on earth to have a 5-year
plan in an industry that changes every week.
Some people haven’t responded, but I’ve never had someone say no.
I’ve used some form of this question to chat with the CTO at a $55 billion
tech company I used to work at, as well as some of the big names in web
development and people I looked up to.
It’s such a fantastic way to learn what the day-to-day of a role is actually
like, what sorts of skills you really need to be successful in it, and the
typical path someone might take to get there.
Side benefit: if you decide you might want to do that kind of work at some
point, you now know someone who can tip you off to openings or introduce
you to other people.
I also recommend ending a conversation like that with, “Is there anyone
else you think it might be good for me to talk to to learn more?” Keep the
cycle going.
This approach works remotely, too. Coffee is a nice in-person ice breaker,
but you could chat on Google Hangouts or Skype with people who don’t
live near you.
In our industry, a five year plan makes no sense. Things change far too
quickly. And in all likelihood, your interests will, too.
Dig deep. Learn as much as you can. See where it takes you.
And perhaps most importantly, don’t be afraid to quit quickly. Not your
job, per se, but the thing you thought you wanted to do next. Throw
yourself into it for a month, and if you don’t enjoy it, move on.
It’s driven in part by a feeling that, as an expert, you should know at least
a little about everything. There’s also a fear of missing out (sometimes
called FOMO)—this fear that everyone will embrace a new thing and you
won’t and suddenly you’ll be the dinosaur still using tables to design
website layouts.
This is 100% normal, and you’re not alone. Everyone goes through this.
But I wasn’t told what I should focus on, or what I should learn next.
No one knows what you want for your career other than you. Make sure
you’re taking charge of your own learning and development. Fortunately,
there are so many ways to do that as a web developer.
Be a fast follower.
Don’t be the first to learn every new technology. Don’t jump on every
bandwagon. You’ll go insane trying to keep up.
Be a fast follower.
Wait until something shows clear signs of sticking around, and then learn
it—if you’re interested.
The thing is, plenty of companies still use vanilla CSS. Many invested in
Grunt workflows, and aren’t going to replace them just because they’re
not stylish anymore. WordPress powers over a quarter of the web (and
growing).
Don’t feel like you always have to chase the latest thing. You can be
happily employed working on more mundane technology stacks.
Pay attention to the big shifts in the
industry.
Long after responsive web design was considered a best practice, I would
still run into more seasoned developers who’d heard of it but weren’t
really sure how it worked.
This is a really easy trap to fall into when you work as an in-house
developer—especially at a larger organization. You may have a relatively
stable technology stack, a pretty successful site, or even just a lot of
organizational inertia and a culture that doesn’t foster innovation.
Be aware of big shifts in the industry and how they affect the work you do
and the problems you solve.
You don’t want to be the one designing layouts in tables when everyone
else has moved on to responsive grids and flexbox. That’s a great way to
make yourself obsolete.
You can also do a search for openings for jobs you may want in the future,
and dig through the job description to find out what kinds of skills and
experience they’re looking for.
Open source
I decided I was going to figure out how to write a simple accordion script
using vanilla JS instead of jQuery.
I Googled. A lot. I tried things. Some worked. Some didn’t. Some worked
in unexpected ways.
In retrospect, I would have publicly asked for a code review way sooner.
My point is, you can work on something slowly over time, put it out there,
and let the community help you learn. This willingness to teach each
other is, in my opinion, one of the best things about our industry.
Online learning
There are also a lot of very talented people sharing great tutorials on their
own websites.
Most of the lessons are short. Spend 15 minutes a day, and after a month,
you’ll have a really solid foundation you can build on.
I’ve found the thing that often separates junior and senior developers is
not their technology skills, but their communication skills. Being able to
clearly document code and explain to others how and why something
works is a critical skill if you want to move into a more senior role.
Here’s a short list of things you can do to build your communication skills:
A wonderful side benefit of doing these things is that you can add them to
your resume and portfolio. They also make your current employer look
good, so they’re likely to be supportive as well.
They’re also a fantastic way to network. I struggle with this a bit. I’m a
social introvert. I like talking, but I find large groups overwhelming. I
really have to force myself to jump into conversations at conferences. But
it’s totally worth it. I actually landed a job that way, once.
On the other hand, conferences are expensive. And after a while, they can
start to all feel the same.
If you can convince your manager to pay for you to attend, I’d recommend
going to one. But if not, don’t feel like you’re missing out too much.
Pro tip: if your manager won’t pay for you to go, you can also apply to be a
speaker or volunteer in exchange for a free ticket.
How to find open roles
There are three ways you can find open roles:
It can totally work. I got a job at $55 billion tech company doing that, and
it eventually kicked-started my web developer career. But it’s really hard
to do (for reasons I’ll cover in a later chapter).
Sometimes a company will hire several recruiting agencies for the same
role. You might get emails about the same opening from two different
recruiting firms (or from two recruiters at the same firm—awkward).
Because of this competition, they typically won’t tell you who they’re
recruiting for. They’re afraid you’ll just go directly to the company and cut
them out of a commission, but it means you have no way to properly
evaluate the role.
As a rule, I refuse to work with recruiters who won’t disclose the name of
the company. Many will try to get you on a phone call before they’ll tell
you. It’s up to you how difficult you want to be, but I insist on a company
name before I’ll even jump on a call.
None of this means you should never work with recruiters who contact
you. But be aware of how they work, how they get paid, and the limits of
what they know.
They may seem like a golden ticket, but typically are not.
Network.
This is how I’ve landed every job I’ve ever had, with one exception.
Networking is the best way to find a job, for two reasons.
Networking helps you find out about these roles sooner and get in before
the door closes.
It works when looking for a job, too—even if you already know what the
role entails and have the skills to do it.
It’s just so much easier for someone to say “yes” to than, “I’m looking for
a new job. Can I chat with you about openings at your company?”
It’s like a magic question that gets people to open up and let their guard
down.
The one difference with this approach when you’re actively looking for
work: ask if they known of any open roles that might be a good fit for you.
If you’ve never done this before, it’s amazing how willing people will be to
help you out.
It can be a slow process, which is why it’s good to start now and not when
you’re actually looking for a job.
But it works! I’ve landed jobs through old coworkers, someone I met at a
conference, and by using coffee conversations to talk to friends of friends
of friends until I eventually found someone who was hiring.
Your online portfolio sucks
(and how to fix it)
Most web designer and front-end developer portfolios are pretty basic:
What potential employers really want to know is how you added value for
the client. Pretty pictures of your work don’t tell them that.
What did you do, why did you do it, and what was the outcome? You should
also get quotes from happy clients and include them if you can.
Here’s the beginning of a case study I wrote for PAWS New England, a
client of mine:6
PAWS does amazing things, but their website and social media
accounts were not. I partnered with them to redesign their entire
digital communication strategy, with powerful results.
The Highlights:
“What you’ve done for PAWS… the word ‘life changing’ comes to
mind.” - Kelly Parker, PAWS New England Cofounder
Why job hunting sucks so bad
Before the internet, if you wanted to apply for a job you had to browse
through job listing in the local paper and physically mail in your resume. It
was time-consuming and friction-filled, and as a result, companies
received a pretty manageable amount of applicants for jobs.
The web makes it insanely easy to find and apply for jobs. You can search
by keyword for jobs anywhere in the world, and then apply with just a few
clicks.
You could easily find the perfect job, and employers could access a larger
pool of applicants more easily.
People were desperate for work. Many weren’t really qualified for the roles
they were applying for. But the process is so frictionless, they sent their
resumes in anyway.
If the ATS doesn’t think you’re a close enough match, your resume never
gets seen by a real person.
One study found that your resume will only get looked at for six seconds.7
Here’s the good news: now that you know how this process works, you can
design for it.
In the following chapter, I’m going to teach you how to create a resume
that’s more likely to make it past the ATS, and more likely to break past
the six second mark.
Your resume sucks (and how
to fix it)
There’s a good chance that you have an “Objective” section up at the top
of your resume. It probably says something like this:
What you’re really saying it, “I’m looking for whatever job you have
available.”
It’s the same thing that everyone else puts on their resume, it’s the first
thing that the recruiter sees, and it tells them nothing about why they
should keep reading.
Ideally, it’s one or two sentences followed by a short bulleted list of skills.
Here’s an example:
A front-end developer specializing in responsive web design. Skills
and experience include:
Mobile-First RWD
HTML and CSS
Native JavaScript and jQuery
QUnit and Jasmine
Sass & SCSS
Gulp, Git, and Travis CI
Web Performance
WordPress and PHP
(Unless you have a PhD in Computer Science. Then they probably do. But you
should still put your education at the end.)
What you know is important, but what you’ve done with what you know
matters so much more. You want to get to your experience as quickly as
possible.
Focus on outcomes, not responsibilities.
It’s pretty common to see things like this under job experience on a
resume:
So what? Everyone else who applied for this role has done those things,
too.
Tasks make you an expense. Outcomes make you an asset that adds
value to the organization.
You want to show the recruiter why those things matter by talking about
the value you created for the client or the organization that you were
working for. Here are some examples:
One easy way to remember this: every time you add an experience to your
resume, imagine a little bird sitting on your shoulder asking, “So what?”
For each project or role on your resume, you’ll end up with a bulleted list
of experiences and their outcomes. Above the list, add a short one or two
sentence summary of your work. Here’s an example:
As a result, they’ll often just pull the keywords they use directly out of the
job description. Many times they won’t use synonyms or alternative words
with similar meaning, simply because they don’t know any better.
When describing your experiences, pull your language directly from the
job description. Don’t get creative.
And not:
Don’t assume “mobile-first RWD” will match or that the recruiter will
know that they’re the same.
A caveat: I’m sure this goes without saying, but only list experiences if you
actually have them. You might trick the ATS, but eventually the recruiter or
hiring manager will figure out that you don’t have the experiences you said
you did. Recruiters talk. They’ll tell others about you.
Remember, the goal of this section is to get the recruiter to read your
resume for more than six seconds. You want to make as many direct links
to the role they’re hiring for as possible.
Keep it short.
You may have heard that resumes should always be one page. That’s
wrong.
For someone straight out of college, maybe, but if you have any amount of
experience, it’s ok to go on to a second page. You don’t have to fill up the
entire second page either. It’s far more important that you showcase your
experiences and how they match the role.
I’ve seen resumes that were (no lie) 12 pages long. These were very
experienced engineers.
So this:
In this chapter, I’ll show you how to do a better job with both of these.
The best way to answer all three of these types of questions is with the
STAR Method.
The STAR Method
The STAR Method is an acronym:
Situation
Task
Action
Result
Use this format even for Yes/No questions. It allows the interviewer to
learn more about how you work and solve problems, and demonstrates
your ability to add value.
A common answer:
I’m from Ohio but I went to school in Boston. I graduated with a
degree in communications, and have been working at Animal
Rescue Organization as a web developer.
A common answer:
Yes.
A better answer:
Yes. In my role as a front-end developer at Animal Rescue
Organization, I used Sass as part of our mobile-friendly website
redesign project.
Again, you can see you’re identifying a situation or task, talking about the
actions you took, and identifying the results.
This is a great response if you have the experience they’re asking about,
but what if the answer is “no?” In that case, you want to answer honestly
and then talk about another situation in which you quickly learned a new
skill.
Technical interviews
For web developer roles, there’s a fourth type of interview question you’re
likely to encounter: the technical interview.
If you’re a good test taker, you may actually do quite well at these. But I’m
not. And they bother me, because they’re not at all what coding in real life
looks like.
My code doesn’t always run right the first time. I check it in a real
browser, inspect things in developer tools, and use Google to figure out
something I’m stuck on.
1. You say “ok” and go to the interview. If you’re good at taking tests or
working under pressure, this may work out just fine for you.
2. You politely ask if they would be willing to give you a coding
assignment instead. Explain that you know you’ve got the skills to do
the job, but that technical interviews don’t best allow you to show off
your talent, and ask if they can give you a mini project to work on
instead. I’ve never had the guts to try this.
3. Decline the interview.
These days, I would probably go for option 2, and if that doesn’t work out,
3. However, early in your career, you may have to suffer through some
technical interviews (or totally nail them) to get the job you want.
1. Study your own resume. You want to know your own background
(and outcomes) inside and out. I find myself referring back to two or
three examples that best highlight the value I add over and over
again.
2. Research the organization. Make sure you know their products or
services, how they make money, and any big accomplishments
they’ve had recently.
3. Take notes. You’ll appear more interested and engaged. But don’t
take so many that you stop paying attention to the interviewer. I use
notes in two ways:
4. Practice. It’s super awkward, but get a friend to ask you common
interview questions and practice answering them with the STAR
Method. You want to have this down cold when you go in for an actual
interview.
Remember, interviewers aren’t just looking to make sure that you have the
right technical skills. They want to make sure they’ll be comfortable
working with you every day.
One thing I learned is that when two chimps greet each other and one
makes a facial expression, the other will involuntarily mimick that
expression.
The reason is because facial expressions and other body language don’t
just communicate your mood. They influence it.
This happens in humans, too.
There’s a good chance they’ll involuntarily smile back at you. When they
do, they’ll feel a bit happier. This allows chimps (and humans) to
communicate moods and emotions without words.
Cell phones have a slight lag from when a person speaks to when you can
hear them. This is intensified when the person you’re speaking to is also
on a cellphone.
Otherwise, you may think the interviewer is done asking their question
and begin talking, and end up accidentally speaking over them. You may
not even realize it, but they’ll think you’re rude or just generally unaware
of others.
How to get paid what you
deserve
One area of the recruiting process that can be a real mystery is how to
negotiate salary.
What if you ask for too much and they decline? What if you ask for too
little and screw yourself out of money? How do you know what a
reasonable salary is for the role?
Fortunately, there are two tools you can use to get a ballpark:
At Glassdoor, you just enter the job title and location and it will provide
you with a salary range. At Indeed, you can search for roles by location.
Many list a salary range that you can use as a baseline.
1. Fixed
2. Variable
Perks
Companies will often offer perks to offset the salary they offer you. Some
are better than others.
Good
Bad
Stock options, which are like lottery tickets that you have to work
harder for.
“A fun work place,” which is often used to make you work harder and
longer for less money.
For example, San Francisco has the highest cost of living (and salaries) in
the US, followed closely by New York City. If you worked in Vermont or
Oklahoma, which have a low cost of living, you could negotiate a salary
that’s cheaper than what they might pay local developers, but higher than
what you’d make where you live.
You’ll probably have to travel a few times a year, but working from home
and making more money are a pretty sweet trade-off for a few weeks of
travel.
So how do you ask? Just tell them what you want to make, calmly and
confidently.
I’m looking to make $65,000.
You want to be confident when you say it. It should sound so second
nature that you’ve never doubted it or considered that it could be too
high.
You should be comfortable asking for money. After all, it’s why you work,
and your employer would have no problem paying you less if you let them.
Sometimes, they’ll come back right away with exactly what you asked for.
That likely means that the amount you asked for was too low, but you
can’t up your salary requirement at this point. Still, you got the offer, and
for the amount you wanted. Congrats!
Always counter offer, but your personal situation will dictate by how
much.
For example, if you think the role would be a huge boost to your career, or
their health care package is really good, it might make sense to
compromise a bit. If you asked for $65,000, and they offered you $60,000,
you might say:
There may also be a perk you care about more than money, like paid
travel to a conference, or an extra week of vacation.
It’s likely that they’re telling you the truth. If you’ve done your homework
and know that what you’re asking for is a fair price, the economics
probably just don’t work for their business.
Always be polite. Just because they’re not hiring you now doesn’t mean
you won’t cross paths again in the future.
Never, ever, ever answer this question. It’s a trap13 designed to screw you
out of money.
What you make today should never be a basis for what you’re paid at your
next job. Your pay should be based on what others in similar roles in
similar locations are paid, and on the value that you add to the company.
I’ve never had a recruiter repeat the question after that response, though
it could happen. I’d just repeat my answer.
What now?
If you remember nothing else from this book, I hope you’ll remember
these three key takeaways:
1. Talk to lots of people. “Can I learn more about what you do over
coffee, my treat?”
2. Never stop learning. Pick one thing to learn, dive deep, and quit
quickly.
3. Focus on solving problems. Tasks make you an expense. Outcomes
make you an asset that adds value to the organization.
If you have any questions or feedback, or just want to say hi, email me at
[email protected].
About the Author
Hi, I’m Chris Ferdinandi. I help web developers have kick-ass careers.
I love pirates, puppies, and Pixar movies, and live near horse farms in rural
Massachusetts. I run Go Make Things with Bailey Puppy, a lab-mix from
Tennessee.
On my website at GoMakeThings.com.
By email at [email protected].
On Twitter at @ChrisFerdinandi.
1. https://toddmotto.com↩
2. https://teamtreehouse.com↩
3. https://www.codeschool.com↩
4. You https://www.codecademy.com↩
5. https://www.meetup.com↩
6. https://gomakethings.com/projects/paws-new-england/↩
7. http://cdn.theladders.net/static/images/basicSite/pdfs/TheLadders-
EyeTracking-StudyC2.pdf↩
8. https://medium.com/ikeellis/i-will-not-do-your-tech-interview-
80ba19c55883↩
9. http://davemart.in/remote-hiring/↩
10. https://www.glassdoor.com/Salaries/index.htm↩
11. http://www.indeed.com↩
12. https://weworkremotely.com↩
13. http://i.giphy.com/3ornka9rAaKRA2Rkac.gif↩