Taro Logo
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 navigate career after layoffs

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

I recently got laid off working as a developer working within an agency. I currently have around 5 years of experience working in the agency setting utilizing React, Next js, Vue, Liquid, and the Shopify API to create custom eCommerce sites. During my time at these agencies, I also had the opportunity to act as a lead, interact with clients, set timelines, and cross collaborate with designers/projects managers to meet deadlines.

I have been looking for new opportunities since January and I've been able to secure a couple of interviews, technical challenges, and one onsite. Most of my interviews have been coming from agencies, but my preference is to join a tech startup or maybe more on the brand side of things within the Shopify niche. Below are a couple of questions:

  1. Will working at another agency hurt my career in the long run? My ultimate end goal is to work for a bigger tech company if possible.
  2. If an agency does want to hire me right now, should I take the job for now or just wait for one of my preferences?
  3. I notice a lot of developers within the agency space freelance after their 9-5. Does studying for interviews or future jobs provide a higher ROI instead of freelancing?
  4. Lastly, I just finished (super helpful!). It seems like the best course of action for me is to apply a lot, work on side projects instead of grinding leetcode, and study system design. Does this seem correct?

Thanks in advance!

Show more
172 Views
2 Comments

Choosing between 2 projects

Mid-Level Software Engineer [L4] at Taro Community profile pic
Mid-Level Software Engineer [L4] at Taro Community

I switched jobs ~4 months ago and switched teams (not voluntarily) after ~1 month. My eventual goal is to (voluntarily) internally transfer into the AI org once I'm eligible.

During a 1:1 with my skip manager, I mentioned that my current team didn’t have much opportunity for impact. He floated a meaty project in a different org and asked if I was interested. Previous question . Let’s call this option 1. Afterward, I spoke to my direct manager, who presented opportunities in the other team that he directly manages. Let’s call this option 2.

Now I'm trying to decide between these options.

Pros of option 1:

  • More technically interesting
  • Platform/infra play that will eventually integrate with every single product => project has large scope

Cons of option 1:

  • Not sure whom I'll work with
  • Not sure how much support I'd get. (Good thing if lots of scope; bad thing if I'm flailing alone)
  • Org structure tbd: although my skip asked if I want to work on this, he’s loaning engineers to another org to fund the initiative.
  • Uncertainty re: how well defined the work is

Pros of option 2:

  • I know there are things that I can start working on tomorrow that are time-sensitive and needed for an upcoming product launch.
  • My EM manages this team and is responsible for the overall delivery. He seems to care more about this new project/team than my current team.
    • It sounds like my EM would rather that I work on option 2 than option 1
  • Product surface is high-visibility and therefore affords opportunity for impact

Cons of option 2:

  • I'm less interested in product / user-facing work, even though it's high-visibility

With all this in mind, does anyone have advice on which option I should pick or things to keep in mind?

Thanks for reading this far!

Show more
68 Views
4 Comments

Seeking Guidance on Navigating Initial Tasks, Documentation, and Codebase Familiarization

Mid-Level Software Engineer at Microsoft profile pic
Mid-Level Software Engineer at Microsoft

Hi Taro Community,

I’m a recent addition to my company and have embarked on my journey with a few initial tickets, completing 3 PRs in the span of 2.5 weeks. Alongside these tasks, I’ve been provided with architectural and design documents to help me grasp the broader system. However, these documents are quite high-level and, at times, challenging to comprehend fully, especially without knowing which sections are most pertinent to my current work.

Given the breadth of information and my eagerness to effectively contribute, I’m contemplating the best approach to balance my tasks with learning. Here are a few points I’m considering and would love your insights on:

  1. Targeted Learning from Documents: Should I consult with my mentor on which specific parts of the document would be most beneficial for me to focus on initially, considering my current assignments?
  2. Codebase Familiarization: How should I approach diving into the codebase? Is it advisable to ask my mentor for guidance on specific modules or areas that align with my tickets or overall team objectives?
  3. Balancing Tasks and Learning: What strategies have you found effective for simultaneously working on assigned tickets, understanding high-level documentation, and becoming familiar with the codebase? Is there a recommended balance or sequence that could optimize my ramp-up process?

Navigating the initial phase and ensuring I’m building a solid foundation is my top priority. Any experiences, strategies, or advice you can share on managing these early stages of onboarding would be greatly appreciated.

Thank you for your support and guidance.

Show more
52 Views
4 Comments

How do I get a Senior SWE promotion if I work at a client based company where projects change every few months and my manager is the same age as me (26)?

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

Hello!

I used to work for a large fin tech company but recently got a job at a client-based company. They flew me into the office for an onboarding week and the culture and people are fantastic. I even made a decision to move from DC into the Houston office just cause of the people and weirdly I realized that my personality is a bigger asset than I realized. I enjoy chatting with people, and a Director of Product even told me "I don't usually hold 1:1s with the new folks but your personality was shining so bright!"

