This collection represents the best of what Taro has to offer, personally curated by Alex and Rahul. If you're short on time, go through the content here.
I am a recently joined M/L engineer at Meta and working in ads domain. I am stuck for last few weeks in verifying a change. Essentially, it involves multiple systems built, request routing and looking for the expected changes. Tried reaching out to T/Ls and internal users. Even politely asked team / outside to ramp me up in the domain but nobody responded positively. They all give me pointers to some internal documentation or workplace group to ask questions. I feel I am really stuck. I have regular updates meeting on Monday.
Here's 2 things about how the updates work:
Anyone willing to share their experiences?
I'm working remote and I feel I may not be more visible in what I'm doing:
Please guide me.
I see a lot of emphasis on being :linkedin: famous these days. While a lot of it is valuable content, I wonder what's the motivation behind it? What's in it for very senior engineers?
I am a MS in CS graduating this December and am looking for SWE or ML related roles in the USA. I am applying to many places but have not received followups in the form of an OA/interview. I had the same problem when I applied to internships last year and didnt have much luck even later. Since then I have improved my resume and have started applying early but still fear the same outcome.
It would be great if someone could help me with suggestions on why this is happening and some advice to overcome it.
I've noticed a trend where despite passing recruiter screens as well as initial technical screens, the "on-site" phase with a full interview loop has been a barrier for me. This has happened at both start-ups as well as public companies (not Big Tech, but publicly traded). As for any glaring mistakes, maybe I just go too far down a given rabbit hole, or just don't code up the perfect solution immediately and instead have to actually work through the problem-solving and having that dialogue with the interviewer.
How much of this problem is down to the market or forces out of my control, and how much can I actually influence? The technical questions themselves are easier than the ones I answered when I interviewed (and got hired) at FAANG two summers ago.
I really don't feel good blaming things on blind luck or random chance, but it's either that or the hiring bar is literally absolute perfection.
I'm a Computer Science student, and I'm currently looking for software engineering internships. I graduate in ~1 year or so, so I'm interested in how interviews work for full-time entry-level positions as well.
Companies are so different and ask various questions - How can you predict with decent accuracy what's going to be on their interviews? Also are behavioral questions in a tech interview generally the same for most companies?
I wanted to ask how do startup interviews generally work and in what ways do they differ from interviews at Big Tech companies?
This is not a typical question for Taro community, but l'm here to vent, and looking for honest advice. I'm a working mother at one of MAANG companies. I am a senior engineer, and currently working in a very competitive team that has very poor work life balance. I love my project and l've been getting good ratings so far and everyone is happy with my performance whether it's my manager, TL, DS, PM or XFN partners, according to their feedback for me during PSC.
However, I've been mentally stressed for months now about meeting the expectations and finishing my work while also meeting my kids expectations and having to deal with their emotions and other stuff, taking them to activities and playdates, ... etc and I don't get much help from my husband due to his larger responsibilities at work. I don't Iike to be an average engineer, as l've been used to excelling in my studies and work, it's a mental thing, perfectionism I believe. Should I just quit my job and look for a more relaxed one, if it exists? I’m at a good point in my career now and have already built very good relationships with everyone, and I’m afraid if I will regret this decision later if I don’t find a good alternative.
As I read through some of the technical design docs / OKRs on the team, I've noticed some fellow engineers put out some really thoughtful comments (especially the more senior folks), however coming up with such feedback observations is not always super intuitive. As a new-hire junior, I'm looking to build up this skill of conducting an effective design / OKR review.
What do you usually look for / pinpoint when reviewing a design doc or OKR for a new project? How can I still provide good feedback despite not having the same level of exposure / experience?
Question was inspired by . In it, he talked about how he was able to get his role at Course Hero because it was a scrappy startup when he joined, and was willing to take bets.
Do you have advice on how to find similar startups? And also connect with startup founders (and not get ghosted)?
Some consequent questions:
Thanks for any advice or help!
I’ve been a senior FEE at Amazon for almost a year now, and I’m still figuring out time management.
Sometimes I get overly involved in others’ tasks, or have too many meetings, or get overwhelmed by all the new campaigns and estimation requests constantly coming through the door while we’re in the middle of meeting deadlines.
How do senior FAANG engineers balance their priorities without overworking or burning out?
P.S. it’d be amazing if Taro can get Steve Huynh (PE at Amazon) to talk about this topic in detail.
I joined under leveled in a company. My mgr and skip know it.
But they are assigning tasks which are L+2 level. If I am talking promotion they are turning the other way.
How to smartly communicate that I won't do such high level work unless they get serious about promotion?
I have been wanting improve my technical understanding on what I am working on:
What other steps can I take to enhance my technical influence, and then reach that senior level?
I have realized that my current role is not aligning with my interests due to various reasons, including unsupportive teammates and limited learning opportunities. I am waiting for the right opportunity to transition to a different team and take on a completely new role. In the meantime, I’m working on building side projects with respect to my new role. This transition might take around 6 months to 1 year.
While I am here with my current team, I am trying to fulfill the minimum job requirements. My question is whether I should maintain a decent rapport with my current teammates during this time, such as having 1:1 meetings.
Additionally, I would like to know what kind of teammates are worth connecting with, and how much time and effort should be invested in maintaining those connections when I know this is not the right place for me.
I recently started a new position and I'm facing challenges with my manager's communication style. It's making my onboarding process difficult and I've noticed it's affecting our team's culture.
Environment & Manager:
Speaking with peers, it's clear I'm not the only one feeling overwhelmed. Our onboarding process seems disjointed and the team's morale is low due to constant shifts in priorities. This all seems to link back to our manager's communication style.
While I understand I'm new and might not have the full picture, I believe this issue is beyond just my experience. I'm looking for advice from:
With your guidance, I hope to find a sense of balance and detachment, focusing on my role while navigating these challenges.
I genuinely want to make the best out of my current role and contribute positively to my team. Your insights and advice will be invaluable. Thank you in advance.
I have been seeking to develop habits / follow a system to increase code quality, both in terms of readability and number of functional issues. I have come up with a few ideas I have listed below but I am curious what other people have been trying out! Have any of the below worked for you? What specific steps do you take to ensure code quality?
What skills are essential for becoming a proficient software engineer which helps them to thrive in any tech domain and adapt to various situations?
Could you provide a list of items that one should be mindful of to excel in real-time scenarios? For instance, focusing on learning front-end and back-end development, knowing basics of web something like that.
Given the current economic volatility and uncertainty as well as the hard-to-measure business value of cost centre teams (like infrastructure or platform), would it be sensible to join such a team?
As an intern focusing on full-stack engineering, specifically the design and development of web interfaces for business applications, I'm eager to understand the key accomplishments that would strongly resonate with future recruiters in the full-stack web development space.
Could you advise me on the desirable goals (the [X]s) that I should target so that I can devise effective strategies ([Z]) to attain them, thus enhancing the appeal of my resume? Specifically, I'm interested in outcomes that can be quantified or measured ([Y]), as this format seems prevalent and persuasive in successful resumes.
I am working on a cool side project (full stack web app) which can genuinely be used and is quite helpful based on feedback I've gotten from friends who have used a prototype version. I want to actually get it out to a user base, and had a few questions:
1. How and where do I host it to keep the costs down?
I've built the backend REST API in Golang and Gin, and it uses a postgres DB to store the data. The frontend I have not started but, it will be built with React with Vite. I'm not sure what the best cost effective way of hosting it is, especially since I am planning on making this app free to use (or perhaps it is time to find a way to monetise it to cover costs). It was originally on AWS but the monthly fees were too much and I had to take it down.
(also note that I am only an intern / grad level engineer, with most of my experience in frontend, so my infrastructure knowledge is very limited)
2. How do I promote it and let people know about it?
How do I market it for free, and let people know about it and try to use it? I have some knowledge in SEO, but that is about it. Social media, Reddit and things like that come to mind, but I don't have a following on anything.
The goal is to build something genuinely helpful for people while having something cool to show off to potential employers, while not costing much money as I have no income right now.
I am a mid-level software engineer and expecting layoff in the coming month. As the market situation is very tight right now, I am thinking to take a break to give myself enough time to prepare and land a good opportunity instead of just accepting something which is below my calibre. I have 10+ years of experience and never had a career gap in my resume. How much gap in a resume is acceptable and not questioned (or frowned upon) by recruiters or hiring managers? Blind posts tell me that it is taking some people 6 months or even 8 months to land into a new role.
I'm part of a team of 10 and my team is barely 3 months old, with many of us having joined this team very recently. I would love to start some initiatives to help our team bond and get closer as a team. For context, the team very distributed (3 different locations) and travel budgets are tight :(
What are some of the most effective tools you've used and/or seen to cultivate a sense of camaraderie amongst teammates?
I work for a service-based company as a software engineer. I've been working here for two years.
I want to change jobs with a better organization, ideally a tech giant or a product-based company. Someone I know who works as an SDE3 Level Engineer at one of the companies I am pursuing is very helpful. He is always willing to assist.
How I can benefit from his experience and assist in achieving my goal of changing jobs while also advancing my career? Should I try to put together a growth plan to track my progress toward my goal?
Also, what can I do to provide value to my mentor? When the mentor works for a different company, is it very difficult to be of value?
I was informed by my previous manager that once we move teams, promo is "reset" i.e. only the work in the new team counts for the promo cycle (despite being on the same job ladder of TSC, DE etc).
I am currently at L4 and the role I am going into is scoped for L5 (they were targeting a L5 hire). Given I am changing team mid-year, I am not sure I can get a rating beyond SI in the Jan GRAD cycle.
What is the best way to work with my manager to secure an L5 promo and what timeline is realistic for this promotion at Google (I was targeting next August)?
Background: I completed my engineering degree from a tier 3 college in India and have been working as a software engineer in an early-stage startup in the UAE for the past 7 years.
I have always had a desire to start my own company, and though I attempted it twice in the past, unfortunately, those endeavors didn't succeed.
I neither have worked for a renowned company nor attended a prestigious college. Consequently, I also lack a strong professional network. This makes me wonder if pursuing an MBA from a reputable college would be beneficial for my entrepreneurial aspirations.
Hi all. I joined AWS after university and recently got laid off. I have 2YOE at AWS and a 1 year internship at NASA.
During undergrad the only thing I stood out for was having multiple publications. I suspect really talented undergrads in CS programs where targetting FAANG so there wasn't much competition. Maybe I was good at research though.
I am a US Citizen and I went to a medium tier university for undergrad. The name is recognizable but it's not impressive. What kinds of doors does attending a top university for MS CS open for me? I might be able to get into a top school like PHYMS.
Most people tell me that top schools are not useful after getting a couple YOE. I remember I was talking with someone that went to MIT for undergrad and they told me that there is a company that will basically give students $100,000 to do a startup and all they needed was an idea. They told me that it was pretty easy to get and many people got that at MIT. That's not something that would ever happen at my university.
I have some concerns:
First of all, I'm a huge fan of Alex & Rahul and I want to grow in this community together with mentors, seniors & humans.
But lately being in meetings I've stopped asking much more questions to my seniors because they come with limited knowledge whereas GPT can follow up with me can guide me expertly. Whereas it can even give me expert advise in tech career growth and many such areas.
Even I don't even open stack overflow now.
We are building a separate product with in a product based company most of the features are crafted just to impress the managers.
During the demo hacks are used to adjust the situation. Though I've recently realised even the API design and system design is not scalable. They are just build so that the current UX is displayed, too much hard coupling and meaningless design.
The HTTP response is dynamic as the demos were build on web and the back -end developers are not understanding that it is difficult to handle in a strictly typed languages.
I get by saying today, I'll write clean code and do my work neatly no matter what others are doing. Though I want to know how do I communicate well with them and build solid products, so that we make something re-suable and independent and sell it not just part of the current product but in terms of public APIs like Twitter, Reddit.
Lately I feel like simply discussing in these lines creates friction, but I have to speak in gentler way to get the job done effectively :)
When I look at my life, there's a lot of social media and technology services I use:
I'm trying to develop healthy habits around technology use to facilitate deep work. This involves limiting my exposure to technology.
One strategy I think is a good one is batching checking these things. So only check content sites weekly. A more extreme strategy and one I'm not yet prepared to make is getting rid of my smartphone so I can't check content as often.
Do people have other strategies/habits which work for them or can describe their relationships with these services?
Hi guys to me the most difficult part of building an android apps is coming up with an idea of what to build. To me it feels like there are almost no android apps that I can build that are unique since it feels like almost any android app idea I come up with, someone else has already built it or used my idea. What is your guys advice on this situation especially when I'm trying to build an app with the goal of attracting a lot of users?
And not only equates story points to hours but is constantly looking at your story points and tries to lower them in an effort to push more work to you. I feel like I'm an assembly line worker instead of a software engineer that solves problems. Have any of you experienced anything similar?
I'm currently a frontend engineer at mastercard with 3 years of experience. I've been thinking about my next career move and do want to increase my compensation significantly within the next year. Outside a promotion, I can start leetcoding (I'm very out of touch atm) and try to land a higher paying job. But the other option is to learn blockchain and try to break into that field as it is more niche, maybe more high paying, and competition would be less too. But a quick glance at blockchain jobs on linkedIn wasn't very convincing as most jobs were asking for staff level devs. What do you guys think is the best avenue? Learn a niche technology or go the traditional route of leetcoding but has also has a plethora of competition especially in the current economy?
Appreciate your input!
I just joined a brand new team, formed 6 weeks ago. This job is a big step up in responsibility for me, and it's asking me to operate in a manner that I'm unfamiliar with, such as building OKRs and roadmaps for my team - these OKRs and roadmaps will then be used by our cross functional partners. I feel an immense sense of responsibility that I'm not sure I can uphold my end of the bargain, since I feel like I simply there's so much unknown around product requirements and technical constraints. I don't know if I just power through it by working more to discover some of these constraints (which is what I'm mostly trying to do right now).
For the record, my manager says I'm doing great having recently joined the team. However, I constantly feel like I'm behind because I think I should be giving everyone the feeling I've got things under control, but I don't think I'm giving that impression (because that's not true...). How do I deal with this feeling? I feel like I will be feeling this way for some time since I think I have a lot to learn...
I recently found myself in a fortunate yet challenging situation due to a layoff. I have been granted a two-months period plus optional month(s) in lieu of severance, to secure my next job as I need a visa sponsorship. I aim to land a senior mobile developer role here in the UK, in any non-big tech company (tier 3/4). Considering the urgency of securing a visa, I am open to exploring any roles with sponsorship.
To make the most of this time, here is how I am spending my time so far, I would appreciate any input and suggestions to make the most out of this situation.
Dedicate 2 hours daily to solving easy LeetCode problems - some tier 3/4 companies do ask some easy/medium questions
Spend 2 hours daily applying for jobs on LinkedIn, Dm'ng connections, seeking referrals etc
2/3 hours Develop a side mobile app project to practice and familiarize with recent patterns - most likely needed to succeed in take-home tests.
Behaviour and system design - study and practice only when I have those rounds scheduled.
I wonder if there are any other aspects I should optimize for during this period. Are there any specific areas or resources you recommend focusing on to maximize my chances of success?
How do you keep up with everything that is happening on the team with different projects, doc designs and code reviews?
I work in as an iOS engineer. My current company is a startup that's scaling up fast. In classic startup fashion, testing was historically not a top priority here. As a consequence, we struggle with lots of manual QAing and low code confidence when modifying pieces of poorly tested legacy code.
This has improved in the past year simply by unit testing every new piece of code by default and by introducing unit tests in legacy code as we touch it, boy scouting style.
At this point, I think we need to step it up and I'm looking forward to formalising a testing strategy for our mobile team.
Here are some ideas I have:
What other testing strategies can I propose to establish some standard we can use to further improve our code confidence, reduce bugs, and rely more on automated testing?
How do the top tier tech companies approach mobile testing?
Hi guys, I found an interesting point in another thread and I don't know, what should be a correct response to it.
Here is it:
"You spent 12 hours of work on an issue and got a working solution. You submit a PR with only a day left before the sprint ends. One of your coworkers looks at your code, thinks it's good enough, but suggests a better solution you haven't thought of. What do you do?"
Especially, what if I have a bigger feature, spent one week for it and need another 3 days, if I will change my code. What would you do?
I am a newly hired Senior Software Engineer. I worked at FAANG before but have never been in a senior role. I am currently in week 3 of my new role. My manager gave me expectation to ramp up in 3 months but with very little further guidance. The codebase is huge with very little and mostly outdated documentation.
What do I need to do to ramp up as fast as possible and position myself for promotion to Staff within next 1-2 years? I read that there are people ramped up within 1 month into their jobs on Taro. Hope you can share your tips and tricks.
This occurred to me at work today
I was working on a task for which I completed coding and and testing. I showed the code to some of our Staff engineer after standup. The first thing he asked me is why is this fix working. I did try to understand how my fix is working. However after I discussed this with him it was clear that my understanding was superficial. Apart from that, the fix I made even though it works in the current version might break if the library version is upgraded coz I am depending on some internal behavior.
Considering that I have 10 years of experience it felt very disappointing that I could not think of this on my own.
I have recently been laid-off, I was working as a Frontend developer for almost two years. I have prepared my resume and started applying for roles but I have not been in touch with the interview scene in a while. Should I just grind Leetcode?
I often find myself in situations with engineers on the level above me (I'm a mid) where they are grasping the mental models, comprehending the code Infront of them and managing to remember a lot of context that helps them as they work through problems. I'm personally left feeling a bit dazed and confused. I was wondering if there are any more senior engineers here who recall having similar experiences when they were a lower level and how they overcame those feelings to move more productively through code when working with someone else.
I'm in the processes of writing unit tests for a project that had none. At times I'll need help learning how to work with the mocking library Mockk. My manager has experience and when he has time and quickly unblock. The problem is he is usually at meetings and can only give me so much time. My team is small and from who I've asked only my manager has knowledge of this Library.
What can I do to not fall behind and continue to deliver tasks? I've followed tutorials and articles and even chatgpt but sometimes those don't have the answers to my questions.
Even being a Taro premium user, I'm unable to participate in all the events, though I heavily need mentorship, seems like a roadblock for me because on LinkedIn I see so many posts, it's very difficult to catch up.
I have a L6 equivalent MLE interview from a FAANG company.
Since last time I had interview for L4. I would like to understand what kind of quality difference does L6 show in an interview (coding/behavioral/system design -- ML)?
How would you demonstrate staff level quality in the interview rounds?
I have been chasing the SDE-3 promotion from last one year. It was denied in the year end review cycle in December.
In this cycle (Jan - June), I have ticked almost all the checkpoints as per the firm's SDE-3 competency matrix and I have a good amount of documentation around it as well which I have submitted to my manager.
I want to let my manager and skip (Director) know that I will leave if I am not promoted in this cycle as I don't think there are any negative data points against me.
Any suggestions about how should I subtly carry out this conversation?
Always been on the fence here whether an MBA helps me boost my visibility, help me learn more business skills and builds a well rounded profile than "you're just another average software engineer" which could help me get into management track and above faster than my peers?
In other industries, having an MBA is a requirement, but not so much in tech yet, apparently.
Happy to hear back thoughts form folks about this with some recommendations
I have just joined a new team, and have my first coding task. I am currently terrified about taking the first step and writing some code and testing it.
I have spent a lot of time researching solutions, but have found myself bit in the past because of a lack of testing and research, and also am just terrified of breaking things.
What are some suggestions for getting over this fear, and how can I be more confident that the testing and implementation cover all edge cases and won't have bugs?
When working on a new task, I often find myself asked to estimate how long a task may take. Luckily, my team is pretty forgiving, but a critical step will be to start more accurately estimating tasks.
How do you get better at breaking down tasks to understand what needs to get done, and then giving proper estimations for how long those tasks will take?
Just got an INCREDIBLE job offer (new company) after being under-stimulated and feeling super unvalued by my current team.
I have completed work on all my projects and have no open threads. My last performance review was strong and in there was a mention of promoting me during the fall cycle.
But I have some questions:
I genuinely hate this place and my manager was a total jerk to me until I learned to just keep my mouth shut and avoid certain conversations. I don't want to be pressed during the exit interview or conversations as I'm leaving and put my foot in my mouth and burn bridges -- especially with everyone and their mom getting laid off right now.
In my current role, I might get an opportunity to transition to a people manager (engineering manager) as against continue the path of individual contributor (IC).
Since I have always been an IC, I am not sure if this is the right career move for me. How would I make a decision one way or another?
I have spoken to a few team members and the sentiment towards being a people manager is negative. One has to be able to deliver through the team and hold the team accountable, one has to be detached from coding to a large extent, one has to solve inter-personal issues, one has to worry about attrition, one has to be able to hire good candidates (sell your team), one has to fight for challenging projects for your team etc.
What are some frameworks to think about this?
I didn't interact much with people during my school and college years. Now that I'm stepping into a new phase of my life (my first job), I want to improve myself.
I'll have obvious reasons to interact with my teammates, so I'll try my best to socialize as much as possible (any suggestions are welcome). But how should I go about networking with people outside my team? Should I just randomly approach someone to introduce myself? When should I do it? When they are working they would be busy, so should I catch up with people during lunch (and what can I do if my whole team generally eats lunch together)? Will it be okay to go and sit or talk with a bunch of people having some conversation, or should I try to talk with individuals first?
Also, I'll be the juniormost folk there (other than maybe interns), how fine will it be to approach anyone random (since they can be very senior, which I don't know yet)? Even if I know someone senior to me previously (like the people I met during my internship), I find it hard to start a chat and find the right balance between disturbing them and having a conversation. And in general, I won't have much context to talk about the majority of the topics.
I know I'm really clueless, so any answers or resources would be highly appreciated!
I am good at LeetCode style problem solving and can also manage system design, but I never get interview calls when I apply through the company portals. Also recruiters barely accept LinkedIn requests and even those who accept them do not respond when reached out to for an open position.
I've seen advices here in Taro that seniors should make themselves very much replaceable so that when this senior is away, someone is able to cover for them and the team could do well, which makes sense.
I thought the fact that people found the advice to be helpful, shows that making yourself replaceable isn't something that's very intuitive the first time. Like if someone didn't read the advice, they probably wouldn't have optimized for that.
I'm not quite senior yet but just curious to understand the situation (and people) better - was this thinking assumes that the amount of scope is in hyper-growth phase? Are there cases where it isn't really applicable / optimal for them to do so (and so they don't make themselves replaceable, and still do well) - then wouldn't they just continue doing it and we can't really blame them? I feel it's rare that people would change their behavior unless they really understand why.
I have about 5 YOE and trying to grow from Senior -> Staff engineer but noticing that the path is taking longer than I'd hope.
This is the case whether I try to speak to other companies and ask about interviewing at that level or try to grow within my own company.
Within my own company: Requirements unclear, seems to be more time based (just keep on shipping). Since we're on the smaller side, we don't have a clearly defined structure like FAANG.
Externally: Due to the YOE, usually discussion of Staff isn't even an option even though I think I'm doing Staff level work. In fact, they usually decline the idea before even having a chance to explain what I'm working on.
The projects I'm working on span the entire org (startup), I have multiple mentees, and org-wide impact. I will be honest and say that I don't think the projects I work on are necessarily insanely technically complex (not going out to millions of users, dealing with hyper concurrency issues, or needing to deal with large scalability issues), but they do have a large amount of scope and senior+ level management required to run them.
I think from the project management perspective, I have things nailed down pretty well.
So I wonder if I'm either missing...
I'm essentially trying to understand what my gaps might be, and the technical aspect is one I'm unsure about how relevant it is.
Would appreciate any thoughts, especially from Staff+ engineers, maybe sharing what they feel makes them a Staff vs a Senior and how much technical skills play a role vs other elements.
Hi Taro - just wanted to say thank you for the . I was wondering if you could share with the Taro community your thoughts on how managers evaluate their employees in detail (you mentioned some things like internal tools that one could go and see how many PRs, discussions, comments someone had in Github/JIRA and who all were at the top of that baseline followed by the bottom rankers; so I would like more specifics if possible).
Although no one likes it, it would be good to understand how "stack ranking" works at FAANG - and how some managers evaluate on this criteria, despite it being a practice that sucks. In this way I can just be more sure I'm hitting a baseline - even if it's invisible because I can take daily steps to work on my own visibility and perceived performance.
I feel like the biggest challenge right now is getting critical feedback from a manager / org (and it sounds like some companies in the FAANG space are pretty awful about it). E.g. I read about a Redditor who got let go without much notice because they weren't up to par (decided by a skip level manager) in terms of their code and daily output (while the direct manager and everyone else had been communicating often that this employee's performance was great). But this goes back to the idea that 'great' is 'average' lately, and it's way harder to hit exceeds and greatly exceeds on performance.
Thank you in advance!
I have been working in the industry for almost 8 years, but I often feel like an average engineer. I spend most of my time working, but I haven't achieved any significant accomplishments in my career.
I was able to get jobs at Pinterest and the company that used to be called Meta because I memorized coding interview questions and exaggerated my achievements. However, I don't have the motivation to aim for promotions, and I worry that I don't have what it takes to be an outstanding engineer in the tech industry. I work every day, but I feel lost and unsure about where my career is going.
I'm worried about my future career growth and whether I will find fulfillment. Are there other people who have felt the same way but managed to overcome it and succeed?
What's the right way to balance interviewing for FAANG roles when you have a full-time job? I've heard of people carving out their morning for an interview or interview prep, so dedicating 2-3 hours. Is this reasonable? What's a minimum amount of time I should spend on interview prep or interview every day?
This question assumes I don't have trouble getting interviews and have a few lined up. The prep I have in mind is the classic DSA/Leetcode, systems design, behavioural, mock interviews, etc.
In lot of meetings I am feeling I am less knowledgeable than others and unable to add value a lot. All my peers are very smart.
When analyzing critically I feel maybe I am spending a lot of time learning and lesser doing.
What works for me is => having focus blocks. Catch is that I am getting too comfortable sometimes not having meetings. This leads to missing lot of context sometimes.
What tips does community have to to handle this pressure?
I am been working as a Senior software engineer for quite some time now. To move to the Staff level, one feedback/pointer I got was to start developing opinions on how to do certain things. When people start respecting your opinions, they start to see you as a leader.
The problem I have is, in many cases, I don't have enough relevant experience for the problem at hand. Also, I find, that in discussions I am listening more than I am speaking. Having no opinions, and finding it hard to express opinions for fear of being judged and losing respect in case my opinion is wrong, are the problems I am facing.
Is there any advice on how to develop these skills?
I have 10 years work experience, and I have previously worked at a FAANG that had no levels (big clue here!). So regardless of the scope of work, we were Senior. That kinda played at a disadvantage to me when I found my self looking for a job due to a layoff and visa issues.
I believe I am working at staff capacity, leading 5 folks, driving initiative. But I feel like I am unable to "show" Impact. We have metrics at each level. I have addressed the same with my manager, went over the metrics and identified gaps and took action.
I got lukewarm response, at best from other staff engineers and management. No idea if at all I will be considered for promo, and I get no response besides stating, it is a lagging promo.
Right now, I have no visa issues, so I can hop around other companies, I want to move back to a FAANG+ company because of higher pay.
Question is :
How do I ascertain my promotion?
and which of the following is a good bet:
I have been repeatedly told that I have a tendency to drop things when doing context switch between multiple tasks. How to manage my tasks effectively so that I can minimize this pattern?
What are some of the must read books for new software engineers which will prepare them for the real world?
Especially ones that can help me get acquainted with:
My goal is to become fast at going from ideas to working solutions (thinking of approaches, thinking about organization of my code into functions, classes, etc).
What should I think about and focus my efforts on when I get a project and a role that's of (1) bigger scope and (2) tighter deadlines than I'm used to?
A reorg has suddenly thrust me into the TL role for a very high-profile project on a new team. This project is part of OKRs 4 levels up the chain and has the eyes of several director level people across different functions. From what I've heard, this project already suffered from "too many cooks in the kitchen" syndrome, and on top of that, this project has delivery date set in Q3, which is quite aggressive from our org's standards.
I've landed in this position because I was transitioning to this team prior to the reorg, AND the EM/TL/PM/2 L5s has been reorg'ed out, and they needed someone who had previously TL experience and was willing to do it.
I've previously TL'ed a team of 4 people, with important but "normal" priority projects. This is clearly a great opportunity for me, but I am afraid I'm not ready to handle it and I'm at a bit of loss as to what I should be focusing most of my effort on. With the tight deadlines I have, I feel like every day will be a battle so any advice on how to approach this will be appreciated.
I have one other L5 supporting me who I trust very much and a new EM who's rumored to be very good. We currently have 4 SWE including me and we'll be getting more at least 4 more engineers, with lots of adjacent teams helping out. I do also have good standing and connection in the org overall and I know how to get a "normal" project in our org over the line (I did an in-org transfer).
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.
I've read enough answers on this platform to know that Alex and Rahul are huge fans of learning Android, both because it's a well-established area of tech (bigger than web) and because you can see how well your apps do. They always mention learning Android, but from my limited understanding, React Native gets you iOS and web as well, and is similar to regular web-dev (could totally be off here).
Isn't it more bang-for-your-buck to learn React Native and perhaps a better use of time?
I'd like to ask for your feedback on my side project - a full-stack simulation of a ride-hailing app such as Uber or Lyft.
A bit of background first. I've been wanting to publish a personal full-stack project for a while. These were my main reasons:
Why did I choose a simulation of the Uber/Lyft app? I always found something very attractive about these apps - they're visually appealing and dynamic, with colossal architectures behind them. I thought it would be very cool to re-implement some aspects of such an app. I have also been reading the Uber engineering blog and got a glimpse of the complexity these companies are dealing with.
My final goal with this app was to have an animated map with cars picking up customers, driving them across the map and dropping them off at their destinations. Customers would post ride requests and the system would match them with the nearest drivers. The simulation would run on the backend, and the frontend map would show the action in real-time.
I started working on the project last autumn. I've spent around 300 hours working on it and you can see the result in the links above.
I'd love to get your feedback to improve or extend this app and my blog, keeping in mind my objectives:
Possible additions or improvements include:
As for my previous background - I've been an engineer for ~4.5 years, most of my experience is from a small startup (series B). I consider myself a full-stack engineer but going forward, I aim to specialize more in the backend. Therefore, the project should strongly communicate my backend skills. For my next role, I also prefer backend positions to full-stack ones.
Many thanks if you've read this long post to the end. I'll be very grateful for any tips on how to make this project more appealing 🙏🏼
I've been working remotely for a startup for almost a year now and noticed that all my interactions with my co-workers are purely transactional. Software engineering is a team sport and I have never experienced such apathy towards the people I work with. Is this the default in remote work? How do folks who are 100% remote find ways to build relationships with other engineers?
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.
Hello, I have been thinking of taking a career break for some time now, and I would appreciate your input on the potential impact this decision may have on my future job search. Specifically, I am concerned about whether or not a career break would be perceived as harmful by prospective employers.
To provide more context, I have worked as a software engineer for about six years. About half a year ago, I started feeling burnt out and decided to switch to my current company. My situation has not been getting better. I am considering taking a 3-6 month break to recharge, and potentially explore new interests. My primary concerns are:
Any advice, stories, or insights you can share would be greatly appreciated.
My team took over a system that we didn't write about a year ago, and it is the only system my team owns. It is a highly critical service in my org.
I was happily making changes to it all of last year, but I broke production twice in a few months, and then almost a third time, and now I have lost faith in my coding ability.
The benefits are that it prevented other teams from experiencing these issues and I took full ownership of resolving them, however, the outages seem to be something that is hanging over my EM's head in spite of it.
How do you get out of this rut?
I'm on-call this week and I'm met once again with a strong sense of not having a clue what I'm doing. I know the majority of the job of engineering is trying to work within a legacy system but I feel like I'm missing tactics to help me make any progress at all. That and having to switch contexts to address alarms and queries has meant that I actually made no progress today whatsoever so this is part rant and part question - any tips on confronting a wall of overwhelm and making progress towards the most impactful bugs?
I'm imagining a 2x2 matrix where one side has work-hard/not work-hard and the other has advance/don't-advance in career.
I think it's safe to say that one box has very few people in it: not work-hard and advance. I'm sure there are people who don't work-hard and get promoted, but these people must have something that gets them promoted such as great communication skills and the ability to sell themselves, so at least in that sense, they are unique and productive.
I would think most software engineers would fall into the work-hard/don't-advance block because they focus on the wrong things. In my view, you either want to be in the not-work-hard/don't-advance block or the work-hard/advance block, since the don't work-hard/advance block is not available for most people.
My question is, is the way to get to those 2 blocks effectively the same in terms of the skill sets needed, and moving between them purely a matter of quantity or effort? That is, in order to get by at a job where I would be content to just do the necessary work and then go home, I need to learn to be productive in a short amount of time, and then if I decide that I actually do want to advance, I only need to ramp up on the time or effort I put into applying those fundamental skills?
Hopefully this question makes sense.
I am getting overwhelmed with my work, in this team for about 1 year. How should I optimize to squeeze time to help others?
Helping others gives me more joy than doing my own work :) . that is not my core work though.
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 :-
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?
I'm currently at a Tier-3 company with 3.5 YOE and get ~5 recruiters reaching out a week. Some of the messages I can automatically ignore, while some are more compelling. I tend to ignore anything consulting-oriented and am more enticed by the recruiters for specific startups who say something like "come join our series A/B/C startup founded by engineers from Uber/Stripe/Meta! We have $X Million Raised!"
I can only imagine that folks working at Tier 1 or 2 companies must be inundated with these emails and messages all the time and from better companies.
What's good practice and etiquette for handling these? I'm aware of the masterclass on and since I'm aiming for Big Tech or Unicorn, it's somewhat helpful in being able to dismiss a lot of postings.
To make this more concrete, I have 2 specific questions:
Is it worth the time responding to recruiters if the answer is no?
If my goal is Tier 1 (MegaCap Companies) and I'm at Tier 3, would it be a lot more helpful to get there via Tier 2 (Unicorns and companies people have heard of)?
Open to any other thoughts!
When learning new things, I often find that I don't know this, don't know the best practice in that, and so on. If I go down these rabbit holes, a lot of time is spent and not much progress is made in the original project. If this is a scene at work, usually there are external factors to guide you not to go down these rabbit holes, be it the deadline on a task or advice from colleagues. But how to manage this while building side projects? Especially, time after work is equally precious that you sacrificed doing other things to build a skill, and progress gives motivation. But at the same time, going down these knowledge rabbit holes also builds knowledge, and be more niche. How would you trade off knowing everything vs progress in side projects?
Continuing from the post here:
Would the suggestions in that post be different for my scenario? I have added my details below.
I know that to get to the Senior level, I have to show influence at high levels. After reading the answer to some of the questions in the community, I am not able to decide whether I should focus on building web projects or should I start building an Android app. The advantage of choosing a web project is that I already have expertise in modern frontend frameworks. My initial years of experience is in legacy backend systems(mainframes) which I think is not of much use now in Silicon valley companies.
As far as my interest level goes, I am very much inclined toward the web. But I know that app development is definitely something that helps to attract users to your product. I am a bit lost on what I should invest my time on. Considering that I have 12+ years of experience, should I do both? Will doing both Android and web both open a lot more opportunities for me?
Should I focus on building something where I can show the impact with the number of users rather than thinking about the platform (android or web) for which I start building my side projects. Should I even care about doing side projects considering I have 10+ years of work experience?
Should I target full-stack roles instead of front-end roles?
Looking for suggestions. Apologies if this question comes out as too broad and not very clear. I am open for discussion if that can help to narrow down the response.
Current TC: 220 - 240K
Every time, when my manager asked me to do some changes to the repository that is totally new to me. I became scared.
I prefer to do research by myself first. But I got lost in the new repo by reading file by file, and don't get the clarity.
So I ask the repository owner to provide documentation, mostly they don't maintain documentation, and even if they do, it is not updated or it involves a lot of detailed feature-wise documentation, which is usually not relevant to my requirement.
Then, I call the POC of that repo, but I couldn't figure out what is the right question to ask in the first call. Over time, I ping him asking questions whenever I face hurdles while achieving the requirements.
Sometimes, I put a debugger or logs to understand the flow of code.
The above processes took a lot of my time.
What is your suggestion to get clarity in the new repo such that I can complete my requirements in less time?
These days, I hear a lots of news about the new AI tools like Chat GPT, Bard and so on. Will we see a decline in requirements for software engineers in the foreseeable future? Will companies begin to prioritize AI-domain engineers over software engineering?
I asked this question on chatGPT, nothing proper not found. I need your help guys, currently I am interviewing with some companies which their Glassdoor reviews are really low and there are pretty bad reviews in terms of culture and engineering. Just wondering what is important things can I ask them to get know more about that, or is there any technique that bring this kind topics during the interview?
I'm still navigating a career switch to SWE, and I tend to get pretty overwhelmed when looking at code. I already ask a lot of questions, and I want to be more self-sufficient because my full-stack team members are pretty busy. (They are all kind and would all be willing to to take some time out of their day.)
How can I get faster at reading code on my own while balancing a team transition? I'm at the point where I understand the high-level purpose of parts of our codebase but little as to how the moving pieces all fit together.
While I understand that there is likely no magic threshold to determine the point at one needs to ask for codebase navigation guidance, a good rule of thumb would be helpful when possible.
I run into this from time to time where more Senior and Staff Engineers take interesting projects. I’m usually left with ones that take medium time and medium impact. How do I find projects for myself that expand my impact?
This is somewhat of a random question and I assume it can only help but do Github stars mean anything to big tech (1k+ stars) and is "gaming" it a good use of time? (By gaming I mean honest accumulation of stars where the project is popular but not technically challenging)
I am a tech lead for my team of 5 engineers. I am also a senior eng intending to climb up to staff level.
My manager is not very vocal or supportive and seems reluctant in terms of helping out a plan for myself. I have been working hard though. How can I work with my manager to create a promotion plan for myself and get buy-in from them?
I am not sure if I should move up the eng ladder or transition to management, but are there any guidelines for creating a written promotion plan and manage up so to speak?
Both in the context of a data structure and algorithm problem and in the context of a software problem or any problem really it is important to weigh the pros and cons and have arguments to back your decision making.
Having the knowledge to come up with several solutions is challenging - how do you get good at this? Is experience the only answer? Do you have any techniques you put in place to help with this?
I joined my current company a bit more than a year ago as an L4. Within 4 months, I'd launched a high stakes project, and after some churn in the team leadership, I was put into the role of being a tech lead to my remaining team of L3s.
As a pseudo TL, I did well in the mentorship and technical guidance responsibilities, but my code output dropped drastically (due to my projects being in the design phase which were being done by my juniors with me providing high level guidance).
In the last three months, I suffered some mental health issues. My work productivity dropped significantly during that time. I've been very open with my manager about my mental state throughout this process, and they've been very supportive of the things I need to do to recover. Around this time my team also hired an L5, who is now officially the TL.
Due to my drop in performance in the latter half of the year, I'm afraid my manager won't trust me with important projects. I wonder if I need to again prove my credentials to keep me on track for L5. I feel very low about my software development abilities.
This has made me demotivated and disinterested in my work. I took a couple weeks off, yet I don't feel like going back to work. I'm not considering changing teams due to immigration issues. I also don't want to leave a team on a low.
Any tips on turning around my motivation, and trajectory on the team? What can I change in my mindset and working style to overcome my struggles?
I'm sure Alex and Rahul talk about this in their , but wondering how to write clean code, particularly in the context of someone who doesn't have technical people available to review my pull requests in my work or in side-projects.
I'm sure this skill is almost entirely developed by working with talented people and writing a lot of code, but is there a place for resources like "Clean Code" the book or courses on Udemy?
I'm defining a career path for my company, and don't know where to start. I would like to see how Meta, Google are doing this so that I can tailor to match my smaller company.
My manager suggested that I work on the skills below to advance my career. Do you have any masterclasses or other resources to develop these skills? I added links to the resources that I know about.
* Stakeholder management
* Project management
* Design & architecture -
* Communication -
* Leadership -
How do you choose whether to use automated UI testing vs manual UI testing for a new web application being developed for the first time? For automated UI testing I am talking about using test automation frameworks such as Selenium in which you write code to simulate user interaction with the GUI (user clicks and data entry). Should you use automated testing from release 1 when the product GUI and features are not yet finalized and users may ask for UI changes? Or do you do manual testing for the first few releases until the product is stable and then do automated testing? Any good practices or guidelines for when and how to make that choice?
Hi Taro folks,
I’d like to create a doc to track my deliverables across engineering axes to make my work easier to see for my manager. This should also help with arguing for promotions down the road… does anyone have a good format for such a doc? FYI: engineering axes include project impact, people, direction, engineering excellence, etc.
I think I could get an L5 offer now if I pushed for it, but is it fine to level myself at L4 to make things easier on myself? Then I'll try to perform at L5 anyway but it will be a-ok to not quite make it.
Say a recruiter from Series C reaches out to you for a SWE role.
What all are the questions that one should ask in order to do the understand the potential of the startup so that there is less risk of layoffs when joining there, given the uncertain times.
I am aware of crunchbase website and looking at the news article that are linked there. What other homework one should during/before/after the interview process in terms of questions to ask, information to collect?
The limitation that is usually is the startups have very few employees so it is difficult to get concrete answers about the culture, WLB, actual work unless you are in their network.
Hey guys. Hope everyone is doing well. Also using AI/ML as an umbrella term throughout - feel free to correct if needed.
Senior Web Developer. Initially started from Software Development. Developed passion for Web Development and made the move. Worked my way up to Senior position. 70% backend, 30% frontend. Currently 80-90% IC, rest managerial responsibilities. 9.5 years overall. Changed companies over time. Been in various industries.
Going back and forth about moving into AI/ML. Motivation - high interest and demand. Fear - leaving web development skills behind.
My Current Solution:
Ask reputable sources about AI/ML day to days and job responsibilities. Lots of it seems to be marketing and all that glitters is not gold.
If all checks out and my passion is rooted in evidence then I would like to take few Stanford machine learning courses online. Once fundamentals are solid would like to go for masters degree in applied machine intelligence or similar. Start looking for jobs.
These are all the questions I could think of. Apologize for the length, but thought it would be helpful to give context. Please feel free to include anything else you deem helpful. Much appreciated and Happy holidays.
I watched the video I am particularly interested in the point: "Great TLs sequence their project in such a way that all the highest risk things get knocked out first". Can you please give examples of doing that in a real life? What are some examples of activities that you found higher risk than others and therefore you decided to do them first to minimize the risk?
What concrete things do I say, in a conversation with my manager to "set expectations"?
Do I say something like "I would like to ____ expectations this quarter, is it sufficient to complete project A & project B?"
What if I am new to the company, and unable to contribute meaningfully to a significant project, or there is downtime when no projects are available?
Can I say I'll fix some unknown volume of bugs this quarter?
I am usually very competitive and while I love my friends, I have this internal push to always do better than people around me. I got promoted to SWE II within a year in 2021 and I was so proud of that. However, this year my manager changed and without really knowing or understanding me, he gave me the feedback of "didn't meet expectations" in our annual performance review in Feb. I had full plans to change my company soon since I didn't feel supported by my manager. However, my father fell incredibly ill in May (still is) which canceled all my plans as I moved back home to support my family.
I have a feeling my friend who is on a different team than I am (but reports to the same manager) might get promoted to senior. She deserves it. She got different opportunities than I did but I can't help but feel a pang of jealousy knowing that all I want this coming Feb is "meets expectation" rating while my friend might get promoted. Another friend of mine switched to a company that seems incredible but I somehow feel "behind" in my career despite knowing that I will meet the career goals I have next year. I am already a million times a better software dev than I was beginning of the year. I have close relationships with my colleagues but how do I focus on my own lane and not compare myself to others?
After a certain experience there's a certain expectation from Senior Software Engineers, I think because in the beginning of my career I wasn't involved in Development and hence despite being of experience 10 years I think I may not have the design skills required to work independently on a feature.
That said, I am going through LLD questions on YouTube, to understand more about designing from scratch, while I am doing I thought if there's a way to get me upto speed even more. The reason I am asking is because apart from doing Leetcode daily I would like to spend some time daily on design aspect as well.
In summary, I want to work independently, and for that am learning from the internet. I am wondering if that's it or there's something more I can do in my free time to become better developer. Any actionable items would be great.
My team is quite small but we own a handful of critical services. Because of the small size, our on-call rotation is around 6 weeks or less but the actual load is somewhat manageable. We do not get an intolerable amount of high severity pages but get a lot of low severity tickets. We constantly work on projects that support goals for other teams that always seem to be higher priority while our tech debt grows. We have identified longer term fixes for some of recurring issues but never have the time to implement them. Most of our planned work for the upcoming year involve modernizing infrastructure or migrating existing services. I'm concerned about whether staying on this team would be conducive to my career growth.
One thing that I learnt in one of the taro videos is to choose the right project for the career growth. However, I lacked this kind of vision/ability to evaluate. What I can do to improve this weakness? Should I grow more engineering domain knowledge or should I take some business courses to further improve myself?
I have been at SDE 2 for a couple years now, and I feel like getting to SDE 3 is unnecessarily complicated. I've gone through multiple teams, and the recurring theme is that there isn't enough SDE 3 scope for me. You also need a lot of documentation (think 5+ pages) to show that you have the sufficient impact to deserve the promo, and that's really daunting as well. Any tips on how I can find that SDE 3 scope and navigate this senior promotion in general?
In quarterly conversation with my manager, for questions like how I’ve contributed to Quality or any other sub dimension I got response that I should talk about team and not only how I (as an IC) contributed. And I honestly struggle here. Any tips? How I upgrade myself to talk about impact at team/bigger level and not only at personal level?
For example: If an organisation does not value quality code but no. of features shipped, I feel it would eventually face difficulty in adding new features. Thoughts?
I often struggle with conveying more in lesser number of words. As a result, my slack messages often go in multiple paragraphs and bullet points.
I find a need to explain myself in detail, especially when trying to resolve some queries from other domains such as product managers and QA engineers. Are there some ways to make communication succinct and to the point, at the same time conveying what is necessary.
This was a feedback I have gotten once from my manager as well, though when I asked if he had some suggestions on how to work on the same, he mentioned - "Keep it short!" ¯_(ツ)_/¯
Now, I try to vet my messages after I type them before sending, but thinking if there are some ways to improve on it further.
Alex and Rahul and the other senior people on Taro have consistently emphasized how important good software engineering fundamentals are to long-term career success as a software engineer. This is in contrast to learning the latest popular framework or area of development. Can people define what those fundamentals are and how one should go about acquiring/improving them?
I'm still in school, but I will be graduating in a couple months. My goal is to get promoted as quickly as possible at a reputable company like Google. However, there are so many ways to get better as a software engineer, and I'm unsure how to prioritize all of this information. What should I focus on since I'm earlier-in-career to really unlock that fast career progression?
I'm pretty early in my career (~1 YOE), so I'm still trying to figure a lot of things out. A lot of the advice on Taro is around finding your strengths and investing more in those, but I'm unsure on exactly how to do that. I feel like I'm just going from ticket to ticket and am quite busy in general, so I don't know how to think about all this. Any tips?
My team owns a really wide set of features spanning across multiple repos and programming languages (C++, React, Angular). On top of that, each person works on pretty different areas (telemetry/data, UI components, client side api, etc.). We have a v1 of the app being maintained and a v2 currently being developed with some people working on v1 and some working on v2. It's impossible to know all the context behind every pull request.
How can I give quality code reviews? At most I can only provide feedback to simple code logic and really well written PR descriptions. Should I be trying to private message the developer for each PR to understand more, or is this just something that comes with time?
I've heard Alex, Rahul, and other engineers within Taro talk about handholding when joining a new company for all engineers and for newer engineers in general.
What does it mean that an engineer doesn't require handholding anymore? Does this mean the frequency of the questions gets diminished or is it more about needing as much initial help to start tasks or something else entirely?
I am a little worried about the potential of layoffs at Meta. I am not sure if I will get a needs support. I have been working on doing a design doc for the past month, and my manager has generally been very positive towards me. But I feel like I might get a NS due to my not submitting as many diffs and accepting as many diffs. I joined my team less than three months ago, and still technically ramping up. I would be sad if I got a NS or a pip, but it wouldn't destroy me.I guess my question would be how can I best buffer myself during these next few months, and how can I avoid situations like this in the future? What should I do if I do get put on PIP/NS?
I’m currently working as a Data Engineer for a mid-sized (1500 people) investment-services corporation. The company has been around for a long time and makes money, but it definitely isn’t a tech-first company (e.g. it refers to the software side as “I.T.”, has tons of meetings, approvals needed to install almost anything on my computer, including VSCode).
I want to get into FAANG as a software engineer because I want to move away from the business/data side of things and closer to the engineer side of things. On my current team, I’m the lone data-engineer (will be joined by another in a few months) and as someone with <3 years of experience, I know that my growth is being stunted.
I’m currently grinding AlgoExpert to prep for interviews.
How should I think about the circumstances under which it would be worthwhile to quit in order to prep (full time) for FAANG interviews? Here’s what I can come up with in terms of current pros/cons of quitting:
Pro’s of quitting:
How does the answer change (if at all) if I manage to land interviews with a bunch of different FAANG companies (say 5+) and I’m struggling to schedule all the time for interviews, prep for them, and do minimal work at my current job?
Thoughts are appreciated!
I have recently joined this company and I am trying to learn and I am clocking 12 hours everyday. Inspite of that I am doubting my abilities and I have manager who doesn't actually listen.. and instead of helping me navigate through this.. he is just on repeat saying I have to deliver this urgently .. and I am not picking up fast enough..
Prepping for interviews always feels detrimental to actual career growth. At the same time, what are the things one should look out for to avoid getting laid off and jump ship when things are about to go south.
One advice mentioned often is to look for finances of the company, but I am not aware how to analyse it. Can you help with resources for the same?
I'm thinking to glance over some materials about the tech stack that the new team uses before joining them. What are some other ways to best prepare for the new team so that my onboarding process can be as smooth as possible and start performing at my level or higher?
I recently made a string of silly mistakes related to a particular project that led to a few bugs being deployed to production. I think I incrementally got more and more overwhelmed and stressed by the project because my initial fix caused a bug and from there I fixed that bug and inadvertently caused others.
I'm concerned about how this might play out with my EM. How I can best approach owning this set of silly mistakes without it having a negative impact on my reputation due to my low code quality mistakes partly caused by the stress of the situation?
My tech lead asked me to write up a mini bug report for our our engineering retro and this morning my EM was asking about what the report was for because I had written it down as part of my weekly goals in our stand ups. My EM has low context on the complexity of the work we do and is far from the code - tending to over index on any signal he come across.
I just went through my performance review and I'm meeting expectations so I don't have a formal review for a while. I'm about to go on vacation for a while so I'm hoping this fades into the past but still I'm not sure exactly how to play this now so it comes out in my favour before I go away.
I am good at coding, and I am able to deliver features to prod. However, when it comes to technical writing, like writing software design document, coming up with state transition diagram, block diagram, I am struggling with it a lot. I am not from computer science background, so I am not well versed in coming up flow chart, sequence diagram and state transition diagram. How to improve on these areas? Because of this, I am finding it difficult to communicate my idea to principal engineers/ architects. How can I improve on this?
I've had a lot of friends tell me that they didn't negotiate their offer, so I'm wondering whether it makes sense to negotiate. What are the costs of trying - Is it possible to lose anything if you try to negotiate and fail?
Lately, I have been finding myself with a lot of free time and am unable to shake this feeling that I am not "doing enough." After finishing my school work, I usually just go to the gym, hang out with friends, or play video games.
Is there anything else I can do to further improve myself as an engineer and set myself up for success later on? Perhaps some books or resources to read.
I've tried working on some side projects, but honestly find it hard to follow through with them due to lack of urgency with no deadlines and prior fatigue from working on school assignments.
I'm a native Android developer, and I really enjoy doing the work. However, I want to make sure that I'm well setup across my career overall - Does Android have good prospects in tech going forward? On a related note, how does it correlate to future opportunities and growth within Amazon?
One thing I'd love to ask about is effective pressure management. Coming from small cos to a big company like Meta; despite startups having a reputation for chaos, I personally find there's a larger number of failure modes at big companies - a review taking too long, lack of good logging, misalignment, which can lead to either a project being derailed or just flat out failing. I've personally gotten better myself at pressure management (trial by fire); but would love to have thoughts from folks on how they work on this skill!
I've been debating this though for a while. Is it worth it to go for a principal role (61 -> 62 -> 63 -> 64) or just go and build something your own
Came across on CSCQ where the original poster asks about what these missing essential skills. One reply had me wondering, how I can actually learn these points:
I am trying to get promoted to Lead Software Engineer, which relates to an E5 level at Meta, if I am not wrong. I have seen several engineers in my organisation coast at the current level I am.
I wanted to understand if there are some key things I should be doing in order to perform at a Tech Lead level, so that I am promoted to one as well. This would be a bit long question, but please bear with me.
Following are some of the things highlighted in a few discussions:
Another aspect is that my team would be getting changed soon due to organisational requirements. Given that, How do I make sure I am on the right trajectory to getting promoted ? (One thing on top of my mind is that I would be asking for junior engineers whom I can work with and try uplifting, alongside asking for opportunities/projects that would have large visibility and impact.)
Do you have any other advice for me?
I get a lot of JIRA tickets for bugs where it's not clear what the fix should be. How can I find the problem area and relevant code faster with these issues?
Given this industry, switching is always somewhere in my mind. How can I figure out if it makes sense to pursue that or stay? When it comes to staying, how do I know if my current team is conducive to my overall growth and goals going forward?
I work overtime a lot, and it's pretty stressful. I'm also worried that amidst all this effort working for Meta, I'll lose track of who I am overall and what I can do for other companies. What can I do to strike a better balance here?
Some additional questions:
In particular, what are the upsides of living in the SF Bay Area? Is it worth the high cost of living?
For my situation in particular, I would like to end up at Amazon working full-time after school, but I don't live in Seattle or the Bay Area (I live somewhat close to another major metro area). Does moving make sense?
I see engineers like Alex and Rahul, and they have had many accomplishments with pretty fast trajectories leveling up. I'm wondering if there's a primary common theme among software engineers like that - What are they doing that others aren't?
In Alex's case, he met Rahul at Meta and now they're cofounders. How can I build up such deep relationships with other people at Google or any future company I work at?
Recently, I have found myself just working on the tasks and investigating the bugs that my manager tells me to. However, from a performance perspective this would be considered "meeting expectations" at best. How do I develop a nose for impact and introduce new, innovative ideas to my team that really improve our product or development workflow?
The applications our current team develop are targeted for individual users only and most of our projects are centered around building complex business logic rather than scale. So there is less scope to gain experience on concepts such as parallel processing, concurrency, caching or similar. What are my options to become really good at these skills if I am not working on these on a day-to-day basis?
At Microsoft, basic criteria for promotion is to deliver at next level consistently. Example: At L62, i need to work and deliver at L63s work level standards.
Fear/stomach-turning when I think about asking people for help (especially in public channels) has been a major blocker for me as a junior engineer.
I think most people will default to how many hours you put into work. But at what point do we say someone is working hard? Is it working 40hours/week? 50hours/week? or 80-100hours/week?
And how do these hours vary by geography?
As a self-taught developer, I don't have a systematic knowledge base as those who were trained by college degrees or bootcamps. How can I built up a knowledge system as a Software Engineer over work?
For example, after I get a bird-eye understand of the industry, I can fit the pieces that I'm dealing with at work into this system and build up my knowledge with a more systematical way. Can I get some suggestions/approaches for this, or get to know your experience building your own knowledge system?
Some additional questions:
Crux is when you’re learning and digging deeper technically. How do you approach taking ownership and growing your impact on not just the project but across the team and larger axis?
My goal is to become extremely efficient at coding. I want to build a reputation as someone who is able to deliver tons of high-quality implementation and products very quickly. I want to build actual velocity where the actual rate of code per hour/day is really high as opposed to just being able to accomplish more from working extra hours.
What tactics can I use to level myself up in this way so that my old coding abilities feel unrecognizable when looking back 3-6 months in the future from my vast amount of improvement?
My current manager comes from a very different background compared to me and my team, which has lead to some misalignment in terms of what the team should do and how it should do it. I feel like there's a fundamental difference in working styles here.
This mis-sync has shown in our 1 on 1 meetings as well. They're less about my career growth and my goals and more about them and their way of doing things.
Any ideas on how to remedy this situation?
Whether that be a formal mentor within the company or you have found a mentor outside the company.
e.g. I want to level up as an engineer, have sought out a mentor(s) to help me do so, what are some of the things I should make sure happen that I get the most benefit out of the relationship.
I recently got feedback from my manager, and they mentioned that to start making progress to E6, I need to come up with new initiatives, which are big projects spanning across multiple teams. This is especially important for us as our team works in a way where we need to come up with the roadmap more on our own in a bottoms-up fashion.
This feedback is one of the core pillars I want to focus on going forward, but it's hard to make it actionable. What can I concretely do to start coming up with these projects?
Hi everyone! I will join Palantir as a Forward Deployed Software Engineer(FDSE). I need advice on tackling the first 2-3 months at the company to gain team respect and trust. I am excited about this opportunity and want to grow but do it efficiently, if that is even a thing😅. Jokes aside, All I want is to have a great career at Palantir.
YOE: over 2.5years(including just over 1year of internship).
Stack Experience: Ruby on Rails, Python, some Java
Current Work: Backend Engineer. Building and maintaining APIs
Sometimes I feel like I didn't get 40 hours "worth" of productivity after a week, and it didn't make sense to physically spend 40 hours working that week. Is it possible to succeed as a software engineer working less than the traditional 40 hours? I imagine it requires being able to get the work done faster - What are some techniques to do that?
The business side of my company is constantly asking for data queries. I want to take this on and become the "data guy" for the company, seriously helping everyone with analytics and user understanding.
We're using Firebase, but the company wants to move off of it. I'm considering building a custom solution using something like D3.js, but I feel like that would take too long to learn.
How can I best navigate forward achieving this result?
I was curious to learn your take on strategies to push back when the expectations are not realistic. I want to expand my scope and feel that there is lot more scope for me to learn and navigate better. According to me, data and communication plays a major role here.
More specifically in my case, I am wondering how to account for me not being well versed with tech stack and constant context switching between clarifying requirements as they keep changing with each question of mine. How to politely and effectively communicate that although this may seem like a small increase of scope, given that I have to figure tech stuff it will be stretch.
Adding more context: It's trickier as I'm pretty new to the team and tech stack. I feel like I'm discovering a new requirement with every question I ask. I've set up recurring pair programming sessions to increase my velocity, but I'm not sure if that's enough.
Follow-up question: What research should be done before establishing the conclusion that expectations are not realistic?
How do I demonstrate that I am seasoned in a way such that if a Big Tech company decided to give me a chance, I can put them at ease and show that I'll be successful? How does that look like across various levels?
I'm on a team with many new SDE 1s, and I'm trying to get them up to speed. However talking with all of them takes a lot of time, and it's affecting my velocity with project execution. My manager suggested that I set up office hours. Does that idea make sense and are there any other ways to make this all more efficient?
Across my career, I've felt bad about my skills sometimes because I'll have teammates, who are also at my level, doing as much as 2x more than me. This has led to me feeling like an imposter many times - Any thoughts on how to process all this?
I'm mainly working remotely due to covid and a team distributed across time zones, but I feel like earlier-in-career engineers like myself should have more in-person work. How can I overcome the barriers of remote work?
I'm really new as a Google FTE (still doing some logistical onboarding like getting my laptop fully set up), but I want to hit the ground running and start growing at Google as fast as possible. However, I don't know what I don't know - There's a lot to take in, and I'm unsure where is best to focus and allocate my time.
An XFN stakeholder came up with a last minute requirement for a big project I'm working on, which will probably slow down the launch by at least a couple days. I already made promises to other XFN about the launch date.
What's the best way to mitigate the heat on failing to launch on time and zooming out, how do I deal with last minute launch blockers in general?
Does it get worse as you progress from L3 -> L4 -> L5 -> L6 -> etc? Intuitively that seems like what would happen as your scope grows across promotions: Is there more overtime associated with the more senior levels?