How to step it up as mid level
Posted by bobbinssobbin@reddit | ExperiencedDevs | View on Reddit | 33 comments
Mid level engineer on a tiny team, least senior engineer. I feel comfortably mid level, I'm not ready for senior, but I want to take things up a notch.
What are things that you did, genetically or specifically, that made you more valuable to your team? Or if you're a staff+ with a mid level, what would you want to see from them that would feel like more of a value add/ make you appreciate them?
i_like_fat_doodoo@reddit
Do your current work well enough so trust forms. See if one of the senior devs are open to picking up one of their tickets. Do that ticket well enough so trust forms. Rinse and repeat until more people start to notice and vouch for your performance.
DenverCoderv2@reddit
What if I lack the ability to perform at the level needed to do one of the senior tickets? And I'm not talking about impostor syndrome, I'm talking about genuinely thinking I'm not up to the level needed but still want to move forward and be that person you can depend on? Is the answer simply more technical grind?
Such_Nectarine3478@reddit
I was given projects like that and I felt like I was about to burnout a bunch of times. In the end, I did sort of fail to deliver results, but I'm in a much better standing than where I was prior to taking on this ticket. The next one I take, I'm sure I'll do a much better job. So I would say just wing it if the risk to be fired is low. If failing or being slow would put your job at jeopardy, probably not worth to risk it.
norse95@reddit
I’m curious what your senior tickets look like? Is it unfamiliar tech or too ambiguous?
DenverCoderv2@reddit
It's either unfamiliar tech or unfamiliar part of the codebase, and our codebase has a lot of 'gotchas' where if you think you fixed something chances are that something else broke. Tests are not the best so the trust in changes is low.
MoreHuman_ThanHuman@reddit
bobbinssobbin@reddit (OP)
What do you mean there is no mid level?
MoreHuman_ThanHuman@reddit
exactly what I said. mid level is an illusion, you're either able to act autonomously and deliver or you aren't..there isn't much of a middle ground, particularly when changing jobs.
disasteruss@reddit
I think the biggest thing I see (and was guilty of myself) from mid levels is just coasting. There’s not a lot of curiosity or effort outside of completing tickets.
Try to understand the “why” behind decisions. Ask questions either to your seniors or take notes of things to learn more about later. Being able to help make meaningful decisions and explain tradeoffs is one of the biggest things that defines seniors over midlevels or juniors.
bobbinssobbin@reddit (OP)
Thank you!
There's definitely a small part of me that wants to coast for a while lol
mckenny37@reddit
Main thing is to have a growth mindset. Don't be completing tasks for the company, but be using them as a way to level up yourself.
For me this looked a lot like always trying to figure out how to make code easier to read and followed a lot of rabbit holes and advice over a long period of time until i was very good at writing high quality code and refactoring the code around the story to make it more maintainable over the long run.
Also taking work that make you slightly anxious is a good proxy for what kind of work you can be doing to lvl up. And anything that makes you really anxious is probably a riskier way to gain a lot of experience really fast. For me this was taking on a lead role when i didn't have the personality for it, but i gained the soft skills fairly quickly and it worked out really well for me.
sadafxd@reddit
To me anyone who volunteers to do anything will get to senior+ easily.
Volunteer to: Investigate obscure bug Create a RFC, lookup stuff Own an OKR
bobbinssobbin@reddit (OP)
Oh I volunteer for anything my team will let me lol
Notary_Reddit@reddit
Love your asking this question!
First, have you talked to your manager about this? Have you talked to your team lead? If not those are the two that can give most direct advice. If you don't have a performance review anytime soon send a message to your boss, state that you are wanting to grow, ask if they would be willing to talked about this in your next 1:1? If you don't have regular 1:1s with your lead, send them a message and ask something similar.
Second, in general to be a sr swe you need to be able to deliver a months long project by yourself and do this repeatedly. You need to know what needs done and why and how to make it happen. Lots of good advice for that in this thread.
bobbinssobbin@reddit (OP)
Absolutely! I have direct feedback, but being on such a small team it's so easy to get really lost in things, so I figured coming and getting perspectives would help!
Thank you!
futuresman179@reddit
The difference is overblown. Everyone gets there eventually. More than your technical acumen I care more if you’re easy to work with.
Varrianda@reddit
Find ways to take more ownership and move beyond just doing tickets.
ZukowskiHardware@reddit
I started just taking stuff from issue all the way to production myself. Understanding that everything is going to be complicated in some way. Take your time to embrace and learn from it.
Gunny2862@reddit
Taken the initiative to improve efficiencies. Not stuff like making devs work more, but improvements that everybody appreciates by making the job faster.
ecethrowaway01@reddit
You should still be able to align with your manager / lead on how you can grow and contribute more. If they don't really have any constructive feedback or ideas for you, that's kinda on them
AltruisticAd9382@reddit
The main thing is scope. Just try doing things well enough on your current comfortable scope, and then try to slowly push forward. Just be proactive to try and see how it goes.
On a mid-level, you probably can freely operate on the scope of a task. On a senior level, you'll need to work with whole projects. Also, at the senior level, you will receive goals rather than tasks to work on.
So, you start behaving like you are on the next level. Hopefully, it will be recognised on promo.
And yeah, your company may have a defined career ladder, which can guide you more specifically.
Conefau@reddit
Progression at any given level lays in the question "How can I be more useful?". Everything emerges organically from this.
Going into senior means taking ownership of broader context. You've proven you are technically capable of delivering what you are specifically asked for. Now try to take on more ambiguous and ambitious challenges. Once you commit into an initiative like this, the composition of your work shifts. You spend more time doing spikes and researches, communicate with people more, plan, acquire in-depth knowledge of the system and the business.
How to find such initiatives?
The easy way, that I would recommend starting with:
Go to your lead or senior in the team, ask them to help you find such opportunity and ask them to support you in accomplishing the goal.
With time you'll need less and less guidance, start seeing and preventing issues before they arrive and identify opportunities noone has seen before.
devfuckedup@reddit
find a niche and master it then you will rocket to whatever level you want to stop at or at least as high as the niche supports. its not about being a better generalist. And also improve non code writing skills. Not many people can add value with both code and not code
OAKI-io@reddit
the jump usually isn’t writing more code, it’s reducing ambiguity for the team. take a fuzzy task, turn it into a small plan/tradeoff doc, call out risks early, and leave the codebase easier for the next person. seniors notice when a mid-level makes work calmer instead of just taking tickets.
bobbinssobbin@reddit (OP)
Thank you! The wording of "makes work calmer" vs just taking tickets absolutely makes sense. Definitely room for improvement in that department.
Current-Fig8840@reddit
Well said. There is not going to be some big coding difference with an experienced mid person and a senior dev.
qweick@reddit
Design patterns. Think before doing - this takes practice, more than people realize. Start by writing down problem analysis, possible solutions, pros, cons. Breakdown solutions into smaller tasks to verify you understand both the problem and the solution niunaces. Eventually you'll be able to do it in your head, and then by heart (gut, visceral).
Work on communication. Consider what people you're talking to care about. How can you make your managers life easier? Your teams? What blockers do you face daily, weekly, quarterly? Don't step or people's toes, or at least ask for their permission first (or give them heads up so they have a chance to object).
bobbinssobbin@reddit (OP)
Thank you!
Getting used to breaking down the problem before it even fully exists has proven to be difficult. It feels like finding potential problems to a problem that doesn't fully exist yet but you need the solution. I love the problem solving aspect of it; feeling like I have a problem to chew on has always been a positive.
throwaway_0x90@reddit
System design, project management. Find problems and bottlenecks on your own. Document why they exist. Document a proposal on how to fix it.
bobbinssobbin@reddit (OP)
Good documentation seems way more valuable the farther I get. I like this, thank you!
crazylikeajellyfish@reddit
Learn the real purpose of your job and come up with creative ways to achieve it more quickly. Software is never intrinsically valuable, it always exist to help achieve some other goal. Once you realize that a spec is never the goal, just someone's attempt to describe a solution to the real problem, you can become someone who delivers a better solution than your boss imagined.
bobbinssobbin@reddit (OP)
Thank you!
It absolutely makes sense; it's weird as hell to think about though.
attrox_@reddit
The few things I notice that I will consider an engineer is on the path to senior level: higher level of ownership (not just wait and work on the tickets they are assigned to). More thoughts are given on their tasks: clear up ambiguity, separate things they can decide for themselves vs bringing it up to stakeholders for clarification/important design decision.