There is a common misconception of what a senior developer is. Some may tell you it's the years of experience, others may say it's the "bugfixes pe...
For further actions, you may consider blocking this person and/or reporting abuse
That's excellent.
A company just made me pass a multiple choices quizz on codingame.com and it pisses me off how irrelevant it was. My gut told me "You are measuring the wrong things!! A senior developer is not someone who knows a lot of trivia by heart π¬π¬"
That's so true, don't tell me! I have had the same situation :) tons of tests, not even passing all of them, I have been forced to eat hackerrank for breakfast, lunch and dinner for about 3 months, what a shame people don't understand what a senior level means. Great post, also liked a lot Jean's answer.
Honestly, If I get to the 'Your going to be interviewed by our Sr Dev `{{Insert Name Here}}`. I like to follow up with 'Cool, may I see thier github/gitbucket page?'
After all, I do wanna see whom I'd be working with and what their code is like, just like they are curious about mine.
My wife had to do even worse ridiculousness. She had to submit working programs for a series of programming questions - not just a few lines of code, but full programs.
Not one person interviewing her asked her about her solutions. She asked the last person she interviewed with, and they said they never look at them. WTF is the point of these exercises?
π― agree on mentoring. Enabling others is so important, your team/product may only be as strong as the βweakestβ developer so Senior Devs can use their experience to bring up the skills of everyone else. That then means everyone is making better decisions and writing better code.
I agree as well. A good senior is hoping to develop teammates to become peers to accomplish more interesting tasks together as a team.
They should also be interested in learning new things from anyone, because by default a senior will have more experience and therefore their education was further in the past than a more recent person entering the field. Things change, and keeping up with the changes is what makes a good developer at any level. The people that learn just enough to do their job, are rarely good seniors.
Titles are so subjective.
Even using the measures above, you'd get a lot of grey areas. Non-seniors that have all the qualities & skills of seniors and seniors that are lacking enough qualities & skills to question their level.
Honestly, I feel that what makes someone a senior or not comes down to being given the opportunity as opposed to not.
Also, beware of someone using their title as a reason to "be right". A clear sign of someone "promoted" based on years of experience or past knowledge, rather than skill and aptitude for leading anything.
Sometimes is about searching for the opportunity. If you feel like you are a Senior already, and the company you work for doesn't give you the opportunity to show it, then you always have the option to seek that opportunity elsewhere.
I want to hug you. This is exactly how I see myself as a Sr. App Developer. You don't know how many times I feel this is missed when getting interviews these days. What do I bring to the project? Why ask me to take a coding test? I've done it for 25+ years. Memorizing code means nothing if very little at all to interview for this role.
Though years of working in plenty of companies, interviewing for those companies and being interviewed for dozens more, I am totally sure there is no universal definition of a senior developer.
True, plenty of job postings will define the role as X+ years and knowledge of every tech the team has ever touched.
Some even require a person to be a kind of one-man-army, capable of leading the team, communicate the business requirements between stakeholders and the team, architect the whole distributed system infrastructure and automate deployments.
Few of the companies I have worked with would gladly promote a person with 3+ yrs of experience and a solid skill in the project tech stack to senior. My current company has requirements so high that senior position is easily comparable to lead dev of those others.
I guess the more or less right definition comes from team and company needs at that very same moment a senior developer is needed. Which you never know before that moment has come.
I wish more people mentored. Out of my relativley short career, I know of only 2 people who have actuall been more of a mentor to me. One is now retired the other I no longer work with.
Are there mentors out there still? I feel like I'm missing out.
Yes there are most definitely many of us out there that enjoy mentoring and sharing and challenging our colleagues! But remember mentoring is always a two way thing (you have to genuinely want to learn from someone and maybe even ask them directly)... and itβs often bi-directional meaning you may be the mentor on one topic while learning from others on another.
And finally, even if the mentoring relationship isnβt formal or the other party is a consultant...you may learn a lot from them as they have been around many other industries and environments.
And being argumentative out of ignorance will ensure that no-one is interested in sharing much of anything with you (I keep hoping my current client tech staff may one day learn this) :-)
Excellent article. About that sixth sense: I had a manager press me as to why I had added 30% to an estimate as a contingency. What was it for? I said that I couldn't say what was going to go wrong, but based on the size and scope of the spec, I knew that something would. Of course, then when that something did come up, I had to put on my lawyer's hat and prove that I didn't deliberately cause it or overlook it in my estimate (in that case it was api changes from an ecommerce partner that they didn't feel they had to tell us about.).
ahh! but it is my old enemy broken API contracts.
Ohhh yes. People donβt understand that sixth sense. Itβs also hard to explain. But itβs definitely a thing!
Whilst the above is sometimes true, from 25 years as a developer I've seen that it's most often the case that a 'senior' developer is usually just an older developer.
God, yes!! , often I see many developers say "I am a senior" only because know a lot about a language and they are +40 years old.
I love to mentor people, I always try to do the best communication channel for my team, I try always to share my knowledge. But I can't find a good job because my weakness is the logic problems and solve problems in hackerrank, I am the average developer only for this, is so stressful.
Good to read the post.
I think senior developers have so many roles to do, and people have different expectations in their mind. Sometimes, I feel that when someone says the word 'a senior developer', it can be replaced with a super man. π
Good article, I really like how you broke the list down into easy to digest points. I wrote a similar post where I focused on the business case of a senior individual providing a higher ROI then the cost to bring them in, around impact and positive change.
I touched upon how the as the tech force doubles every 5 years there is more demand then ever for good senior devs to help steer the ship technically for a positive long-term business outcomes. My hypothesis is that I worry that due to the allure of FANNG-type roles and compensation packages there is a trend where smaller companies and start-ups will find it harder to be less accessible to compete for good talent.
A senior developer does have years of experience. Experience is how they get that sixth sense you talk about. Years of making mistakes and learning from them gives you a spider sense about when your approach to a problem solution will cause you to code yourself into a corner, perhaps resulting in performance issues, maintainability issues or say bugs resulting from adopting to quickly immature new technologies with rapidly changing code bases resulting in code which is discarded and rewritten completely shortly afterwards. These kind of pitfalls are traps many inexperienced programmers fall into because they need to learn from failure as well as success. Sometimes success is based on not picking the newest technology, programming language or tools, because the senior developer knows what skills everyone has in general and can gauge the reasonable time needed to meet deadlines and knows when to choose a well traveled path vs. a new and untried one in order to get the project in on time, hence securing future funding. I have found newer programmers will always argue for new technologies without consideration to other factors. This is not to say senior programmers don't embrace new technologies and approaches, only that they know when and when not to. Experience is not a bad word or a bad thing to have. In fact most experienced senior programmers review completed projects to determine how well they went, what they could have done differently or better or not at all. That is how we learn the most from our mistakes! That is how you become a senior developer/programmer with all the qualities listed in this article.
Oh P.S. Something the article seems to gloss over a bit, writes good code documentation. You're not there, where ever you are, to impress everyone with your cryptic code, because you are the only one who can understand it and modify it or for some personal job security. That is NOT how a good senior programmer/developer behaves.
Mentoring and communication need to be 1 and 2 on this list. Maybe even the only things on this list!
If you are "senior member of technical staff" and you are not sharing your knowledge, and documenting how to do things, you don't deserve that title. The number of times I've heard "I'm the senior engineer and we have to do it this way" I can count on one hand, and inevitably those people are idiots/PITAs nobody wants to work with.
I don't give a shit if you have this amazing new hardware/technique/whatever - if you can't or won't explain it to the rest of the team, I don't want to work with you! "Protecting your job" by not providing good mentoring and clear documentation is just a red flag that you don't belong around here.
What's almost as bad is someone who only ever tells you half the answer. How do I fix this? "Oh, just do X." Well, how the fuck do I do X??? A truly senior developer knows enough to give a complete answer, or even better, write up a page on how to do it and keep it up to date! And not only answer the first question, but the 2nd, 3rd and 4th question likely to come up as well.
You're neglecting a key point in Brook's immortal "The Mythical Man-Month": in a sufficiently large team, different roles, personas are warranted and helpful. One of them, per Brooks: "The language lawyers are well-acquainted with the intricacies of the language used. Able to see obscure but efficient ways of solving tricky problems." (nowadays, add libraries and frameworks to just "language" -- Python+Flask vs Python+Django may well require different "language lawyers" as the frameworks are SO deeply different). I just happen to have just the right mindset to be a very senior and impactful "language lawyer" -- on Python and several libraries/frameworks for decades now, as I was with Pascal (mostly Turbo Pascal) in the '80s, C and the Win32 API in the '90s (see aleax.it/TutWin32/ -- alas, it's in Italian only, as I was back in Italy then, though I'm back to the US for 15+ years now:-). Of course, especially as I grew in maturity and experience, I added other in-depth skills, but the "language lawyer" mindset you shrug away has been my core claim to adding value to a team mostly throughout my decades in software (after getting college training, and starting out my career, designing hardware systems and circuits) -- that's why I wrote early editions of "Python Cookbook" and all editions of "Python in a Nutshell", how I won the Frank WIllison memorial award for contributions to Python, how I made "front page" (top 0.01% or less) by reputation as a Stack Overflow contributor (mostly about Python and related matters)... no doubt this quirk of my mind is part of what helped me graduate in electric engineering with a GPA above A+ (though it was HW, I nevertheless "glommed" into the details of whatever specific technology was most relevant to any given course, and aced+ exams focused on it).
Of course there are many other kinds of senior technologists contributing to a sufficiently large team (and if you work in small-enough teams, esp. in startups, this forces you to broaden your "footprint" to help the whole team/firm move forward!)... but "language lawyers", or, to quote you, "People that know everything about a programming language" (and framework, libraries, etc), as I remain at my core, can, in particular, be extremely valuable. "gnΕthi seauton", and, if the shoe fits!, DON'T be worried to wear it:-).
Great summary Marc. It opened my eyes about it. I think that, with time, you get there and you even notice it. Also, make you think what you should expect when you're looking to hire a Senior Developer.
Great post Marc! I was thrown in to a senior position a few months ago straight from a junior position and the imposter syndrome really cranks up when all the responsibility falls to you! I think teaching/ mentoring is the best way to learn things yourself!
Thanks for this! I like how your article didn't just focus on the technical skills, but rather you gave a look into some of the soft skills that should be learned as well. As a newbie self-taught dev this helps me to see what habits I should start forming early. Super insightful read :)
Excellent topic! Being a senior developer is one of my dreams when I start learning programming. Indeed every senior developer should have great problem solving skills.
I think this is the best explanation that I found out until today, even so, I think this is not straight forward. For others, it will be another set of conditions
This is excellent read :D
Ugh, this piece was amazing. Thanks for taking the time to write this, it made my Saturday!
Great article. Hit a point with me and gave my imposter-syndrome a punch in the gut.
Now I actually feel a bit like a "senior" dev.
What did you do instead, how did you do it, and how's it going so far?
So true! Great article!
Thanks for this Marc
Awesome summary! Thanks for for the breakdown/reminders!
People, Problems and Tools.
Great post, thanks for sharing!
Beyond these traits and responsibilities, what is the demand of this position like?
Thank you for writing this.
Ultimately a Senior Developer really is just what the recruiter defines it to be. You may or may not agree with them but that's irrelevant.
Otherwise, I completely agree with your definition π