Mid-level Engineer

Mid-level Engineer

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.

Finding a job without a specialty

Mid-Level Software Engineer at Ex-Google profile pic
Mid-Level Software Engineer at Ex-Google

A quick TL;DR of my career, I started off at Lockheed Martin doing Linux C++ and Java development with a bit of SRE work building out Jenkins+Docker CI/CD infrastructure for my team. I then went to do frontend web development on Google Cloud. However, after around eight months, I wasn't too confident on my trajectory within the team, so I moved over to a team outside of Cloud. In this role, I did Android development with some C++ backend work mixed in. Looking at my background, I've worn several hats and more or less had multiple different roles during my ~4 year career.

This is all because I care more about the end result of my work instead of the work itself. The language, tech stack, etc that I am using is not what gives me fulfillment. Unfortunately, it seems like I'm getting punished for this mindset, as every employer wants someone who has been using the same stack their whole career. It's not surprising given how recruiters and anyone in the hiring process is seeking to find any reason to say "No" to you. They have become adversaries that one has to take down, since passing Google's hiring bar now no longer carries weight. Each interview I fail to pass just appears to perpetuate a narrative that I was nothing more than a COVID overhire and deserved to be laid off.

Is there a gainful role out there for me, or am I going to just have to settle for some dead-end job that will just drag these career woes on?

Show more
126 Views
3 Likes
5 Comments
13 days ago

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
595 Views
8 Likes
Editor's Choice
3 Comments
a month ago

How to be more productive working from home?

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

I have been working from home since 2020. From 2020-2021, I used to work in a healthcare startup with lots of responsibility, tons of work, crazy deadlines and needed to firefight incidents on a daily basis. The managers used to keep us on our toes and everyone was expected to put in more hours than the standard 40 hours/week. I was pretty much working most of my waking hours so productivity was not my concern. I did learn a lot but eventually burnt out.

I took a year off to do my masters and joined my present company in June 2022. It's a much bigger company with amazing culture, clear processes and I have very supportive and brilliant teammates. No one micromanages me. There is still good amount of responsibility and tons of work. In this environment I also want to give my best. While my productivity is great when in office, I do feel I am at 70-80% productivity level when working from home. We follow a hybrid model where we go to office twice a week.

Being in rent crazy Singapore, I do not have the luxury of having a separate office space at home. I do have a proper desk setup and enough things going on to be productive.

I want to be more productive in days I am WFH.

Have tried keeping up a schedule, wearing noise cancelling headphones, listening to binaural beats.

But nevertheless I do find myself on my bed after a couple of hours of work and it becomes difficult to resume work again. Also I tend to be hard on myself for taking that rest and the day just spirals from there.

I have tried working from cafes and even going to office every day. But along with going to gym, commutting and cooking healthy food I am too tired at the end of the day.

I really want to be more productive when WFH so that I can also manage the other parts of my life well. My team doesn't care where I work as long as the work is done.

Would like some tips on how to be a better remote worker and manage the entire day better.

Show more
579 Views
13 Likes
Editor's Choice
5 Comments
a month ago

How do I advance from Software Engineering to Product?

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

Hello,

This platform is awesome and I've been looking at a bunch of resources for career advancement. One aspect that strikes me is to play into my strength. While I do enjoy coding (only if it's front-end or mobile -- visual stuff!), it's not my strength or something I will really do outside my job. I do love being in any conversations that involve innovative features for our customers, making our product more modern aesthetically, or questioning the features we do have. The idea of being a staff/lead/principle engineer keeping up with latest angular features or being on call outside job hours to fix some server or UI issues come up isn't really appealing. But I do want to grow. I want the chance to mentor people, influence a project, be in cahoots with people who make decisions about what we want to create, be close with customers, etc. I love the design (UX) aspect as well.

If I stay as I am, I know I will slowly grow linearly in this software engineer role. I do think I will get the senior developer role next year. But most folks who have a C-suite role in product or beyond seem to have an MBA but I am not sure if that's a valid move nowadays. I am taking a couple of tiny PM projects but outside that, what can I do to have the best chance of landing a C-suite role later in my career and making an impact beyond coding?

Looking forward to your replies!

Show more
271 Views
4 Likes
3 Comments
2 months ago

