Senior engineers have proven themselves to be extremely capable at shipping high-quality, complex software efficiently. This collection breaks down how they operate and how you can get to this level too.
How do you people, as a Senior engineer, put things such as:
I have been working as a backend engineer for around 6 to 7 years, splitting my time between India and the UAE. Recently, I've come to the realization that I don't derive much enjoyment from software engineering. Also, I don't plan to stick to current startup for long as I don't see much future ahead. Consequently, I am contemplating pursuing an MBA with the aim of transitioning into either product management at major tech companies like FAANG or management consulting at firms such as McKinsey. I don't have a strong preference for either career path; my primary consideration is which one offers higher compensation in Europe.
After obtaining an MBA from a top business school, which role typically commands a higher salary: product manager or management consultant?
If I were to continue in software engineering and attempt to transition to a position at a FAANG company in Europe, which role would likely yield the highest income: engineer, product manager, or management consultant?
Can I get breakup of salary?
I acknowledge that these questions may seem unconventional, but at this juncture, my main focus is on maximizing my earning potential as I navigate my career path.
I've been an active user of ChatGPT, and it's been a huge help for coding, writing documents, emails, and Jira stories. Unfortunately, I can't use Copilot in my organization yet, as the legal team is still discussing the potential risks.
I'm eager to take things to the next level and initiate projects that can make a real impact on my business unit teams. So, I'm currently exploring ways to utilize Gen AI to enhance the cost-effectiveness of processes and tooling across my business unit.
I'm curious to learn from others about their internal initiatives using Gen AI that have had a significant impact in your organisation. Any insights or examples from your team would be greatly appreciated!
About 7.5-8 YOE, worked at a F500 before and a med tech startup before that. I'm an iOS Developer to be more specific.
I recently joined Apple as an ICT4/Senior SWE, and this is my first time joining FAANG. So far I’ve been assigned a couple of basic tickets which I landed ahead of schedule, and my manager is unsure of what I’ll be focusing on as Apple is wrapping up its last week of feature dev for the year.
I am extremely stressed. And honestly, for no reason other than I’m placing this stress on myself. I feel like I need to prove to my team and manager that I am in fact a senior level engineer, but since I am already at the level I guess there’s no need to? My colleagues who are mostly all a level below have been on this team for years and obviously can code circles around me. What I’m failing to find is what Rahul and Alex call “the engineer who everyone gravitates towards” on my team. I don’t think we have a dedicated Staff Eng, but rather a few senior SWEs (and even that I’m not sure of since everyone’s title is hidden), and honestly I have no idea what the expectations are of me, and I think that also attributes to my stress levels.
My manager says to just sit tight and has given me a few tickets that are supposed to help my designated Apple buddy - who has been amazing btw - and these tickets are fine and all, but I guess I’m just not sure if I can actually perform at the senior level at FAANG. From all the videos on Taro it seems like at the senior levels there’s a lot of leadership and design going on (which held true at my last company), but frankly in the past couple weeks I’ve been here, I’ve only seen engineers across all levels chugging out code as fast as they can (maybe that’s something specific to Apple).
Not sure if Apple just values "solver" archetype or if this is normal and that it's going to just take me a few months to ramp up and get used to everything. I think there's also quite a bit of imposter syndrome going on - I know I deserve to be here, I just need time to deliver more work and for my manager to give me some feedback.
I know I'm very fortunate to be in the position that I am, but I just want to take care of my mental health while doing the past I can to make sure I'm taking care of my career.
I am starting to prepare for system design questions. I would like to know if anyone has thought of grouping/categories when it comes to similarity among those problems?
For example, ecommerce (amazon) and service delivery platform (doordash) based problems has common trait of search, one can easily use the same solution across both the systems (to search for the products on amazon and to search for restaurants in doordash)
Also is there any list of must know system design problems for interviews at senior/staff level?
I am currently seeking to transition into a career as a compiler engineer, a field I find deeply fascinating. The interdisciplinary nature of compiler engineering, bridging areas such as computer architecture and graph theory, intrigues me greatly. Additionally, the sector offers promising financial rewards, especially with companies like Meta, Nvidia, and AMD that are at the forefront of hardware accelerators experiencing significant growth. I am convinced this growth trajectory will continue, making this career path an ideal blend of intellectual fulfillment, professional growth, and competitive compensation.
Due to recent layoffs, I find myself unemployed, and I am seizing this moment to pivot towards compiler engineering. However, I acknowledge that there is a steep learning curve to becoming an ideal candidate for such positions. The required skill set typically includes:
Previously, I worked as a senior backend engineer, specializing in tool development using functional programming languages such as Scala and Ocaml. My experience spans across FAANG companies and two startups.
To bridge the gap in my skill set, I have been actively contributing to open-source projects similar to LLVM and honing my C++ skills through consistent practice on Leetcode. Despite securing a few interviews for compiler engineering positions, I have not been successful, primarily due to difficulties with compiler-specific questions.
I seek advice on the following:
Any guidance or insights from those who have navigated a similar path would be immensely appreciated.
In the next couple days (2-3 days) will be the deadline for my current job offer (let's call it "Company 1"). I already asked them for extension twice and they said next Monday (02/12) would be the final date and the offer cannot be extended further. The best thing about this offer is the company is fully remote, but it's a startup with unknown plan for IPO.
There is another company (publicly-traded company - let's call it "Company 2") that I already finished the interview with good feedbacks, but HR told me the hiring manager literally interviewed me as the very first candidate and would want to have 2 more weeks to interview other candidates too, but I'm in the pipeline for consideration.
Should I accept the offer from "Company 1" (the startup above)? WLB seems to be better than the "Company 2". Both companies offer "Unlimited PTO" (for better or worse) but at least the 1st is fully remote.
For comp number, the publicly-traded "Company 2" definitely has higher total comp and their stock is skyrocketing in the market right now. "Company 1" has higher base salary but paper stocks.
I wonder if the hiring manager for "Company 2" is interviewing further, does that mean my positive feedback was good but not great? Should I keep interviewing or just accepting 1st offer? Any thoughts on what to do next?
A coworker of mine is transitioning to a TPM role at my company. This is a new role at my org, and my coworker has never worked as a TPM before and the manager who suggested that he transition to the TPM role has left the company.
I have worked with TPMs in the past so I'm a little familiar with the TPM role at big tech, and so I volunteered to work with him on transitioning to the role. I figured this would be a good way to improve collaboration with my coworkers and improve cross team collaboration.
Are there any resources or deep dives into the TPM role, how to effectively work as a TPM, and how to onboard a TPM?
In particular, I am about to have a team fit call with a senior manager at Google for an L5 role. The corresponding team/job description from the careers page looks a bit ambiguous (it's a role in google distributed cloud hosted).
I am already HC approved post my interviews.
I wish to gain understanding for the following topics in the role:
Of course, I do realise that its a fitment call and I need to leave a strong impression on the manager.
But need advise as to how can I balance the two aspects given its a short 30min call. Thanks!
I have been at my current organisation for a year and i just received a good performance rating and a raise. I have been doing pretty well overall. However, over the last two months i have felt that this role doesn't fulfill my intellectual needs and I am not challenged enough. I would like to widen the tech stack that I work on and have more flexibility in impacting the product (it's a big tech company and has a lot of hierarchy). To continue to be good at my work, I need to spend a good amount of time (~50% of the time) doing non-challenging/repeated/admin work. I have started taking courses and my attention has derailed from office work quite a bit.
I realise that if i want to get promoted here, I need to continue to do what I did to get the good rating and do it even better perhaps. But at the same time, I yearn to work on a broader tech stack and take on more challenging work which may or may not come my way at my present org. The reasons to not switch would be : it's just been a year here, I have vested RSUs (spread out over 4 years) and a promotion would be good for my career (and good for my self confidence), also the work life balance is decent. But I have the urge to switch my attention to side projects and eventually to a role and company where I'm challenged more and hopefully make a lot more impact (startups).
Do you have any advice for me?
I am a senior on my team of 6 engineers. There is one more senior on the team apart from a tech lead who leads the technical projects in the team. I have been on this team and company for a year now, and i am generally a very driven person. I started noticing that this other senior engineer competes with me for everything, he has also been rude to me on occasions (on a private call when no one else could listen) and generally plays politics like leaving me out of important discussions, trying to one-up on me over every little thing. I have tried quite a bit to ignore him but he doesn't let up. It's triggering my survival instincts and I am more stressed than usual nowadays.
Does anyone have any advice? Basically i want to be the high performer that i am without worrying about someone who is trying to sabotage me.
Opinions welcome, thanks in advance!
Currently, I hold a high senior position (~ L6) within a large tech company. At this point in my career, I often find myself grappling with the decision of whether to focus on advancing as an individual contributor (IC) or transitioning into a management role.
Although I genuinely enjoy mentoring junior engineers and helping them grow in their careers, I have a strong aversion to certain aspects of management, such as the frequent meetings that come with it. Given my introverted nature and my passion for staying closely connected to technology, I don't believe that a management role would be the best fit for me.
Conversely, the idea of progressing as an IC to roles like Principal or Senior Staff can be quite daunting. I grapple with feelings of imposter syndrome, wondering if I can meet the necessary standards and I am concerned that it might negatively impact my work-life balance.
I would greatly appreciate any advice or insights from the community regarding this situation.?
I am nearing the end of my 6 months probation. My manager feels that I'm going towards an Approaching rating (like Meets Most) rather than a Thriving rating (Meets All). He feels that I lack in contribution to group level engineering discussions and being technically strong enough to mentor other engineers, which he expects from a senior engineer like me.
He keeps going through the growth and development framework and highlights he is concerned I don't meet B3 senior expectations. He increased the frequency of 1:1s to twice a week.
He didn't mention the word PIP but gave me to do a project with a very tight deadline to assess my coding and implementation skills. Now that I'm making good progress in it after a lot of effort, he brought up weaknesses in the engineering direction and discussion points.
My other team members think I am doing ok and my performance isn't too bad, though there are things I can work on.
It sometimes feels like my manager already made up his mind to make me fail probation and is finding weaknesses even if I complete this stressful project.
He even talked about downlevelling if that's a possibility and being asked to leave. He said extension of probation is not possible due to legal reasons.
What do you recommend I do?
I have been on a half a year long break due to unemployment and recently secured an offer at Meta as a senior. I'm a bit stressed about hitting the ground running after coming back from a hiatus, especially because I'll be joining as a senior and am coming as a mid level engineer from a non-faang company. I have a month long break still left before my joining date and I wonder if there is something I can do to set myself up for success.
Additionally how would I go about finding a mentor specifically who has had a good amount of experience working at Meta already?
My manager gave his 2 week notice today for personal reasons. The company is working on backfilling his role which in the meantime will be handled by his manager. I recently started this job a few months ago, so while I have worked closely with my manager, I haven't yet worked with his manager or other managers in the org yet.
Here are my questions around making this transition smooth:
I'm doing a soon: I'll use this thread to collect questions and will follow up to answer anything we don't cover within the hour.
I'm Sanjay ( / ) -- I'm a Stanford grad (same as Rahul), where I got a BS in Computer Science and MS in Biomedical Informatics. I've built my entire career in the Bay Area, with the past 5 years at AKASA, an AI healthcare company to help revenue cycle teams.
I'm the Senior Director of Engineering at AKASA. I joined AKASA in 2019 as one of the first employees when we were a seed-stage startup. I originally joined AKASA as an individual contributor, and quickly switched over to management. I built much of the company's early technology as an IC and later as a tech lead / manager. I also started and managed multiple engineering teams at the company, including Platform Engineering, now an org with 20 engineers.
Happy to answer questions about:
I can also discuss how to introduce effective development processes (code reviews, agile development, postmortems, planning, etc) in early-stage companies and how to evolve these practices as a company grows.
My manager is putting lot of emphasis on documentation .
It consumes lots of time to document almost everything and its equally challenging to keep it updated as well. For example, if we are doing some dev work or exploring a new tool , we are expected to document everything step by step. (I am ok with creating regular design docs, onboarding docs etc).
I believe one has to find a sweet spot (or strike right balance between actual dev work and documentation ) . Any tips on how to deal with this ?
1. When to start this conversation with my manager knowing org transfer is frozen till March? It might affect psc ratings.
2. Should I start talking to new managers or inform my current manager first?
3. Not sure if I will have enough impact created for mid year signal/ratings if I start looking out for new teams in March and may be join by April?
4. Will there be more jobs posted in March?
5. Please suggest some general guidance for switching teams.
I have around 6.5 years experience in Android development. I joined Meta as a new grad in 2017 and never gave an interview after that. I plan to give interviews in about 6 months from now.
I see lot of resources available online for Backend System design interviews but very little information about Mobile System design interview.
Any pointers on what the interview process looks like/ how to prepare for interviews at this level?
I've been working as a software developer in federal government for the last 5 years with the last 2 being primarily within an innovation division.
Over those years I solo developed many internal projects; initially during downtime/upskilling time and later on doing it fulltime.
Each one of these I believe could of had a profound impact on internal processes and ways of working which would then have a positive knock-on effect to the general public.
However these projects never saw a big enough audience that could have that sort of positive impact.
No matter how much the users or executive would love the product/s - the endorsement would only ever go as far as a good CV piece or getting to work on what I wanted.
From what I've heard this is different in big tech. (ala Paul Buchheit w/ gmail)
But is it really like that and if so, how can you encourage institutions that are not known for risk taking and innovation to change?
I was lucky to join a very competent and lovely platform team when I joined my current company. I have been working in the same team for 18 months but due to re-orgs people have moved out and we are currently 3 people and we were 9 people when we started out.
We have been doing mostly maintenance work for the past 3 months after re-orgs and recently we were given a choice to work on two projects.
There is one project, lets call it Project Hero which my skip level manager wants me to join. I would be the main PIC for this project and it will involve a lot of integration work and system design. This project is with new team mates and a new manager with whom I have not worked but they don't have the best reputation. However, going by FAANG level, they should be good enough to get the job done. Only downside is work-life balance might be skewed if I join here. However, if the project is a success, it sets me up for Senior level promotion.
There is another project, lets call it Project Nero. This will be with my existing team but from a company perspective, it's not a very important project. But I will be working with my existing team mates who are both capable of delivering a solid project and a joy to work with. However, my work here will be overshadowed by other Senior engineers on the project.
Which project should I join? I personally want to do Project Hero but not with the people present there. Also it will be challenging.
Project Nero will be challenging also but more up my comfort zone.
Given the current economic climate, I feel being in more important teams will help keep my job.
A common question in performance review is "What blockers or challenges did you experience that impacted your ability to achieve goals or meet expectations?". If there was a health emergency or a family situation but one was able to meet and go beyond expectations, what is the take on stating these as 'blockers' in performance review and in promo doc?
Even though I performed at "beyond expectations" level on my assigned projects, I feel I could have taken on more and delivered more if I was not constantly distracted for most parts of the year. I am wondering if it would be appropriate to state this as a blocker and how should one do it.
Any feedback would be much appreciated.
I am a senior software engineer in my company. We are an R&D company who work for the retail industry. I work in the Computer Vision and systems area.
I joined this company as a senior software engineer. Initially, the project that I was hired for had C++ work but that project was scrapped and we worked on a new product where everything was Python and lots of DevOps tools.
Now the problem that I am facing is all my colleagues who are software engineers know a lot about Python and these tools. I have never used them so far. For me, it was exciting that I was using these new tools which were very necessary in the current industry but I was anyways slow and my code quality and the way I designed things never matched the team's ways of things. I know everybody says that the fundamental principles are the same but I found there are some pythonic ways which are way better than a person who is learning it. Additionally, I was a Senior Engineer, so the manager and lead always came to me and said that they expected more from me. I was not contributing enough.
I feel it is normal to expect things from me as I am a senior. The main problem that I face is I don't feel myself important to the team. Most of the development or coding is done by the rest of the team. I even see they are given more design and senior role work too. I am given very small things. Honestly, even I don't know if I will be able to work on designing systems using these technologies. It affects my confidence and so I am never confident in my work, I have a constant fear that I can lose my job anytime. I don't feel proud of my work anymore now. I have learnt the new tools from last 1 year but I am unable to lead the team in any direction. There are some new concepts in Computer Vision world now like Embeddings which is completely new to me I am struggling to catch up on anything.
Our product is going live very soon, so the issues and pressure have started to grow. I am not even able to build any relationships with the real stakeholders in the team. They all love my other teammates and thus keep giving them work. Whenever I try to talk to them about any issues I do not get any encouraging reply, it feels like I am giving very basic suggestions.
Can anyone advise me on how to handle and perform well in the team and above all feel recognized in the team and organization? I am pretty sure many people here would have changed technology and should have faced similar situations , many would have recovered from this situation.
I always have very high standards for myself and have always been recognized as so in my previous companies. Lately, I feel I am not feeling very proud about my work, and I feel that is the main issue. I need some advice to improve in my field and in a consistent way.
I was unfortunately let go from my previous company in mid November of last year. Took Nov/Dec of last year off to rest and fully cope. Now that the new year is here, I'm starting the job hunt.
Recently, I found out that a previous employer - not the most recent one - has an opening right now. I left that company on very good terms so I can easily get the job, but I'm not interested at all in that role for the long term as I'd like to work at a US company (preferably big tech, but even startups / midsize would be fine to start). All my experience has been at small companies.
I am extremely confident of my interviewing ability especially with the ability to prep full time. But will I have any difficulty in getting interviews if I don't have a job currently? Should I take the job at the old employer, wait it out 6 months, then start applying to better companies then? Or should I ignore the old employer, take a month to prep, and then start applying to the roles I want now?
Some other potentially relevant info: