Misc.Jan 16, 2021
FacebookjFxM83

Engineer's guide to getting the best offer - part2

[I didn't write this but found this old post in 'Tech Industry' group which not everyone has access to. Sharing this to more broad group to increase exposure. Original post: https://www.teamblind.com/post/SDE-guide-to-getting-the-best-offer---part-2-VXz1n07A ] ## before onsite ## - Double check with the recruiter the interview is set up for your target level. If you want L5 but the loop is set up for L4, doing an amazing job doesn't get you L5. L5 would require a new interview loop. Save time and effort of everyone involved and make sure the loop is set up correctly. - Recruiter may push back saying your YOE or current level does not meet the bar for the desired level. Push back with why you qualify for the level. For example, "I've worked on the project Y, leading 4 engineers and worked with 2 other teams. The feature saved significant amount of $ (can't share the exact amount due to sensitive data) for the customers" - It is best if you use internal level (e.g "L5", "E4", 65, etc) instead of industry level (e.g. "Senior") when talking to the recruiter to avoid ambiguities. You can find internal levels on levels.fyi. - Schedule onsite in the order of least preference, 1 month into the future, and all of them close to each other. I personally prefer dong back to back interviews. it has benefits: a. Helps bid up the TC from competing offers without risking offers expiring. b. If I get rejections, I get them after all interviews are done so I am not affected emotionally. c. Give you a little bit of time to learn from earlier interviews, while everything is fresh in your head. d. Your behavioral answers get better and better as you re-play the same line multiple times. Another reason to interview with your desired company the last. - Once your onsite schedules have been set up, make sure you get approval for PTO from your manager. Because the interview is a month away, you shouldn't have difficulty getting it approved. - Most companies let you know how the interview loop is set up. If it doesn't have system design, focus on LC. - For system design, go through some of your team's internal wiki to understand details of yours and underlying system. If you don't do much system design or want to prepare more, I recommend Grokking the system design interview (https://www.educative.io/collection/5668639101419520/5649050225344512). It costs a little but I personally found it useful as long as you do the problem before looking at solutions. Just reading doesn't help. If you have a few months of time before the onsite, I strongly suggest reading "Designing data intensive application" book. - Don't study the day before onsite. Your brain favors the most recent information and you don't want your brain to force the last LC/system design answers to all interview questions. Go walk outside, spend time with family or watch a movie. ## onsite ## - Coding interview: same rule applies from phone interview. Come up with working solution, write down pseudo code on the board, work through the given inputs first and then move to inputs you came up with. Often times, the interviewer will say 'it looks good, you can move onto coding' which is a very good sign. After writing code, go through the given input one more time using the code to make sure you don't have any bugs. - When writing code, you can come up with magic functions without implementation but have the overall skeleton. Later when you have time, fill out those helper method bodies. For example, if the interesting part of the question is around duplicate detection but you still have to parse input, you can create a magical method signature "parse(input)" and focus on the the detection part first. If you have time, you can come back to it. I've had multiple interviewers say "you don't have to implement that helper. It isn't important here". Also collect extra point for writing easy to read code - Bring a bottle of water.. I like to drink water when I am stuck because it makes me physically move away from the board and helps me think. It is much better than sweating in front of the board with my brain frozen. - If you are stuck, don't feel bad asking for a hint. When I conduct interviews, I much prefer to give a hint and move forward than have an awkward silence for 30 minutes. - System design: ask clarifying questions. Most design questions have emphasis on scaling so you want to ask questions around SLA, write to read ratio, data durability requirement, etc. You will be surprised how often your assumption of the service is different from what the interviewer had in mind. For example, at Lyft interview, I assumed the DB I am designing has to have durability guarantees, but the interviewer never intended it to have such requirement and just wanted in-memory DB. Understanding the requirement is the key. Once you have a good idea on the requirement, quickly do overview diagram. This is just big boxes representing services and how they interact each other. Don't go into details of those services yet. Let the interviewer decide which box they want you go deep. I usually share 2 ways of achieving a design goal and provide pros and cons of each and explain why one is better than the other in this particular requirement. - Most lunch interviews are not graded (and your interviewer will tell you if it is). Make sure you eat enough food. Try to pick something that won't give you too much gas or burp. Relax because you are only half way done. Ask plenty of questions and don't forget to use the restroom. ## offer negotiation ## - Read https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/ - Due to all interviews done around the same time, your offers should also arrive around the same time. - Remember that you will be doing the exact same work regardless of how much more you get through negotiation. If it is your first time negotiating, this could seem scary and you might fear they could rescind the offer. Recruiters expect the negotiation and understand it is a dance we all have to play. Offer won't be rescind unless you are extremely rude or asking for unreasonable amount (do the market research using levels.fyi and blind) - Never accept the first offer without negotiation. Recruiters don't expect you to sign it (one FB recruiter said this to me) and they might think you are foolish if you do. They are just setting the baseline for the negotiation. In my experience, even without any competing offer, just asking for more usually get you 10 to 13% more than the initial offer. - There are 2 forces involved in negotiation from the company side: recruiter and compensation team. Recruiters are incentivized to maximize the *number* of accepted offers and they gain nothing by minimizing the compensation, unless they are working for a small company with little money maybe? However, they have to get approval from compensation team. The initial offer is usually one that didn't require approval from the compensation team because it is the lower end of the job band offers. - Think of the recruiter as your ally; you need to give them ammunition so that they can get a better comp for you. Be very careful what information you give your recruiter because wrong information could prevent them from getting more $ for you. - You want to give them a firm ideal number instead of a range (tip #3 in https://www.youtube.com/watch?v=iUAcoetDgH4). Once given to the recruiter, don't change the number unless you have a higher competing offer. At ths point, you are not being greedy, you are just asking not to loss money by joining the recruiter's company. - Having a competing offer is the easiest way to get a better comp but not the only way. Notes you took while talking to recruiters become useful here. For example, knowing that the office is expanding by 200 people by a certain date and that they are experiencing shortage of seniors could be used to sell yourself better if you received a senior offer. This also tells you that the offer won't expire soon. - There are many ways to make the competing offer look bigger than it's face value. For example, another offer has lower TC but has better PTO policy so you can convert that to $ amount. Again, help your recruiter help you get a better comp. Look into: PTO policy, opportunity to lead team and mentor engineers, commute time, past stock trajectory, interesting projects, etc. Be creative. Notes you took while talking to the recruiter and interviewers should help a lot here. - Let the recruiter know that you are not the sole decision maker. It could be your spouse or family. This helps pushing back recruiters aggressively trying to close because the other person is out of their reach. - Share your offer on blind and ask if there is room for improvement. - Take into account actual work hours and commute time when comparing TC. If your current TC is $100k with commute of 30 minutes whereas the new offer is $150k with commute of 2 hours and you are expected to work 1 hour more each day, it isn't really 50% bump. It may not even be a raise. - Hopefully by this time, you have an offer you are happy with. It is unlikely you will get any significant raise once you join, so make sure you will be happy with the comp for at least 2 years.

Salary Negotiation: 6 Tips on How to Negotiate a Higher Salary
Salary Negotiation: 6 Tips on How to Negotiate a Higher Salary
YouTube
Levels.fyi - Compare career levels across companies
Levels.fyi - Compare career levels across companies
Levels.fyi
Levels.fyi - Compare career levels across companies
Levels.fyi - Compare career levels across companies
Levels.fyi
Ten Rules for Negotiating a Job Offer
Ten Rules for Negotiating a Job Offer
haseeb qureshi
Microsoft male_karen Sep 27, 2021

No comments?? This is gold