Does coding language matter in interviews?

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

Just curious about opinions here. My main language is JavaScript, and I know people probably assume I am a front-end developer / full-stack (reasonable biases). In reality, I've been primarily backend for several years now. Throughout my experience at Microsoft and Twitch, I've used a fair amount of Node.JS / vanilla JS, then a bit more TypeScript for the CDK constructs we all know at Twitch (our team was primarily responsible for building and debugging Amazon Builder Tools things). I've done the majority of my interviews in JavaScript and it has been mostly OK, since I've used it for so long, but just wondering if it matters.

I used to do my interviews in C++, but then I got burned during a Google interview when my interviewer talked about the inefficiencies of emplace_back vs push_back (I had no idea). After that point, I just decided to do JS because I was reasonably proficient at it, and it is actually faster to write than C++ in a lot of cases (less boilerplate).

The top LeetCode answers / YouTube explanations and such are usually in Java or Python, so sometimes it's also hard to find a good JS answer. I'm leaning towards Python, because it is more like JS and with less boiler-plate like Java, but I'm worried about something throwing out some random trivia about Python that I have no idea about, because honestly I haven't used it much in my career thus far.

Show more
131 Views
5 Likes
2 Comments
2 months ago

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
2.4K Views
27 Likes
Editor's Choice
4 Comments
20 days ago

Working with a micromanager

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

I am a mid level engineer and I work for a manager who has micromanaging tendencies. Some of these tendencies include,

  1. Going deep into implementation details of tasks that engineers are working on. I have been in meetings/discussions where proposed solutions by engineers have been ripped apart by this manager without them having enough context about why the engineer is doing it a certain way. This almost always leads into the engineer having to explain the nitty gritty implementation details to this manager to convince them that the engineer is doing the right thing. Overall, the manager shows very little trust on the decisions taken by the engineers.
  2. When there arises a situation that the manager wants something from an engineer, they will want it immediately i.e. within the next few hours, eod etc. The manager is aware that the engineer is working on a bunch of things but they will not show any regard for that fact. This means that the engineer has to put everything they are working on aside to produce the thing that the manager wants. The problem is that this happens very often and it results in engineers either having to overwork to get their job done or affecting quality of their work.
  3. The manager will put the engineers under extreme pressure to deliver projects on or before the deadline. This includes minor nudges in meetings, lunches, team activities etc. reminding engineers of the timeline to having 2 hour meetings to discuss where we are in terms of meeting the deadline.

I have a few questions based on the above context.

  1. How to deal with such managers?
  2. Is it sustainable long term to work for such a manager? I am considering getting to the next level in my role within the next 2 years, would it be advisable to continue working with this person?
  3. Do most managers have more trust on their directs than described in the above situations?
Show more
1.1K Views
30 Likes
5 Comments
3 months ago

Stuck as an Entry Level Engineer

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

Hello,

As the title says, I’m stuck as an entry level engineer in FAANG for almost 4 years now. I’ve been reflecting on what I’m doing wrong.

My first company I worked for 1 year and didn’t not like it because the lack of mentorship. I joined and my questions never got answered, the tech lead didn’t really care about giving mentorship, just gave me links and bug IDs. I was able to survive for 1 year but I left the company because I felt so lost. My manager mentioned that I was “on track” to getting promoted but I hated the culture.

Then worked for 1.9 years on another company, where I received awards for my projects and contributions. I did receive mentorship here, but I was not able to get promoted. At the end of the timeline my manager mentioned I was moving slower and slower. I was working as a full stack and I believe my error here was not playing my strengths, since every time I had to take another project it would be on a different area, such as server on a language I never used before. I had a few discussions with my tech lead and I felt I lost my team trust because they would give a lot of comments, and just get a lot feedback from other people. This kinda demoralized me and made it hard to keep working so I changed teams. My last team I worked for 8 months before getting laid off. Here I also received recognition for my projects. My first project I missed the deadline because the onboarding had nothing to do with my project. I integrated our tool with an external team, so most of the code base I worked was not even ours (the techlead and team didn’t have much knowledge). Then I was given another project where I was starting to get traction, onboarding and project matched, I had to ramp up again on the new tech stack and my manager was getting frustrated with me, my team was very helpful and I was slowly to become independent. I feel like people trusted me here and code reviews would go smooth this time, at the end I was finally getting positive feedback, but was affected by the layoffs. From reflecting, here is what I did wrong:

  • Not communicating well enough my work with my managers. Status updates I was blocked/learning and that would make me look slow.

  • Not very good mentorship, I feel like at the beginning I needed lots of 1:1 to be able to learn our teams codebase. Sometimes I got very good mentorship but not complete. So I learned well parts of the code base where the tech stack applied.

  • Switching projects too much, went from front end, full stack, server side with several languages. Every time I had to re learn a lot of new of the tech stack.

