Before we start - I'm working on https://cloudash.dev, a brand new way of monitoring serverless apps 🚀. Check it our if you're tired of switching between 50 CloudWatch tabs when debugging a production incident.
Disclaimer: this whole article is my personal opinion, your mileage may vary.
Defining roles is tricky.
After all, assigning a junior/regular/senior level to somebody is a bit like trying to compose the entirety of their skills in a single 'label'.
I'm interviewing quite a lot of folks for frontend engineering roles at OLX Group and one of the questions I quite often ask (spoiler alert!) is:
"In your opinion, what is a difference between a senior and a regular developer?"
Note: I'm not a fan of the 'regular' developer label, maybe I should use mid-level but that's also weird so let me stick with 'regular'
There is no right answer to this question. And I don't expect every answer to be the same. Personally, I consider it to be an invitation to talk about the broader scope of what we do as developers.
I also honestly want to learn other perspectives.
Is it our job to just write code? Or is it writing tests? Or shipping to prod? Mentoring others? Writing documentation? Are we human? 🎵Or are we dancer?🎵
Harder, Better, Faster, Stronger
When I started my career as a developer I remember being incredibly impressed by senior engineers in the company I worked for. They seemed indestructible to me, I felt you could throw any problem at them and they would solve it.
And yes, as a senior developer you should be able to solve a wide range of problems related to your field of expertise.
But seniors are not machines.
Nor should they be - seniority is not a matter of "this person can implement 30 redux actions per hour". I'm sure there are companies where being a better, faster, bug-free (lol) developer will get you promoted but I honestly believe that there's so much more to this whole Seniority thing. It's not the "what?", it's the "how?" and more important - "why"? that matters.
There are entire books written on making technical decisions. It's an incredibly complicated field and there are multiple factors to consider. The best approach is having multiple options so there's something to reject. Instead of usual:
"I've been doing it this way for the last 20 years so we'll continue doing that because I don't know anything else and I'm frankly a bit scared to learn anything new".
All of that is incredibly important, but here's the thing.
What I do believe is that senior developers are meant to have an impact on their organisation. Which means - it's not only about translating JIRA to code anymore.
Thinking outside of VSCode box
Allow me to quote someone really smart to kickstart this section:
Your goal is to solve problems with code.
If you have a deep understanding of the system you're building/maintaining then you can make decisions outside of pure tech. Is this feature even necessary? What problem does it solve? Can we solve this problem any other way? Do we want to solve this problem in the first place?
This line of thinking is sometimes referred to as business context, but if you want to do your job well, you should not only understand the context, but to be able to shape and influence that. You don't have to have a C-level position in your organisation to influence your product. Or at least - to understand it.
It's not only about the code that you do write. The code that you don't end up writing can be equally as important. Senior developers are able to think outside of the code layer, to look at their product from a wider perspective and consider whether their next line of code will contribute to team's goals.
To give you an example:
You could spend a sprint implementing two different versions of a certain piece of the UI with redux-helicopter according to the spec and then enable an A/B test to verify that. That's a great approach.
Although you may consider that (for example) 20% of your users are responsible for 80% of your sales. Why not send them an email? Ask them about their opinion? Or straight up call them?
Of course, this is just a silly example but it illustrates a point - thinking problem-first rather than code-first. Most problems can be solved in multiple ways and senior engineers are able to think outside of the Visual Studio box.
Being there for others
You know the feeling how you know exactly what the feature is all about so you can put on your headphones and code the day away? It's awesome, isn't it?
It is - unless you consider that folks around you may be less certain of their work. Seniors are meant to guide other, less-experienced devs along their journey. I've personally met too many devs with quite a lot of experience who clearly forgotten what it was like when things were incredibly confusing all the time.
What's important to remember here is that not everyone is suited for 1on1 face-to-face mentoring and that's okay. You can have others achieve their goals by meaningful code reviews, making sure that READMEs make sense, contributing to documentation and architecture decisions (which, ideally, should be well documented). In short, by being a +10% engineer
Seniors have a lot of experience and it's absolutely unfair to keep it all for themselves. What I do personally consider to be a decent chunk of that position is facilitating a knowledge sharing culture.
Blogging, presentations, documentation, pasting links on Slack - you name it. It's tragic to see two different teams in the same company solving the same problems twice - senior devs are meant to ensure that it doesn't happen.
Sounds neat, how do I get promoted to a senior role?
Start by promoting yourself first.
Seriously, the best way to get promoted to a senior role is doing the work before you're officially a senior.
Embrace a wider perspective of your code and how it's related to the entire system. Get involved in monitoring, maybe there are some opportunities for optimization? Run a performance audit of your app (before someone tells you to), make an impact by cutting your homepage by 10%. Start helping others (they'll appreciate that). Either kickstart a knowledge sharing culture in your organization or become an active contributor to those initiatives. Volunteer for projects and tasks outside of your comfort zone.
And best of all - good luck!
What do you think? If you'd like to chat, feel free to reach out me on Twitter, my handle is @tlakomy
Top comments (32)
Yep, the question of what makes a Senior developer always comes down to one thing. Can you make the people around you better! If you are doing that within your organization you are doing something right :)
In 25 years of experience at many companies, Senior Developer essentially boils down to OLDER developer
Older than someone fresh out of college, sure. I'm not sure I necessarily agree with the older you get, the better you are, though.
Yes - at the company I work for, most of the senior level developers are ones who have been in the industry for many years, but that doesn't necessarily mean they have senior-level skills. The reason they get to this level isn't because they've been programming since FORTRAN was the best thing around and they have all the knowledge in the world, it's because their employer felt it was necessary to promote them in order to keep them happy, because it's more expensive to lose and train a new employee than it is to keep him or her.
There's a reason why a lot of developers who have been at larger tech companies for years never make it past L4, because they simply never develop skills that the company feels makes them perform at that more senior level.
Yeaaaa - promotion to 'senior' to make sure they don't leave, or because they've been around too long. This is very dangerous, as it makes them feel like they know what they're doing when they don't.
Main reason I left my previous role is because of that. My boss hold promoting me for various reasons which none made any sense to me. He talked about age, being recently graduated and other non-sense stuff. I interviewed and got a job as senior developer in a larger company, then he was like this is my new offer and your role is senior.
At some points, we need to be promoted and it even made sense to him but he stopped me achieving what I needed to advance my career.
... or one who's changed jobs more often!
Very true. I'd even argue that the code you don't write is more important. That is code that you don't have to spend time on, that you don't have to maintain, and that isn't adding noise to your system. There's something soul-destroying about spending days/weeks/months on a feature, only to find out that no one really cared in the first place. Perhaps a senior developer is just someone who's experienced that enough times.
I do really enjoy reading your post! I ask your permission for borrowing this amazing statement “ What I do believe is that senior developers are meant to have an impact on their organization.“ I would say not only your organization but also having an impact on the product they are building
All my posts are 100% open source - feel free to borrow whatever you’d like! 🥳
Great article.
I think one important aspect of a -true- Senior Developer is their ability to choose the correct tool/framework/library for the task to be done. And this knowledge usually comes from previous projects their worked on, so experience is important.
There are a lot of awesome tools, but the true is that nothing works for every case. Knowing what to choose is something that adds a lot of value and prevents spending unnecessary time.
Being able to think of problems and solutions from the business context, away from the code layer, is what makes a developer senior.
And then, it's also important for senior Devs to maintain empathy towards lower level developers. I was frustrated by a team lead, that was a senior developer cos he understood business requirements way more than I did, and was impatient to put me through 🤦🏽♂️
So, the cover image. Mate - Senior Developers tend to understand what's offensive and what's not. Not all the time. But in some cases - like this case... they would probably rethink the cover image.
Hey!
I didn’t mean to cause harm and I apologize - I’ll remove the cover image
It might be cultural differences (I’m Polish) but I personally do not find it offensive. I’d appreciate if you could elaborate via a DM or something
Yeah I can appreciate that :). I think, as a general rule, using images of a group of people to underscore an idea is almost always not a good thing. Culturally speaking I've completely screwed this up! If we ever meet in person I'll share a story about a slide I showed in Norway that went really wrong.
Funny enough, I ALSO discovered that Hitler downfall meme humour does not carry over from America to Germany during a presentation. I think if we're going to be public intellectuals, taking care of what our messaging implies and having the humility to admit we're wrong is a good way to take ownership for our actions.
Also, having the sensitivity think from different points of view never hurts and it's great that you did the work of explaining.
In any case - I’ve just removed it, it’ll probably take a while to update
One snowflake complains and you immediately bow and remove the picture..?
I'm offended by this.
I didn’t bow because I was laying in my bed and it’s kinda difficult to that.
One of the messages I wanted this post to communicate is “Think of others and be excellent to each other”
If my choice of the cover image was polluting this message and could be considered offensive I’m fine with changing it. This is not a hill I’m willing to die on
Gotcha. It's fine if you don't want to back_pedal_ on that.
"If my choice of the cover image was polluting this message and could be considered offensive I’m fine with changing it. This is not a hill I’m willing to die on"
I think this a great trait to have as a developer; thanks for leading by example.
Rob - I'm confused: you found the cover photo of a group of old people offensive? I've got my fair share of grey hairs (perhaps a little more from stress than age!) and didn't find it so in the least. On the contrary I'd like to think I could still be making a positive input to the industry in my later years.
Sure the image wasn't properly representative of a typical group of senior developers (and sadly so, since for a start the group was too diverse) but I actually thought the joke was perfectly harmless.
And of course age doesn't by definition make you a senior dev; but a few years' work/life experience certainly helps :)
I think OP nailed it:
There's a difference between being offended (which I'm not) and doing something offensive (which it was). I don't have a problem calling people out, even when the issue at hand has nothing to do with me.
To bring this back to the author's point: there's a lot more to being a senior dev than code. It's recognizing how to carry a vision/project/company/product forward and often that means you need to be aware of how you present yourself. Sometimes things come at you sideways, such as when you use a group of people to represent an idea or concept - it can often go sideways.
Whether you thought it was funny is beside the point. You and I could be at a conference and you make a silly joke about dongles that's overheard by others. The joke could be funny in a personal setting - say we're at a bar or something - but in a professional setting it's just not a good choice at all.
If you're going to blog about professional things, it's a professional setting.
I totally agree that the OP's response was perfectly appropriate: you may do something and not immediately understand why someone is offended; but it's definitely better to accept that; deal with it immediately and educate yourself on the why later*
It didn't have me splitting my sides; but it did bring a smile to my face :)
But you're right that is beside the point. As an ageing developer actually I'm happy to see any representation of older people in development roles - whether spurious or not - so I genuinely want to understand why you felt the image was offensive
* consider my question as me educating myself
I don't think you understood: I'm still waiting for an explanation as to why you claim the image was offensive. All you've done is provide vague assertions that badly chosen images have the potential to offend (I don't disagree); but you haven't enlightened us as to who would be offended - and why - by the original image.
I think it's pretty unfair to publicly call someone out for being "offensive"
and then fail to provide a valid explanation when it is asked for. From my perspective your claim appears to have absolutely no merit; and your behaviour is not what I would expect from a senior developer.
Triggered!
Hey mate, listen - I get that you think I'm trying to socially censor the OP here but consider the main idea of the post - leadership. I know I'm probably wasting my words here but perhaps others will read this response and understand that there's a difference between my needs and what actions a person in a senior role might take.
When you find yourself speaking in front of a large audience (or writing blog post read across the world), you can't fully know each person's background nor what will bother them to the point where they stop listening to what you're saying and think more about who you are. I was at a conference in Europe once where a new speaker asked me to review their slide deck - they thought it was hilarious. About 3 slides in was a joke about Nazis and I had to explain (this person was American) that Europeans generally don't think Nazi jokes are funny.
The point being: it's not about social censorship, it's about respect and a focus on the subject at hand. Goofy slides with social messages only serve one person: you, and many people won't find your humor funny. Best to lean on your professionalism as a senior dev at that point, which is to focus on the message, not the jokes.
Finally: your GitHub profile is permalinked to the things you write here mate. You do as you wish, but at some point a potential employer or a person with a contract could stumble on this comment when considering you for employment 10 years from now and you kind of outed yourself.
YOU ADMIT IT! :-D
LOL I edited my response to be a bit more tempered :). Too much coffee.
Jesus, that's a long response...
hackernoon.com/why-senior-devs-wri...
Great read! 💯
Haha! love the cover image!
Good article 👍
Some comments may only be visible to logged-in visitors. Sign in to view all comments.