I only give this info cause I'm not very confident in my technical skills. While I got a great performance review in my last company, it was because of my determination, my willingness to go full stack when no one wanted to, and cause I was very close with the Product and Design team. Tbh that's also cause I don't really nerd out about state management or the newest framework or whatever like everyone else seems to. I enjoy frontend cause I like making pretty things and that's it. I'm not the person who is constantly thinking about how to make our testing process or pipelines better. I can learn those things if I need to but it doesn't come naturally to me.

I have admitted some of this to folks at my new company and they've been super cool about it. They even suggested I dabble into a Technical PM role. That's still something I'm chewing on cause while it's silly, I love typing things on my pretty little IDE and I like fewer meetings. But I don't imagine coding forever. In my company, a senior engineer gets to lead a project, manage people, and talk to clients. I'm aiming for a senior role cause I think it aligns more with my natural skill sets as I believe my soft skills are stronger than my technical skills.

My manager became a senior recently and told me it was because he was willing to do whatever client project came in whatever language that was required. He's the same age as me and only started coding 3 years ago after a BootCamp. This is his only company but I'll admit, I feel like he's a stronger engineer than I am. I've been in the company for a few weeks, and I've been getting my stories done quickly even though their tech stack is new (but everyone is fast) but I'm not sure how to even become a Senior since I don't know if I will be able to become the rockstar engineer that my manager is. I will move earliest in September so I'm remote until then. Projects also come and go so fast. Any ideas on how to standout?

Show more
73 Views
4 Comments

Strategizing for a Potential US Relocation Within Microsoft After a Year

Mid-Level Software Engineer at Microsoft profile pic
Mid-Level Software Engineer at Microsoft

Hi Taro Community,

I’ve recently joined Microsoft India as an SDE-II, transitioning from Cisco where I had initially been based in the US before relocating to India in 2020 due to visa challenges. With an aspiration to move back to the US within the next 1-2 years, I’m seeking advice on how to strengthen my case for this potential relocation.

Here’s a bit of background: At Cisco, I reported to a US manager, and post-layoffs in 2023, I embraced the opportunity at Microsoft India amidst a lack of other offers. The remote work model, extending from my time at Cisco to now, has been challenging, often involving late-night work to accommodate time zone differences. This has reinforced my desire to return to a US-based role.

Understanding that I need to complete at least a year at Microsoft India to be eligible for relocation discussions, I want to proactively prepare and position myself as a strong candidate for such a move. I’m interested in hearing from those who have navigated similar paths or have insights into making a compelling case for international relocation within a large organization like Microsoft.

  • What steps should I take in the next year to build a strong case for relocation?
  • How can I effectively communicate my desire for relocation to the management team, ensuring they understand the professional (not just personal) benefits of such a move?
  • Are there specific achievements or contributions I should focus on that would underscore my potential value to a US-based team?

I appreciate any guidance, experiences, or strategies you could share.

Show more
41 Views
2 Comments

Negotiation question: When do you tell the company you are interviewing for that you are also interviewing somewhere else / have current offers?

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

I recently had an interview and before booking it, they emailed me a list of questions (including my major, university) and "current company and/or competing deadlines (dates/companies): ______"

I wasn't happy about this when I got the email and read I was never to reveal too much information. I felt cornered, pressured, and my family also really pressured me to interview with this company I know was for the wrong role (too junior, wrong focus area). I did it anyway and now I regret even taking the interview, it was actually a huge waste of my time.

What should you do if a recruiter emails this and says they require this (and a long list of other questions) within a 24 time period? Something I'm thinking about in the future if this happens again.

The recruiter was internal to the company and not 3rd party. By the way this was considered a "pre-screen" interview and normally I don't talk about other competing deadlines or offers until like the very LATE stages of interviewing (meaning you've already gone through like at least 3-6 rounds, not the pre-1st round which I found SO odd).

This is the list of questions I was sent:

"[ACTION] Complete this Questionnaire within 24 hours [copy & paste answers to the below in an email reply]

  • current company and/or competing deadlines (dates/companies): ______
  • motivators (when deciding on multiple offers, what is most important to you i.e. mission, culture, team selection, location, etc.): ______
  • please note that all x y z city headcount has been filled. Rank remaining locations in order of preference * xyz, CA, x y z city, state): _____
  • are you open/available to start on September 9, 2024: ______
  • preferred name: ______
  • pronouns (i.e. he/him, she/her, they/them, etc.): ______
  • graduation date (month/year): ______
  • degree (level & major): ______
  • university: ______
  • hobbies/anything else you’d like me to know (optional): ______
Show more
59 Views
7 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