I did get several recognitions for my contribution with at least helps me think I’m not completely inadequate for the field.

I am looking for a new position, is there anything that could help me perform well as a mid engineer?

Thanks

Show more
358 Views
8 Likes
2 Comments
4 months ago

Resume review for landing L4 or L5 in Faang+

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

My resume is below and a review would be great!

Questions:

  1. I tried to be concise and to "show" not "tell". What major improvements can I still make? Lots of progress already from seeing Alex's resume and the masterclass on resumes , but would love more.
  2. Does L5 make sense given the resume, or since I have just over 3 years of experience would L4 be worth pursuing as well over my current position? Following up on questions about down leveling , and leaving a startup for big tech .

*Note because my most recent experience is Team Lead and where I don't directly ship, I did break the rules and use bold to highlight earlier impact. I also put skills at the bottom for visual balance.


Team Lead for Software Engineering, Company X ⁓ $450M startup ⁓ 1M monthly active users

April 2022-Present

  • Managed 8 direct reports, 2 promoted to Senior (one from the junior), 3 on-boarded
  • Proactively addressed underperformance among direct reports resulting in 2 engineers improving their skills to meet expectations
  • Empathized with individuals to build trust and understand root causes which included addressing a system problem rather than blaming an engineer for poor performance
  • Recognized hard work resulting in high team morale and often completing sprint goals

Android Engineer II, Company X ⁓ employee #18 of 150 ⁓ engineer #4 of 25

May 2021-Mar 2022

  • Rebuilt our $125M-revenue driver, a 2D list of games, to be faster, modular, simpler
  • Devised a strategy to improve UX through the creation of a bottom sheet and a resizing video solution, lead to a 4.3% increase in D7 profit
  • Created a service reminding users when their games are installed, even when outside app, and made a reusable, modular notification system, leading to a 75% decrease in abandonment
  • Debugged a $1M bug and presented a brownbag on it

Android Engineer I, Company X

Nov 2019-April 2021

  • Presented 20+ architecture and testing docs to my team before building complex features
  • Created robust test suites to ensure correct behavior and great UX through fault tolerance

Internships: Zillow, Undergrad Research

Skills: Kotlin, Java, Room/SQLite, SOLID, MVVM, Git, Design patterns, OOP, TDD

Show more
206 Views
1 Like
1 Comment
5 months ago

Should I leave my startup after 3 years for big tech?

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

I’m considering leaving a startup because of 2 things I’ve seen on Taro:

  1. faang+ as a long term investment in your career
  2. .

2019 Goal of Joining a Startup

  • Learn a lot about how to be a good software engineer

  • Be an early employee at a startup that makes it big

  • Quickly become an Engineering Manager because I like working with people, helping others

2023 Thoughts on Staying as an Eng Manager or Joining Big Tech

  • Dream of being an EM, is happening on small start up scale with a growing number of reports who like my management so far

  • The dream is to be early at a unicorn and that is close, but

    • The new standard should be 10B not 1B

    • Doing this with a first job is not necessary and high risk

  • In 2-4 years I’d likely still be a engineering manager from a no-name startup

  • L5+ engineer in big tech may fit well with my personality right away based on Taro, where I love collaboration, helping people, product and technical challenges

    • I like not just spending 80% of my time heads down coding and that may be possible and expected right away in big tech, no need to be a manager
  • Getting a 2 FAANG+ badges on my resume over the next 4 years would be more way more worth it than even a million dollar payout from a startup

    • Could have many doors opened for high level roles at startups OR faang depending on what I feel like at the time

    • Big tech stock offer may also easily be worth 1M in 4 years

