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.

Communicating and Asking Questions with Seniors Who Lack Strong Technical Skills

Mid-Level Software Engineer [E4] at Meta profile pic
Mid-Level Software Engineer [E4] at Meta

I’ve gone through Taro's courses on communication and asking questions, which were insightful, especially in showing how juniors can learn from senior engineers with deep expertise. However, as an MLE, I face different challenges and would appreciate some insights or thoughts from Alex or Rahul.

For context, I majored in math and hold an MS in ML from a top 3 university, so I'd say I have a solid grasp of both the mathematical and practical aspects of ML. Machine Learning can be deeply mathematical, often requiring formal training to fully get it. Some SWEs who transition into MLE roles may lack this foundation, and while they might have been excellent SWEs, the gap in math knowledge can hinder their abilities as MLEs.

Here are a few challenges I face with some SWE-to-MLE seniors:

  1. Sometimes, my tech lead asks questions that suggest a lack of understanding of ML basics. While directly correcting them doesn’t seem right, what’s the best way to handle this?
  2. This becomes a bigger issue when they set project goals that are mathematically infeasible. Without a strong math background, they rely on intuition, making it hard to guide them away from misguided directions.
  3. Their informal grasp of ML can also complicate design documents by introducing unnecessary features that don’t align with the project’s objectives.
  4. As seniors, they can get defensive and dismiss alternative ideas, which is frustrating, especially when I would need to work on a project with a high risk of failing.
Show more
Posted a month ago
74 Views
1 Comment

Potential Side Project with a Matchmaking Site (with real users)

Mid-Level Data Engineer at Instacart profile pic
Mid-Level Data Engineer at Instacart

I have an opportunity to work on what could be an interesting side-project.

I was approached by a matchmaker friend of mine to help her with her website. Her website is currently used by ~80 matchmakers and the number of matchmakers is growing. Essentially, the site is a database of profiles that matchmakers can search based on various criteria.

After speaking with my friend, it's clear there are 2 main things that need to be done.

The first is a website migration. Right now the site is hosted on Salesforce which my friend says is expensive, so she's looking to host on something cheaper.

The second thing is she wants to develop a mobile app because so many of the matchmakers matchmake on the go and it's inconvenient for them to use a site that's not optimized for mobile.

This project has a number of great qualities

  1. An area of interest (to me)
  2. Real users with a real business problem
  3. Potential to get paid for my work
  4. Ability to make lots of connections and develop my network
  5. Grow my technical skills through web-dev and mobile-dev

As it happens, a lot of the plusses are also minuses:

  1. I'm a Data Engineer and have never done front-end or mobile-dev, so I'll have to learn a lot and it could be stressful
  2. I'm 2 months into a 6 month contract Data Engineer role at Instacart (my first Big Tech job) and really want to be renewed if possible. Working on this orthogonal project in the evening won't allow me to work on work

Overall, I'm learning towards just punting on this, i.e. telling my friend I don't have time for this right now, helping her find someone, and if I change my mind later on, offering to help then.

Am curious if people feel strongly one way or the other regarding what to do.

Thought are welcome!

Thanks!

Show more
Posted a month ago
1.4K Views
2 Comments

Caused a SEV - Publish RCA?

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

In my 3rd week at Big Tech, I was over-eager to get my first PR merged (into a particular legacy Airflow repo) so I could complete my first ticket and show some progress. I made probably the most classic rookie-mistake of not properly in staging, and my code ended up causing a sev that took down Prod for about 30 minutes. Since this was a particular legacy Airflow repo, it wasn't the end of the world since only internal workers were affected, only a small subset of the company, and it happened at night. Still, this was a pretty bad look for me to my manager and I've been working hard since to make a better impression.

At my company, for every sev, there's a process to write up a Root Cause Analysis (RCA) Doc where you describe the issue, 5-whys for why it happened, the timeline for how it happened, who it affected, and a few other details. There's technically an SLA of 2 weeks set to each RCA, but looking at other RCA docs, I see a lot of them were never actually filled out.

From my perspective, the reason for the sev was simple: I didn't adequately test in staging. The oncall guy who helped me navigate the issue encouraged me to not personalize it as much and to think in terms of the process, e.g. testing in staging should have been required or canary testing in prod should have caught and rolled back my code.

I have filled out the RCA doc on Confluence and can publish it but am hesitant to do so because I'm concerned about reminding people that I caused the sev.

I have 2 concrete questions:

  1. Should I publish the RCA? I can prob get away without doing it since it doesn't look like it's enforced. I guess if someone does decide to follow up and sees I haven't filled it out it could be a bad look, but given that it's been over a month since I was supposed to publish it, it doesn't seem likely.
  2. If I should publish, should I look to engage with my oncall mentor regarding implementing some of his feedback for making testing in staging required or canary rollbacks? It seems like a lot of work to do (for myself or others) for something that was a "me-error" and people might get annoyed if they now have to test everything in staging when they don't currently have to. It also takes me away from my current tickets (which my manager prob cares more about me completing).

Thank you for reading this!

Show more
Posted a month ago
31 Views
2 Comments

Surprises from Big Tech - How to deal with a bait & switch?

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

My employer pulled a bait and switch on me, my job role (SWE) turned into a non-technical one right after hiring and I feel it’s pushing me out of tech. Even moved to another country for this job, I stayed in the job to pay back relocation money & because it was big tech - did not want to leave after 3-6 months in, I’m close to completing the 2 years mark to end the relocation debt. I’m officially an engineer and paid as one, but since the beginning I’ve not been assigned technical work, only small “scripts” or some “data analysis” my manager supposedly needed.

I’ve never seen anything I wrote go to production and it’s hurting my self confidence. I’ve already moved to another team after 7-8 months in - because of the lack of technical work and encountered very weird behaviour there too: supposedly it takes 1 year (!!) to onboard onto this team, I’ve never been assigned to technical tasks to this day - it’s mostly been data curation and localization. Their strategy to keep people is to give them overinflated performance review feedback and a handsome bonus and raise every year so they keep their mouth shut to upper management (other offices within Apple). It’s a disgusting tactic.

For example in my first year performance review they’ve “made up” projects I had not actually participated in. Management doesn’t care, they say it’s product development and it’s equally important to find solutions that don’t involve code, they have a way of justifying their lies. I’m close to 2 years in and am ashamed of the consequences of this absence from the tech field.

In 1:1s with managers or hire ups they always say it’s technical work, but then eventually one finds out it’s data hillclimbing or data curation. I feel my trust has been abused, I’ve moved to another country for this job (jobs in this market are 3 times lower than what I'm paid now so my only chance is remote I guess) and haven’t grown at all professionally.

Thanks for letting me share this here, I never thought I’d end up with this dilemma when I was offered this big tech job. I was thinking of anonymously reporting this (company has an anonymous line for this), as having internationals move over for this job and destroying their careers should not be an option. I wish I could just forewarn people somehow about applying here.

Show more
Posted a month ago
53 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