Advice for Job Seekers (New Grads)
October 24, 2019
Author: Bianca Yang
All advice is autobiographical.
Table of Contents:
- GPA doesn’t matter
- Skill meters are useless for your resume
- Getting a job is about networking
- Find a problem you can engage with
- Find a Job You’re Willing to Give 80+% of Your Daily Productive Hours To
- Remember that It’s Just as Hard to do a Small Thing Well as it is to do a Big Thing Well
- What do you want to get out of your job
- Take your interviews seriously
- I don’t care what you wear (to a point)
- Industry != school, except in school (In theory there is no difference between theory and practice. In practice there is.)
- Learn to negotiate
- Hard questions you may want to ask your potential future employer
- Micro and Macro Level Views of the Company
- Types of Risk
- Consider the Gap Between When You Accept the Offer and When You Begin Work
- Great Twitter advice
- GPA is a weak signal. Don’t waste space putting it on your resume.
- Those trendy skill meters people put on their resumes? Meaningless. I know DE Shaw asks something similar, but they make the ranking slightly more meaningful by asking for lines of code written in each language you claim proficiency in.
- The best way to get a job you want is to reach out to relevant people at
the company you’re interested in on LinkedIn. Reach out to an engineering
manager or design lead or whoever could potentially be your manager and ask
for an informational interview. If you are already certain you want the job,
send them a portfolio for review. If you send code, SEND F-ING INSTRUCTIONS
ON HOW TO BUILD AND RUN YOUR CODE SO THEY CAN SEE THE RESULTS!! Shocking,
but it’s hard to review code and probably all the hiring manger will care to see on
the initial evaluation is some impressive results (increased profits x%, reduced
memory consumption x%, has x% accuracy which is y% greater than current benchmark,
pretty colors on a screen, I’m sure you can figure out the rest).
There are plenty of people out there who would
be interested in investing a little time to get to know you and help you
fill in gaps of your understanding about their company. If who you reached
out to is not willing to help, ask them to introduce you to someone who can
- Don’t mistake this strategy as an excuse to let your technical skills drop. You have to prove either that you really know your shit in some area (databases, for example) or that you have really good generic coding / algorithms / data structures skills. The company is trying to see how you can help them get things done. Make sure you can prove your worth in the interview.
- Look for a company that is working on a problem that you think is worth working on for at least the next 10 years. 10 years is kind of arbitrary, but I think it’s long enough to require serious thought. If you think the problem is easily solvable in 1 year with long weekends and hours, probably the ambitions of the company aren’t high enough. If they’ve pretty much already finished the product and are transitioning (even with noticing it… why else would they hire you) into more maintenance mode, you may not want to join. If you don’t find the problem legitimate, interesting, or worth solving, don’t join. The world is full of problems.
- Find Job You’re Willing to Give
80+% of Your Daily Productive Hours To
- Credits to Tobi Lutke, CEO of Shopify, for this point. You should feel like investing time in your work is the productive investment you can make at any point in time. It’s ok for you to sometimes feel like you’re doing busywork, but at least 80% of your time at work should feel very worthwhile.
- Remember that It’s Just as Hard to do a
Small Thing Well as it is to do a Big Thing Well
- A very salient way to think about this is that a plumber likely works as hard if not more hard than a CEO to make his living but the plumber will never make as much money as the CEO. You will work just as hard at a failing or middling or even OK company as you will at a rocketship company. Work is work is work, and nearly every workplace has the same expectations on how much work their employees should be doing (or at least signaling they are doing). So, make the right choices. Try to find the positions with the maximum risk or potential for non-linear growth or potential for you to move into a decision-making or decision-influencing role (read: position with leverage) you can tolerate. Maximize your time while you are young so you can ride the tailwainds when you get older.
- Always try to think of how you can help the
company and how they can help you. The relationship must be mutually
beneficial. Typically, young people don’t have much clarity on where you can
have the most impact (leverage) or what makes them happy at work. At the risk of
falling into a trap of optionality, you should try to find a place that will
give you a good balance between flexibility and structure. You want structure
so you get good at what you’re assigned. You want flexibility to explore within
the company and learn about different functions in the business and potentially
in the industry.
- If you are not working on projects that excite you and make you want to come to work every morning, ask for another project. Talk to people on other teams to see how else you could contribute. As a junior employee, your responsibilities are to get good at what you do and to figure out what’s important. You don’t want to be stuck doing something unimpressive, especially if you’re in an internship (think about limited time and how much internship results matter to future employers), so it’s important to assess the skills you will be developing on a project and speak up as soon as you feel like you’re not going to get something meaningful back for your time. Watch out for dead-end projects in internships, because they will hurt your performance in future interviews.
- Take the question of your tenure at the company seriously. Consider that it probably takes 2 - 3 years for you to settle into a company. Only after you’ve matured in a company’s way of doing things and problem can you begin to work on projects that are actually meaningful to the company’s structure, bottom line, etc. If you don’t think the company can provide you a long enough runway to get you to takeoff in 2 - 3 years, you probably shouldn’t join. The question of tenure here isn’t about the money. It’s about finding a place that makes you happy and will allow you to fully apply and level up your skills. Give each place at least 6 months before you jump, if you absolutely have to. Before you jump, you should work with your manager and leadership to see how the work environment can be adjusted to better fit your needs.
- Take the interviews seriously.
- Make sure you prepare. Do not waste anybody’s time. It is expensive to have engineers interview you and it is expensive to bring you out for an onsite. If you don’t want to interview, decline the opportunity. It’s better for everybody when you are actually enthusiastic about potentially working for a company.
- Show up rested and full of energy. People aren’t stupid. They can tell when you’re hungover or under rested or low energy. Whatever is going on, remember that your interviewer’s are excited to see you succeed and that you should try to match that energy. Do NOT be cavalier in the interview.
- Brush up on your story telling and social skills. If you want the job, make sure you show it! Your interviewers are also human…ahem, meaning that emotions and presentation matters. It’s not a big deal if you’re a bit awkward, but remember that the company is also assessing whether you’d fit into the culture. They want to make sure that current employees would be comfortable seeing you as a fellow coworker. So try to fit in during lunch or other events they may have you participate in.
- Recognize that most questions these interviewers as you are total BS.
- I don’t care what you dress in at a career fair, as long as it’s clean and doesn’t have holes. This is a perk of the tech industry. You should dress up for an interview with a consulting or finance firm. That’s just how business gets done.
- Industry work is not school
work. School work is interesting for its own sake. That’s pretty much what
researchers (should) be doing: working on
problems they find interesting because they find it interesting. If you’ve
developed a taste for working on those kinds of problems, you should consider
going to grad school. Industry work is about infrastructure, about designing
systems that perform in a certain way because we made them behave that way.
Industry problems are focused on customers (at least at small companies) and
relationships and partnerships and doing things that are useful (or at
least can be sold as such). If you like engineering, working through bugs
in complex systems, thinking about how to design data ingestion pipelines,
thinking about system architecture or optimizations (as you eventually need
to do), then industry is likely for you.
- The more critical misperception I wanted to drive out of readers is around AI. Everybody these days wants to do AI. But the AI they’ve been exposed to in school is nowhere near the kind of AI that industry throws at its problems. Most companies are not using AI in production. This is because AI is expensive to get right and hard to get a meaningful ROI on. If you want to do AI, you should go where you intuition says you should go: Amazon, Google, Salesforce Research, Microsoft Research, Nvidia, grad school, etc. That’s where you will get to work on intellectually stimulating AI and math problems. Most companies have fallen in love with xgboost and only let a few random people spend their time “researching” AI applications. My company is 7 years old and has developed “AI” using smart systems and heuristics. The results you get with and without these “AI” features is night and day, so I’d say we’ve done a pretty good job so far, without using deep learning or parameterized models or anything fancy. Keep it simple, stupid.
- Remember that people pay for results. They don’t care how you get those results. They may not really even care when you produce results. (When was the last time you cared when FB or Uber or Google pushed a new update? Probably not in a long time. Even if you did care, it probably was a weak sense of caring because nothing you did would accelerate the process.) They do care when you let them down. Just remember that industry work is not school work.
- Learn to negotiate. I’m not very good at this, but
this is a good resource. (I read
all the sections regarding negotiating for a new job.)
- I’m conflicted on whether salaries should be flat across levels. On the one hand, it balances the playing field and means there’s less politics and sneaky talk about salaries. On the other hand, we may want to reward candidates for negotiation and soft skills. Basecamp does flat salaries, but they’re a small anomaly…
- Anyways, know what is a fair offer and fight for it. Bring data in, bring other offers in, use your advisor as the scapegoat (well he said I should be getting $1m a year so…). If the company does not fight back fairly, you can scratch them off your list (this previously said “life”…wtf was I thinking). Their unwillingness to offer you fair compensation implies they will not be fair in future dealings with you as an employee.
- Ask critical questions. You should never be afraid to ask hard questions.
Worst case, the company will tell you information is confidential. If they get
defensive or attack you for asking a tough question, you can immediately drop
any further conversation with them.
- Figure out whether your living situation will be acceptable to you. This includes commute, your future roommates, your ability to maintain your current social connections, cost of living, weather, liveliness of the city you will be living in, etc. Make sure it is not something you will gripe about a month after you join.
- What is the business model? How do they make money? Are they making money? What is the path to profitability? What is the roadmap for growth? Is there money in the bank? What have they used previous funding rounds for? How has that turned out?
- Do you care about the work? Ask about the roadmap and what things you could be working on. What is the mission; what is the current set of milestones they’ve set out; do you feel like your work will contribute towards the mission? Do you feel like you will care if the company achieves its mission or any of the milestones?
- What is the technical culture like? For this, Joel’s Test is pretty comprehensive. But also set your own objectives. What kind of stack or technologies will you prefer to work on (web tech, CRUD, databases, systems building, AI/machine learning applications)? What areas do you want to learn about? Do you like lots of context switching, with very short sprints, or do you prefer longer x-month cycles? How much customer interaction do you want?
- Do you think the people are high quality? Do you like the people? Do you like your future manager and future coworkers? You should come away from interviews feeling like you have things to learn from your coworkers and that they will invest in mentorship. Ask to talk to more people, including people outside of your discipline if that will help you make a better decision.
- Will you have access to learning resources you want? This could be access to people (most important item in this list), tuition reimbursement, opportunities to go to interesting conferences, budget for tools you think will help you do better work.
- Do you trust the management? Do you think the vision for the company makes sense? Do you feel like you will be working on meaningful projects? Do you feel like you will be given the autonomy to figure out what projects are meaningful and to work on them? Will your ideas be listened to and implemented?
- What is the turnover? This is especially important to ask if the company is small because long tenures from early employees shows that the company has been treating them well and that they believe in the company. It also shows that the team gels well and that they like the quality of work they have been producing.
- What is the path to yes? I am pulling this from Bob Baxley, ThoughtSpot’s new SVP of design and experience. This question is getting at operations and internal process. How easy is it to push new initiatives
- Is there clear direction in the company? Is it clear where the company is going and why? Does that high level vision translate cleanly into work for individual engineers? from bottom up?
- Tell me about your worst day at this company. It’s a more straightforward way to understand what there could be to not like about the job.
- Are the salary and benefits acceptable?
- More smart questions
- Consider the Gap Between When You Accept the Offer and When You Begin
- There’s really not much you can do about this, especially if you’re in
school and you find a job during the feeding frenzy that is the fall of your
final year. But it is worth noting that that company you interviewed at,
especially if you join some young whippersnapper rocket ship startup, may be
materially different from the company you join (of course measured using some
objective and wonderful measure like the GAAP accounting standard).
- People want to join startups because they grow fast. That means they’ll grow and change a lot in the 6+ months between your accepting the offer and starting work.
- There’s really not much you can do about this, especially if you’re in school and you find a job during the feeding frenzy that is the fall of your final year. But it is worth noting that that company you interviewed at, especially if you join some young whippersnapper rocket ship startup, may be materially different from the company you join (of course measured using some objective and wonderful measure like the GAAP accounting standard).
- Types of Risk; Which One Do You Want to Face?
- Operational risk
- Also known as execution risk, companies facing this kind of risk are likely more mature but not yet established within traditional infrastructure. For example, companies trying to go IPO largely face operational risk in trying to meet revenue and operating maring numbers and hiring the right executive team and meeting with bankers to get compliance and other financial figures lined up. If you’re facing operational risk, the playbook is clear. You just have to check off the requisite boxes so you can cross the finish line and then move onto different kinds of problems. You can probably tell I am biased against joining a company when it’s primarily facing operational risk.
- Business risk
- This is the famed product-market fit problem. If you build it, will they come? Companies face this kind of risk all throughout their lifecyle, since companies want to achieve growth and they know that they can’t get consumers to buy more of the same old thing year after year without at least some marketing tweaks. This is definitely more exciting than operational risk, but the burden of delivery likely falls more on marketing / sales teams than it does on engineering, since the objective likely isn’t to deliver something completely out of the technological Overton window. The objective is to deliver something that is just novel enough to attract attention but also familiar enough that people will feel comfortable parting with their dollars for it.
- Technology Risk
- Think Hyperloop or SpaceX or anything JPL has done. This is probably the most exciting area for engineers and other builders to be in because the entire point of engineering is to find solutions to tough (and novel) problems. Since the brunt of the work will fall upon engineering, expect to work the hardest at these kinds of companies. Hopefully you reap what you sow. Worst case, you will surround yourself with people who have risk profiles skewed towards low-probability, high-reward outcomes. The probability of at least one of you guys (Paypal Mafia) making it big in a way where the spoils can be shared among the group is thus higher.
- Operational risk