Priorities 2019

  • Supportiveness of team

  • Growth opportunities

  • Company prestige

  • Maximum outcome (Risk)

  • Compensation

  • Company ethics

  • Product space

  • Technical space

  • Work-life balance

  • Level/title

  • Benefits

  • Location

  • Stability

  • Remote work


Priorities 2023

  • Supportiveness of team +0

  • Work-life balance +7

  • Compensation +2

  • Company prestige -1

  • Growth opportunities -3

  • Stability +7

  • Company ethics -2

  • Remote work +6

  • Level/title +1

  • Benefits +1

  • Location +1

  • Product space -5

  • Technical space -5

  • Maximum outcome (Risk) -10

Taro priorities video is

Startup Stats

  • 150 people, 25 engineers (doubled from a year ago)

  • Fall 2021 had 50% investment at 250M valuation

  • Dec 2022 450M valuation

  • Revenue has since doubled in last year to 125M

  • Profitable per years with 20% gross margin

  • Growing industry

  • Not venture backed, so not expecting 20x growth

  • Estimated in 2-4 years to sell for 1-2B

How to evaluate a startup video

Current job stats

  • Team lead for a year after 2.5 years as Software Engineer

  • 0.1% equity, 100k cash

  • 18th employee, 4th engineer

  • Dream of being an early employee at a unicorn, seems close

  • Would lose all stock if I leave before acquisition/ipo

  • Biggest point for discussion: ***2-4 years of being manager at a small startup may not qualify me to be an EM in big tech***


FAANG+ Offer

  • L4 equivalent

  • 190k cash, 350k stock over 4 years, 60k sign on bonus

  • Work life balance is supposed to be great

  • Great food, big tech lifestyle that I’ve always heard/dreamed about

  • Would work to be promoted to L5 in 1-2 years, then manager a year after that.

  • Being a new person at a fresh company sounds very exciting now, I know the business fully and the tech stack of the current place to the point where many things Ive see before and feel stale/boring


Questions

  1. Based on my write up about values, priorities, liking collaboration, would I like being an IC L4 coming from being a manager where I have solid tech skills but strong soft skills that I enjoy using.

  2. If I stay at the start up would I be able to get a big tech EM offer with 3-4 years of management experience at the start up? Note this question shows what I’m learning now as a manager.

  3. Should I down level myself from L5 to L4 if I think I could get the offer at L5 but am not sure about the certainty of success? (Question asked separately )

Show more
196 Views
4 Likes
5 Comments
5 months ago

How to prioritize Growth vs. Technical Learning?

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

I am currently on a team where I am assigned to work on a different area of the product(s) in each quarter as per the priorities of the leadership for that quarter. This has resulted in me gaining a good full-stack overview but not much depth on any specific components/technologies. I've been on this team for around 18 months right out of college but 80% of the technical work I've delivered till now has just been pattern-matching based on the existing code and infrastructure, although the outcomes have been impactful for the business. I feel like I'm not learning anything technically significant beyond company/product-specific knowledge which are not transferable to other companies. When I check out job postings from other companies for my level of experience, there always seems to be a focus on having expertise in some technology, which I can't confidently claim. This brings me to the following questions:

1. Should I stay at my current company? My career growth prospects seem great here as I have a very good reputation in my team and sibling teams, and have gotten very good feedback and visibility from managers and seniors. I also work as the lead developer for a legacy product which is not that robust and has hard-to-reproduce customer bugs, but the leadership has taken a renewed interest in adding new features to it, resulting in more potential scope for me. The main downside is low technical-learning as mentioned above, and I've heard this same remark being mentioned by senior engineers who have joined from other companies as well.

2. If I decide to switch companies, how do I bridge the lack of technical expertise that's expected for my level? When a recruiter views my resume, the technologies that I've used at work and as part of side-projects are all over the place, without a clear specialization. Although I'm confident that I can pick up these stacks without trouble on the job if needed, I feel underconfident in them in an interview setting.

Show more
1.2K Views
6 Likes
3 Comments
6 months ago

Worried about Q1 2023 performance cycle

Mid-Level Software Engineer [SDE 2] at Amazon profile pic
Mid-Level Software Engineer [SDE 2] at Amazon

