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 know if the founder is legit?

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

I've recently been approached by a startup founder and asked to complete a take-home quiz, which I did. It looks like the founder is leaning towards offering me the Head of Technology position. However, I have a few concerns and questions.

  1. How can I assess if the founder is someone good to work with?

    From my initial conversations, I've noticed a few things about the founder:

    • They come across as overly confident, almost to the point of being condescending. Is this a common trait among founders, or should it be a red flag?
    • They strongly believe the product will be successful. I think this is a positive trait for a founder, but I'd like to get your opinions.
    • They think all backend jobs will be obsolete in two years due to AI. While speculation is fine, I believe there should be a balance with reasonableness.
    • They talk more about the history of AWS, the life of Elon Musk, and famous quotes rather than focusing on their own product.
    • They tend to underestimate the complexity of engineering feats. For example, they think developing services like DynamoDB and S3 was easy for Amazon because of their large workforce, which I find undermines the actual engineering challenges.
  2. How can I determine if the startup is likely to succeed?

    • What aspects should I be looking at?
    • What questions should I be asking the founder or team?

Any insights or advice would be greatly appreciated!

Show more
Posted 4 months ago
3.1K Views
3 Comments

Meta / Facebook Team Matching - How to find the best team? (E4)

Mid-Level Software Engineer at Series A Startup profile pic
Mid-Level Software Engineer at Series A Startup

I'm moving forward to team matching at Meta for E4 and wanted to ask the community if they had any suggestions for teams with the strongest potential for growth, especially for the New York office.

The recruiter gave me the following survey. I stated I'd be more of a "Product - Generalist" role. Would also be curious to learn more about "Systems - Generalist" as I did the System Design interview as well.

In general from what I've seen, there's a decent amount of opportunity in Instagram, Whatsapp, and Reality Labs (from product announcements and earnings calls). I've also been told to avoid monetization as it's difficult to make an impact there.

Would appreciate any advice or suggestions! Also would appreciate tips on what questions to ask Hiring Managers to assess how they grow E4s.

What is your role? (select the one that applies)

  • Systems - Generalist
  • Product - Generalist

What type of work motivates you the most? (select all that apply)

  • Infra: Scaling challenges
  • UX: Building user experiences
  • Growth: Top of line impact
  • Integrity: Ensuring platform safety
  • Social Impact: Progressing positive change on key social issues

Who do you want to build products for? (select all that apply)

  • Consumers: External, individual users of the Meta family of apps
  • Businesses: External business account users of Meta family of products
  • Meta Employees: Users of internal tools
  • Developers: Internal and external engineers using Meta developer products and APIs

Please select which Meta Pillar(s) you’d be interested in joining? (select all that apply)

  • Family of Apps: Enable optimized enforcement and support of account integrity to foster safe and meaningful communities.
  • Monetization: Empower people and businesses to succeed in the global economy
  • Gen AI: bring the transformative potential of generative AI to people and businesses
  • Reality Labs: build tools that help people feel connected anytime, anywhere

How would you rank your preference in terms of products? (feel free to use numbers)

  • Facebook App
  • Monetization
  • Privacy
  • Messenger
  • Instagram
  • WhatsApp
  • Reality Labs (AR/VR)
Show more
Posted a year ago
2.9K Views
2 Comments

How to remove yourself from being a bottleneck?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

Due to unforeseen circumstances from past 6 - 8 months, I've been the Senior most engineer in my team, (I have a total of just ~2.7 YOE). My team consists of ~12 SDE 1s (New Hires) and 2 SDE2s (The other SDE2 being promoted very recently). My manager does a great job filling the role of Senior Engineer which reduces bit of pressure off of me.

However, due to necessity in the team I've ended up being SME in all the services owned by our team. This leads to everyone reaching out to me to help them with their queries, I try to document some of these and add in the Wikis so that it can be easily accessible for others next time. However, when it comes to certain tickets and issues, I end up having to pick that task up myself (Manager does not ask me to, but at same time i know that for someone else the ramp up time required to fix the issue would be too high).

I recently tried to reduce this (2~ months ago), this led to our overall ticket health getting worse and I had to again start looking into them myself and guiding each on-call cycle with right action items for the tickets etc.

This involves me helping them to do the following :-

  • Prioritize correct tickets to look into for the on-call cycle.
  • A potential fix for the ticket so that they know where to look into.

Due to which it ends up taking 6+ hours weekly to keep this running. I don't really mind doing this; however, I don't feel like this is a scalable solution and would eventually want to slowly scale down from doing this and have my team being able to be self-sufficient.

What's the best way to go about this without affecting my team's ticket health?

Show more
Posted 2 years ago
2.7K Views
4 Comments

Is there a way to "grind" system design or soft skills?

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

I'm not sure exactly how to phrase this, but to give an analogy, I love card games (ex: Legends of Runeterra, Race for the Galaxy, Hearthstone, etc). There are a fixed set of rules and a fixed set of cards. I can "grind" games and get better by noticing patterns, picking up new strategies or tactics by playing against a diverse set of players. The outcome of an interaction is usually idempotent (i.e. card 1 interaction with card 2).

In real life, things are quite complicated. Asking a certain question in a certain way to person 1 and person 2 may give wildly different responses, and may even depend on your mood, their mood, your tone, time of day, etc. It's super messy and unpredictable.

I also feel a similar way about system design. The nearly infinite possibility of inputs, outputs, TPS, throughput, scenarios make it difficult to reapply the same set of rules to different scenarios. This is just talking about one component, when we bring in N components, the interaction gets very complicated and the "rules" change" case by case. I'm sure it gets better with practice, but I also feel I have a limited opportunity to learn or practice these on the job.

Has anyone found a way to structure these learnings in terms of a repeated "grind", because oftentimes I feel overwhelmed and don't know where to start. This is a complicated question, so answers regarding either a) soft skills or b) system design separately I will treat as valid answers.

Show more
Posted 2 years ago
2.1K Views
5 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