Profile picture

Mid-level Engineer Career Development Videos, Forum, and Q&A

How A Mid-level Engineer Can Grow Their Career

Mid-level engineers have very strong technical proficiency, able to execute on small to medium-sized projects with minimal hand-holding, leveling up from junior engineers.

How to Effectively Divide Time Studying Between DS&A and System Design

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

I'm currently studying for software engineering interviews, but I'm having a hard time deciding how to divide up my time between doing LC problems and going over system design concepts. It can feel overwhelming since both categories have so much to cover. I also have a family, so most of my studying gets done after my kid goes to sleep at around 7 PM. Since my team is in the west coast and I'm in the east coast, I do get some extra time in the morning to work out at the gym and go through some LC problems. I'm currently going through Neetcode's course as a refresher. For those of you who have aced your interviews, how did you divide up your time on different topics? Did you mostly spend your time on LeetCode? I'd be happy to hear any recommendations.

My main goal: I want to be interview-ready no matter what. I currently work at a big tech company and I've been there for 4 years now, but I haven't seen much growth and now I'm seeing that I could have negotiated more when I first got my offer. I was asked 2 LC-type problems, and I feel I got lucky with them because I hadn't extensively gone through all the different patterns and data structures. It was my first time getting RSUs and I wish I had known more about negotiation tactics as well. I feel that if I be ready for interviews, I can apply and definitely increase my comp by a lot. The motivation is for me to overcome the fear of DS&A problems and not stop myself from applying to positions just because I'd be asked LC-type questions. I also know that I can double my comp with the right negotiation tactics and with my years of experience.

Show more
60 Views
2 Comments

Learn About Mid-level Engineer

A mid-level software engineer has all of the foundational technical skills, industry knowledge, and practical experience that allows them to contribute to software projects. They can collaborate with cross-functional teams, handle complex tasks, and demonstrate a deep understanding of the technologies they work with.
A mid-level software engineer can demonstrate a certain level of technical proficiency and independence. They should be able to handle most bugs without needing constant guidance. They should also be able to independently implement features with medium complexity. It is the level where one becomes less reactive and more proactive. Proactivity means anticipating where bugs may show up as well as suggesting improvements in the codebase. They should have a high standard of code quality and high velocity of code velocity.
The journey from a junior to a mid-level engineer is a significant step in one’s career. It’s important to focus on developing the skills necessary for the next level. This shift involves being able to write code to being able to write better code faster. One should be able to understand systems, plan out projects, meet deadlines, and occasionally function as a lead to make the transition. They should also be improving their communication skills during this period and seek feedback on their work from more experienced software engineers.
The transition from a mid-level engineer to a senior engineer involves a deeper mastery of technical skills, leadership capabilities, and a complete understanding of the software development lifecycle. Senior engineers are responsible for making high-level architectural decisions, guide the technical direction of a project, and mentor junior and mid-level team members. Collaborate with your manager to develop a formal growth plan. Take the initiative to write the document yourself and discuss it with your manager. One should be able to recognize gaps that a mid-level engineer has so they can improve them: writing more code rather than reviewing code, not being available to help out during big incidents, or only dealing with one’s own code. By focusing on these issues, you will be able to exert your influence more broadly across your team and company. You should also consider mentoring some of the more junior members on your team to help them grow and develop their skills.
The journey from a junior engineer to a mid-level engineer or a mid-level engineer to a senior engineer involves a continuous process of learning and refining one’s technical, communication, and leadership abilities. One should strive to have more and more impact and influence across their company to have a successful career progression.
Show more