Since Dec 2021 to Aug 2022, My managers changed 4 times after and I got promoted from sde1 to 2. Due to multiple projects and managers, I could not take ownership as I was still in ramp up phase but manager was expecting more at the SDE2 level, pointing issues, demotivating. So I took internal transfer to a different team. I am in this new team for 3 months. 1 month - I took to even understand the basics. Manager left and new manager joined. I had to go on vacation for 15 days. I don't have metrics to show that I am performing at the SDE2 level because

  1. I didn't get design projects (design phase has already been completed by the time I joined this team).
  2. No OPS, this is a new product. There are no operational tasks. Working on beta launch.
  3. I am the last person who joined this team. I don't have anyone to become mentor since I have limited knowledge on this new team and work
  4. Have not taken interviews due to hiring freeze

Worried about Q1 performance cycle in 2023. 2022 was difficult for me to show any impact. Is there anything I can do now to not get low rating in Q1?

At this point, I am no more interested in work and just want to leave due to lack of mentorship. I have a buddy who answers questions if I ask in this team but I don't have anyone to mentor me to guide me to see what kind of projects I can work, coming up with the initiatives. I feel stuck. There are no hirings happening outside and inside the company. What can I do to proceed further?

Show more
114 Views
0 Likes
2 Comments
6 months ago

Assigned too difficult work, what can I do?

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

I'm mid level, new to the company.

I got assigned a chunk of a bigger project owned by a staff level engineer, let's call him X, who has worked on the product for a long time and has a lot of context.

Things that were new to me: the language, the tool chain, product context. The codebase is several years old.

My skip level manager (1 level above my direct manager) once encouraged that I should aim to finish my work in less than 2x the amount of time it would take X to do it (but besides this I received no pressure, or reminder to push for this target from managers).

This was overly ambitious. I worked longer hours and harder than anyone around, including weekends but still could not finish it in 3x the amount of time initially estimated.

The staff engineer overestimated what I can do too. He's very willing to explain but I had a hard time mapping his high level explanation to what happens at the code level.

I could not tell if the standard here is high or the task is too hard. So I leaned towards putting in more effort rather than voicing my concern.

I also did not have a good sense of "are these unknown parts of the code base grok-able with a little bit of time or do they require a lot of time?" to estimate time spent up front.

In the end I got some barebone thing out and he took over. Still took him a couple more weeks to get the thing finished. Along the way he solved some problems I'm sure I have no chance of solving in that timespan.

With this evidence I was sure the task was legitimately too hard for me and was comfortable letting my manager know my opinion.

Back up a little bit, when I started working on the project, my manager knew I could not stick to the original timeline set by the engineer and encouraged me to take my time to learn the codebase. What is puzzling is my manager did not tell the engineer about this unrealistic estimate. The engineer reports to a different manager and has been around way longer than my manager.

Maybe there is some politics going on that I'm not aware of.

Anyway this has been a very stressful experience.

What could I do better? What should I do to mitigate any harm done through this experience?

Show more
134 Views
3 Likes
2 Comments
6 months ago

What kind of organisations should a person join at different points in their career?

Senior Software Engineer at Grab profile pic
Senior Software Engineer at Grab

Part 1: Before Joining an organisation

  1. How can one identify the best kind of organisation to join at different point in one's career? I understand that the advice to this question may not be a prescription for all, but how can one identify places that would help them to maximize their learning and growth. For several other people, different parameters may be important for them as well such as work-life balance. Personally, I feel that WLB is dependent on a person more than that on the organisation. Thoughts?
  2. Quite often we feel that growth may be fast paced at startups, but there can be startups that do and don't promote the growth of a person. Given that there is no list out there to check, how can one make the best suited decisions for their career, not landing at a place they should not be at? What kind of research can a person do before joining an organisation?

Part 2: After joining an organisation

  1. Given that a person has joined an organisation, what are the kind of signals that they can identify to see whether the organisation is supportive of their career growth and is indeed the right place to be, for them?
  2. On several anonymous portals, there are people from the organisation that will talk poorly about an organisation when things are not going good for them. Managers can quite often paint a really rosy picture about the place. How do you identify the honest signal from the noise all around?
  3. If you find an organisation not good for you after you join there, how quick is it too quick to leave? How much time should you spend there before you can make a judgement about the same?
Show more
165 Views
5 Likes
6 Comments
9 months ago