Unsolicited advice for software interns and new grads

Seven things I wish someone had told me sooner

At the end of the Summer a few years back I had a final one-on-one with my team’s summer intern (I was neither their “handler” nor manager, just one of the folks on the team, but we were small enough that we all had bilateral meetings). At what we thought was toward the end of the meeting, they asked me if I had any parting words of advice, and it turned out I had plenty. As we talked, I realized I wished someone had told me all this stuff ahead of time, so I figured it would be worth writing down. I hope it helps!

You have maximal leverage before you sign the offer

If you work long enough at a company, regardless of your starting salary, how many RSUs you got, or whether you got a signing bonus, new employees hired at exactly your level will make more money than you do. After four years, even with stock refreshers, it’s very likely that the number of RSUs you vest per quarter will take a big dip, and the standard cost-of-living raises are often less than the increase in the market rate for new hires.

If your company is doing well, it will very likely be somewhere on the “main sequence” of compensation structure, from “small, lots of RSUs, not so much cash” to “large, fewer RSUs, more cash”. In an ideal world, this means you would get big salary bumps periodically as your stock grants dry up. In the real world, while you might get a salary and/or equity bump for a promotion, you’ll get smaller annual raises, and new hires will get paid better than you do.

There’s not much you can do about this besides switching companies, or at least interviewing elsewhere and bringing an offer back to see if your company will quietly match it. You need to be prepared to quit if you do this, though, because some managers will decide then and there to start managing you out (nobody really wants an employee who doesn’t want to be there).

Based on this grim preamble, I hope it’s clear that the initial conditions actually matter quite a lot; if you can increase your base, then when everybody gets 1.3% raises some year because money is tight yours is at least a bigger 1.3% than it would have been otherwise. The good news is that the moment where you have the most leverage in your career with a company is right after they make you an offer.

Interviewing candidates to fill a position is a lot of work, and getting an offer together is a non-trivial percentage of that work. It’s a bad look for a manager if they find the right candidate and fail to close the deal, so they’re strongly incentivized to close the deal. Ideally you have interviewed with and gotten offers from several companies, which increases your bargaining leverage further, but even if this is your only offer you can often do better.

Be polite! Don’t just say “I want more cash”, but you can say something like “I was expecting a little more on the [compensation | equity] side”. Often there is some wiggle room in the structure to offer more cash or more equity at the expense of the other, which allows you to take an offer that best fits your risk assessment for the company. Sometimes there isn’t a lot of flexibility for salary but there is budget for a signing bonus. In particular if you’re right out of school this might be something you can lobby for, as a means of helping you bootstrap your new professional life. Sometimes, unfortunately, there isn’t any wiggle room at all, particularly in later-stage companies with tightly defined salary bands.

I should note that my angle on this is definitely informed by my experience and privilege as a cisgender white man; negotiating can be uncomfortable for anyone, but is demonstrably easier for me and people who look like me because of a reduced likelihood of reprisal. Women and under-represented minorities rightfully worry about the degree to which bias—implicit and explicit—change how hiring managers respond to negotiation. There are approaches to mitigating this bias, but it would be disingenuous to say that it isn’t present.

It’s also easy for me to say “you didn’t want to work at a place like that anyway,” and that might even be true, but we don’t always have the privilege of choice in where we work. While I believe the offer represents the maximal leverage point, that leverage may still be close to zero. Many large and/or competitive companies don’t negotiate their offers at all. Some companies, by policy, just make their very best offer first. But I don’t think it hurts to ask what’s possible.

Set boundaries early

Everybody wants to make a good first impression. An obvious way to do this is by “going the extra mile”—longer hours, skipping lunch, working on the weekend, etc. There are some real downsides to doing this. Many people don’t produce any more or better results from working longer hours, as the efficacy of the work drops over the course of the long day. Many engineering managers measure success by results rather than perceived effort, so this could really backfire if you overextend yourself or end up producing the same results.

What could be even worse, though, is that you could end up being more successful, and setting an unreasonably high bar for your future self to meet. If you are quiet about how hard you’re working, then you’re also misleading your manager about what throughput they can expect from you (and by extension from the whole team), which means they will end up asking you to do more than is sustainable.

While your internship can be a sprint, your career is a marathon; you need to find a pace that is sustainable in the long term, both for your own happiness and the predictability of yourself and your team.

Work better, not more

Productivity aside, it’s also important to set firm personal boundaries between work and the rest of your life. If you establish these early, they become easier to maintain. For example, if, during your work-from-home days (or all your days if you are a remote employee), you develop a habit of interleaving work and checking your socials, or staying logged-in while you eat dinner, you run the risk of smearing your life and work together to a point where it’s hard to tell one from the other.

