#DeveloperRoles #JuniorMidSenior #TechTransition
Hey there! 👋 It sounds like you’ve had quite the journey as a solo front end developer at a non-tech start up/small business. Making the switch into tech is definitely an exciting step!
Here’s a breakdown of the differences between junior, mid, and senior developers to help you evaluate where you might fit in:
Junior Developer:
– Typically has 0-2 years of experience
– Still learning the ropes, gaining foundational knowledge and skills
– Needs more guidance and supervision from senior team members
Mid-Level Developer:
– Has around 2-5 years of experience
– Comfortable with day-to-day tasks, can work independently on projects
– Developing more specialized skills and taking on leadership opportunities
Senior Developer:
– 5+ years of experience
– Expert in their domain, able to lead complex projects from start to finish
– Often mentors junior and mid-level developers, contributes to higher-level strategic decisions
Based on your experience with a variety of projects and technologies, you might fall into the mid to senior level range. Your ability to manage projects and your diverse technical skills are valuable assets.
To improve your self-evaluation and potentially transition into a management role in tech, consider:
– Seeking feedback from peers or mentors in the industry
– Taking on more leadership responsibilities in your current projects
– Continuing your education in tech through courses or certifications
Remember, everyone’s journey in tech is unique, and there’s always room to grow and learn. Best of luck on your tech transition! 🚀💻
Very broadly speaking:
* Junior devs can work under the guidance of a senior or mid level developer.
* Mid level developers can work mostly independely on well defined tasks
* Senior developers can take ambiguous or unclear requirements and turn it into actionable, defined tasks
Five years ago it would be measured in years of experience, but now in 2024 a senior software engineer is expected to be devops, QA, CTO, project manger, product owner, and machine learning expert. The mid and junior positions no longer exist.
Waist line measured in inches. You’ll know when your a senior
Role expectation is different at every company. One companies Senior SWE can be another companies Junior SWE. You should ask the companies you are interviewing at what they think the difference is so you can calibrate your expectations.
At the macro level you can say:
* Junior programmers create complex solutions to simple problems.
* Mid-Level programmers create simple solutions to simple problems.
* Senior programmers create complex solutions to complex problems.
* Great programmers create simple solutions to complex problems.
Though it’s much more nuances than that. There are a lot more soft skills at play when you move up the chain as well.
THE SPELLING
Junior developer: Is not yet trusted to complete difficult tasks on his own. The tickets assigned to him are typically either really easy, or moderately difficult. He completes the latter under a lot of supervision from a senior dev. All his work is monitored closely, and it is expected that he needs a lot of handholding
Mid-level dev: Can resolve difficult tickets independently, but requires a lot of explicit instructions in order to complete his tickets
Senior dev: is expected to have a thorough understanding of the company’s business, and how his own work, or the work of anyone else on his team, fits into that big picture. Is expected to start with vague, high level requirements, and work with business people, product owners, UI/UX designers, etc. to transform vague, high level requirements into a functioning solution. Expected to perform code reviews, and participate heavily in scrum ceremonies like sprint planning, sprint retrospective, etc.
A junior doesn’t know what they’re doing.
A mid thinks they know what they’re doing.
A senior knows what they don’t know about what they’re doing.
junior devs: no boundaries
mid devs: figuring out boundaries
senior devs: has boundaries
Seniors see the big picture that business requirements and getting sh*t is more important than the latest shiny new tech or flexing syntax knowledge
Junior, mid and senior are generally all single team levels i.e. the dev works in a single team rather than cross team. The level of responsibility is dependent on the company with some companies I know giving people who’ve just graduated a senior title as they are basically a staffing agency.
More traditionally as others have said:
* Junior expect to be hand-held normally by a senior
* Mid level executes the tasks themselves without hand holding
* Senior can take requirement and actually build the tasks
You’re missing several levels though:
Intern / Summer place is a short 2 month(ish) job where the purpose is to learn and are generally not paid 100% by the company money.
Graduate is someone who’s just out of further education but still not a permanent employee. Generally a year(ish) long placement before becoming a Junior or being let go.
You also have Staff+ roles like:
* Staff / Senior Staff
* Principal
* Distinguished / Fellow
If you’ve only ever done solo development then you’re in for a shock. I would expect you’ll find life in a company with other developers quite different.
There are many devs who prefer the process and just endlessly build abstractions and frameworks and libraries and … never really produce a working product. Or there are Duck tape devs maybe more attuned to your solo dev life where they just tape together bits of things and get the thing working.
The most important thing is realizing that it’s a big industry with lots of different people from many different backgrounds and I’m sure you’d fit in at some company.
If you’re going for big tech though pretty much the only thing that matters is the LC grind and being able to answer their cookie cutter questions in an exact format. After that the jobs themselves (I’ve been told) don’t have any connection to that process. They pay insane wages but tend to skew towards fresh grads as the companies chew through employees. For example Amazon are known to have a sort of firing quota of sorts where some people are only ever hired to basically be hired to protect the current members of the team. These are pretty toxic companies that aren’t really a long term thing with most falling out after a few years max. I think the caution here is unless you’re prepared for the process you’ll be shocked at what it entails to actually apply, join and work for a company like Facebook.
Also note: some small companies get a bit of success and suddenly start thinking they are big tech. Avoid these as they are time wasting. If a company with < 50 employees company wants you to do a 6 hour take-home then a timed LC then a live proctored exam then an 8 hour 5 interview technical assessment … I wouldn’t bother as you’ll find 99.999% of the people are ghosted by these orgs when their revenue suddenly drops and people can’t goof around interviewing any more. These places are interviewing so stoke the current employees ego and I can tell you for a fact it’s not a nice feeling being badly put down by them.
Example I done a 4 hour take home test for an pet insurance company in the UK they Ghosted me for 2 weeks. When I sent them an email saying I was withdrawing my application as I had been hired elsewhere they suddenly had a bunch of feedback to give me for my take home. The take home was poorly worded and left you to basically come up with your own solution think build me facebook as the brief. Their first comment was on the structure of the design which was odd as they gave no indication of any design at all. In other words it didn’t match their design which meant it wasn’t good enough. They then picked apart little minor things like error handling (which I actually documented as being something that needed worked on). They basically ended by saying that I wasn’t successful in my application even after I told them I withdrew. I could tell they had forgot about me and then got annoyed that I withdrew and gave me bad feedback because of it. Pretty sure that company went bust or was bought out a few years later.
It sticks in my mind as some companies are just on a time waste adventure so you have to be careful as it can be kinda horrible being rejected by these 2-bit nobody companies.
Anyway sounds like you’ve got some great experience, the things that you didn’t mention which would help you I think are:
* Talking more about practice for example CI/CD testing (automated / manual), BDD TDD DDD companies like to see that
* DevOps i.e. terraform, AWS/Azure
* BA type stuff like req. gathering, documentation, analysis
* Version control/management git. How to you control what’s on your production envs vs testing vs dev
* Soft skills like managing a client, setting expectations, conflict handling, time management
You can sell yourself as being able to work really well in a team even though you don’t really if you show the right attitude and skills are already there. You’ve worked in a team anyway just not with other devs.
I don’t think the degree is really a hard requirement for you now as your industry experience trumps that massively. If I was hiring I’d ignore the late degree in EE really I’d be more interested in your industry experience.
I’d also note that with your level of experience I’d try for a Staff+ role maybe pitching yourself at a staff level in a SME (Not big tech).
Good luck with whatever you do !
The title.
> 10 years now as the only technical employee
Based on this alone, I’d say you’re mid-level.
Junior, mid, senior is split by responsibilities and expectations.
* Junior – Expected to execute on day long tasks. Point them in a direction of a well-scoped well-known problem, and they’re expected to execute on that task. Expected to require a lot of hand holding.
* Midlevel – Expected to execute on week-month long tasks. A week-month long task is less well scoped but generally well known. You have a non-trivial but well defined feature you want to add, then you can expect a midlevel to execute on this task. Expected to require little hand holding.
* Senior – Expected to execute on months long tasks. Give a senior a large ambiguous task that will take a couple months to complete and they’ll get it done. They’ll scope out the problem and requirements, scope out the MVP and create it, consistently deliver high quality engineering artifacts, become an owner of their project and domain, mentor more junior members of the team, manage expectations with stake holders, and the list goes on and on. Basically a senior is a tech lead. If they don’t directly lead a team, they still lead as they’ll still be a technical expert of their domain and guide the team.
And the last couple of lines is why I think you’re midlevel. Software engineering is inherently a collaborative endeavor. As a solo dev you have no experience mentoring and leading a team. I have no doubt that you can perform on executing on large multi-quarter length projects, but your level is the minimum of your set of responsibilities. As you’re missing experience in a key part of being a senior, then you’re not a senior.