Here at Top Draw, we have a fairly large development team for a boutique Web shop, consisting of four senior, one intermediate, and one junior developer. In the past year we’ve doubled our development team and I found the hardest position to fill was that of a senior Web developer. I’ve sat in on a lot of second-level interviews and met a lot of interesting people, but there have been few good fits for what we look for in a senior Web developer.
There is a lot of debate on the Internet and within the industry about what, exactly, makes a Web developer a senior Web developer. ‘Exactly’ is the problem; in my opinion there is nothing exact about the definition.
‘Senior’ implies ‘seniority’, and while years in the industry are a factor for determining if someone is a senior Web developer, it is only one of many factors which I like to summarize as: Experience, Leadership, and Mentoring.
If you Google how many years someone needs to have under their belt to be considered a senior Web developer, you’ll find yourself in the midst of a hot debate. Some people think you need 5-10 years in the industry and some think it depends on how much you’ve done regardless of the years. I tend to look at the number of years in the industry and at what a person has done to get the complete picture, but I’ll tell you this; three years in the industry is likely not enough to be considered a senior Web developer, but ten years is not a guarantee.
I like to think ‘years in the industry’ is shorthand for a more complex criteria that includes:
Breadth and depth of experience
Problem solving skills
Failure and success
Being a senior Web developer is about more than just your years in a desk and what code you know. There are also soft skills that a senior Web developer gains through experience.
Experience – Breadth and Depth
When we talk about Web developer experience there are two dimensions we’re talking about: breadth and depth.
Breadth refers to having knowledge of and experience with a wide variety of Web development tools, languages, and solutions. It may include experience launching sites to different server environments, knowing enough about programming to pick up a bit of Python to troubleshoot that third-party application you had to use two years ago, having used CSS from the first implementation through to SASS and LESS, or even just knowledge of both backend and frontend development.
You don’t need to be an expert, or even intermediate, in everything; you just need to know it exists. Or you’ve used it, and you know it’s available to you when you’re looking for a solution.
Depth means you’ve got intermediate to expert knowledge of a single language or tool or area of Web development. Every senior Web dev should have one or two areas where their knowledge goes deep.
Some people specialize and only work with one aspect of Web development, and there is nothing wrong with that, but in my mind that means they aren’t a senior Web developer, they are a senior PHP developer or a senior Ruby developer or a senior backend developer. To my mind, a senior Web developer is someone who can do more than just one aspect of Web development. For example, a developer may be expert in PHP but you should also have skills in some frontend languages, too!
Experience – Problem Solving
The single most important skill a senior Web developer can have is the ability to solve problems. You are the resource other people use and you should have a solid understanding of how to research, learn, and apply what you have learned to a solution. You should be able to communicate your solution to stakeholders and project managers (in non-tech speak) and to your team (possibly even training them) so they can implement the solution
Even if you have specialized in a certain language or stack, you should be willing to look outside of your comfort zone for the best solution. A senior Web developer cannot afford their skill-set to become stagnant. The Web industry is ever-changing and you need to be flexible to accommodate those changes!
Some problem solving skills go beyond language and syntax. They are soft skills a senior Web developer pick up over years of project experience, working with other people, wrestling with requirements, and breaking things. Problems could be interpersonal conflict, servers dying, last minute changes to requirements, or even trying to do something that hasn’t been attempted before! This is the sort of experience that ‘years in industry’ represents and is something that only comes about after having worked on many projects.
Experience – Failure and Success
“It’s fine to celebrate success but it is more important to heed the lessons of failure.”
– Bill Gates
When I interview someone for a position I like to hear about their failures. “Tell me about a time you had a project die. Fizzle out. Fail to launch. What do you think contributed to that failure? What did you take away from that failure?” Yes, it’s a clichéd line of questioning but the answers can reveal a lot about a developer.
A good senior Web developer knows that a project failing doesn’t make them a failure. They analyze what went wrong and tweak what they do to minimize the risk of future failure.
I find it hard to believe a senior Web developer when they tell me they’ve never had a project fail. Never having a project fail makes me think the following:
They may not have been in the industry long enough to be considered senior
They may not take risks and push their boundaries. Complacency and apathy are the enemies of a good Web developer
They may be covering up or lying because they don’t understand that a failed project isn’t a black mark against them
They may have just been very lucky! Or they’re just that good, but that is rarely the case
Negative experiences and failures are what test and temper a senior Web developer, but too many of them without a marked improvement might be indicative of a larger problem.
What about successes? What about positive experiences? Yes, I want to hear about the successes, but what I really want to hear is what obstacles were overcome to make the project successful. The struggle to succeed is what reveals the most about a Web developer’s capabilities.
A senior Web developer should be able to either manage and inspire a team or blaze a trail for others to follow.
These days, it isn’t hard to gain leadership experience. Web development is very team-oriented, even if you’re a freelancer. I believe it’s become more team-oriented because it’s getting harder and harder to be excellent in more than one, or two, of the primary pillars of Website creation: Design, Development, Content, Strategy, and SEO.In the olden days (ie. the 90s), it was possible to be pretty darn good at several pillars. SEO was in its infancy, design wasn’t terribly sophisticated, mobile devices were just used to make telephone calls and text, and your content and strategy didn’t matter as much then as it does now.A freelance developer might team up with or subcontract a designer, a Web shop might have teams of three to six people working on a project (including a designer, project manager, and account manager), or perhaps a project requires a whole team of developers to make it happen (both paid and open-source projects). Stepping into a leadership role in any of those situations is something a senior Web developer needs to be ready to do.Even if a developer hasn’t had an opportunity to lead or work with a team they can be a trailblazer for their industry.
Leadership – Teams
There are many essays and books written about team management and leadership so I’m not going to go into it with any real depth here. Suffice it to say, a senior Web developer can lead a team, work well in a team in a non-leadership role, and should know how to help a team achieve success.
A good senior Web developer makes the effort to know their team and their capabilities. They should know their teams strengths, weaknesses, and social dynamics. They should lead by example, inspire their team, and still be part of the team not apart from it.
Leadership – Trailblazer
Being a trailblazer is another, important, type of leadership. A trailblazer is someone who explores the unknown and sets the path for others to follow.
Part of being a senior Web developer is keeping on top of current trends and deciding which ones to follow. A trailblazer is unafraid to try new things and to judge whether or not that new thing can be implemented by their team.
Developing new solutions, contributing to the open-source community, beta testing, and being an early adopter are all ways a Web developer can be a trailblazer.
However, a senior Web developer doesn’t just use and take, a senior Web developer should also give back.
Sharing what you know, and nurturing those around you, is a big part of stepping into the role of a senior Web developer. Mentoring your coworkers and others in the community increases the depth of your knowledge, gives you authority, and helps to foster good developers.
Mentoring – Coworkers
Mentoring your coworkers is part of building a strong, functioning team. Knowledge isn’t something that should be hoarded, the industry has moved beyond the miserly acquisition of knowledge and so should a senior Web developer.
There is no golden book of secrets or special tool or magical work-flow that will make you the best of the best. There are so many aspects to Web development these days that I challenge any one person to be the best of the best at everything!
Ways you can mentor in a team includes one-on-one teaching, developing documentation, and leading by example. The work a senior Web developer does and the attitude they adopt should serve as an example to their team and encourage good coding practices, professional and personal responsibility, and teamwork.
Mentoring – Community
I like to see senior Web developers mentoring in the community! It really speaks of dedication to me, that Web development isn’t just a job, it’s a career or a passion.
If you’re comfortable speaking in front of people look into local meetups, camps, hackathons, teaching night classes, or getting involved with an organization such as Ladies Learning Code.I have found that speaking at events and teaching has helped me gain a depth of understanding about the topics I’m working with. It’s hard to teach something if you don’t understand it inside out and backwards and being forced to create a presentation or a curriculum gives you an excuse and opportunity to do so that you might not otherwise get during the course of your work week.Not everybody is comfortable teaching classes or speaking in front of others but that’s okay! You can mentor in the development community by answering questions on Web sites such as stackoverflow.com, offering feedback on GitHub projects, and offering to do code reviews. Writing instructional blog posts helps spread your knowledge and contributions to the community as a whole.
To sum it all up, the criteria for senior Web developer varies depending on who is being asked, but here at Top Draw, what we look for is someone who has experience, leadership skills, and a willingness to share their knowledge.