This can lead both to overworking and under-producing, because it’s hard to understand your own productivity. Just as you need public boundaries between work and life, you need personal ones as well.

Take vacation often

As a rule, most companies would rather you never took vacation. Historically the way they accomplish this is to offer a fixed but relatively small amount of paid time off (PTO) to new employees (think two weeks a year), that increases over time. By the time you accrue enough vacation annually to take a reasonable amount of vacation each year, you’ve been trained to hoard it. Moreover, because accrued PTO must be paid out when an employee leaves the company, it becomes a sort of unemployment war chest.

An alternate approach, which has the added benefit of not requiring the company to carry enough cash to pay off all that PTO if everybody suddenly quit, is not to track vacation at all, a policy usually referred to as “take what you need”. On the surface, this would seem to encourage more vacation, since there’s nothing to hoard, but companies usually do a poor job of building a culture that properly embraces the stated policy.

In particular, there’s often a “hardcore” culture of working long hours and not taking vacation that a company makes no effort to counter or improve. Additionally, vacation almost always comes at the discretion of your manager, and there’s huge variance in how willing managers are to genuinely support work/life balance.

In either case, the right answer, in my opinion, is to take as much vacation as you can reasonably get away with, and to take it regularly. Early in your tenure at an accrued PTO place this probably looks like taking a long weekend here and there, but make sure you take all you have every year. In a “take what you need” place, I would just decide to target four to six weeks and see if anybody complains. There is a personal benefit to this, and a societal one, as you set a public example for others on your team.

There’s a definite privilege thing here too, which sucks. It will be structurally easier and less uncomfortable for folks with privileged backgrounds (or tenure at the company) to take time off without fear of reprisal. For those that can, I think it’s important both to take the time off, to be loud about it, and to encourage others to. Normalize it for everybody if you can!

Your team is not your family. Your company is not your family

Managers at every level will try to call you and your coworkers a family. This is just untrue. It may seem nice for your coworkers to be your family, but it actually sets up unreasonable expectations. Family connection is among the strongest personal bonds that exist; people will do all sorts of unreasonable things for their own family, things that would be inappropriate to ask of coworkers.

Your relationship to your team and to your company is a business relationship. You do not owe your company anything beyond doing the work they pay you for. However kind it is, however great your benefits, whatever snacks the office has, your company pays you to work, and profits from it. The employer/employee relationship in any company that isn’t employee-owned is fundamentally exploitative. Calling you part of a family—or invoking a notion of duty or loyalty—should be viewed as a form of gaslighting.

HR is not your friend

Your Human Resources (HR) representative (or “business partner”) was hired by the company, and their number one job is to protect the company from legal reprisal. In particular, a lot of the job is helping managers legally fire (“manage out”) unproductive or problematic employees while reducing the risk of litigation. Sometimes this will align them to your interests, and sometimes it won’t. But every conversation you have with your HR rep should be viewed through this lens.

Keep asking questions

Your internship probably involved asking a lot of questions. Different companies and teams do variously good or bad jobs of documenting things, carving out a project that is well-defined enough to get going on quickly, and making sure that you have what you need to be productive, and nobody is perfect! There was probably plenty of ambiguity to wade through, and hopefully you began to build the skill of asking questions.

Never stop this! The ability to ask good questions is a tremendously important skill, for several reasons:

  • You should never be blocked from working because you don’t know how to do something. It’s good to spend time trying to figure something out yourself, but it’s bad to spend too much time, particularly if there’s someone in your work neighborhood who can help. You don’t want to ask for help all the time for every little thing, but in my experience folks who know when to pull the ripcord and ask for help learn and progress more quickly.

  • You can help future new folks by asking questions so they don't have to. If something isn’t documented, you can document it! But you’ll have to get somebody to tell you about it first. Question asking is a foundation of institutional learning.

  • Similarly, if you don’t understand something someone says at a meeting, ask about it! If you don’t understand it, others may not either.

  • You can’t design or scope a project without first asking a bunch of questions of its stakeholders, at least not if you want it to be successful.

  • If you think someone is wrong about something, asking a question is a great alternative to starting an argument. “I’m having trouble connecting X to Y, can you walk me through it” will typically yield a more productive discussion than “I think you’re wrong about X” (or not asking at all).

  • Similarly, asking questions is a great way to get someone to agree with you or to form an opinion you’d like them to have. Just ask Socrates! This form of question asking is harder, but tremendously powerful.

I believe that being able to ask good questions is the most important single engineering skill.

Good luck out there!