What to consider when choosing your next job
You may be under the impression that the only thing that matters is how interested you are in the product that the company builds, but there are lots of things to consider when you're choosing your next job.
In my experience, you're going to need a progressive manager to get the support you need. Unconscious bias is called "unconscious" for a reason: even people who think they're not sexist are still sexist. Even women are. We are a product of the society we grow up in. So, you should have some one-on-one conversations with your future manager where you ask them tough questions and pay attention to their responses. What does your gut say? Trust it. Are they reciting diversity and inclusion jargon that they learned when they were forced to do a training or do they really believe in building a diverse team of empowered individuals? Do they have results to back it up?
Things you can ask:
- What is the male/female ratio of your team? The company?
- How many direct reports do you have (if greater than 8, they will never know what you're working on and why you should be promoted)
- What are you doing to make sure the women on your team are supported and have opportunities for growth?
- What is on the roadmap for the next year? What are some challenges you're expecting to run into?
Bad answers I have gotten:
- Oh yeah, diversity and inclusion is very important at Google (but is it important to him?)
- Well, you know, Google committed to making the numbers better 5 years ago and nothing has really changed, so you know, it's a hard problem (literally the worst manager I have ever had and the competition is fierce)
These are the people you're going to spend 8 hours a day with for at least a year. They matter! Some of them may be your friends for life. Others will get you jobs at future companies.
Here are some things to look for:
- people your age (people you can easily relate to and make friends with)
- other women (or other minorities, again because you share common ground)
- more senior women (our brains are simple in some ways and seeing more senior women at your company will help you feel more optimistic about your own success. They also may be great mentors)
- more senior engineers (to teach you coding best practices and hopefully make sure the codebase isn't a dumpster fire that swallows you whole)
Beware bro culture!!! I'm not saying you should turn and run if you see a foosball table, but it should be a yellow flag. A good time to find out about the culture is when you are interviewing with your potential future teammates.
Here are some questions you can ask future teammates:
- What's an average day for you like?
- Do you socialize as a team? What cultural practices/routines do you have?
- What's your work/life balance like? Do you ever work weekends?
I firmly believe no one can work more than 8 hours a day without either dying of exhaustion or wasting several of those hours browsing reddit/instagram/whatever. If this team is working long hours, something is wrong and you should stay away. Your work/life balance is SO IMPORTANT! You don't need a family to justify work/life balance: your life is important enough.
What you're going to work on
Is the product something you are interested in? To me, this hasn't mattered as much because I find that I become passionate about pretty much anything I start focusing on, but maybe it matters a lot to you, so I'm going to highlight some things to think about.
Backend, Frontend, or Fullstack?
I strongly recommend you try it all early in your career. Your manager might suggest you be a frontend engineer because you're "creative" and "more visual" and that's their unconscious bias telling them that women are more visual. Don't get pigeonholed. People will tell you to specialize, but you can do that 10 years into your career if you want to. Being a generalist is extremely valuable and you need to try lots of stuff to discover what you love.
Age of product/company
STAY AWAY from old products. There won't be any new stuff to build, just bugs to fix. You won't learn much and you will start to believe you hate engineering. Try to find something that's less than 3 years old.
This is going to make a huge difference to your experience.
Large companies have the benefit of being recognizable on your resume. I found that once I hit the 1 year mark at Google, I started getting multiple emails from recruiters every week. Big companies are an easy clue for recruiters to latch onto when sifting through tens or hundreds of resumes a day. When I started recruiting for Remotion, after I spent enough time scanning resumes, I found myself thinking things like "Oh, she worked at Dropbox! She'll probably be good." Not because there aren't good engineers elsewhere, simply because I know the hiring process at Dropbox is difficult to get through, so if someone made it into Dropbox, they have something good going for them. So, working at a larger company adds some shine to your resume and might make you more hireable in the future.
Another benefit of larger companies is that they probably are already profitable and chill enough that there are senior engineers kicking around with enough spare time to mentor you and teach you best practices. At a startup, you will be expected to work with very little supervision or help, so if you're a junior engineer, it will be a bit like jumping in the deep end and finding out if you can swim. You'll learn a lot, but it won't be easy.
One of the downsides of larger companies is that the growth opportunities are limited. If the product is very mature, there might not be a lot of new features to build and you might spend all your time fixing bugs (a death sentence for your sanity). You can ask in your interviews what's on the roadmap for the next year to get a good idea if it's a stale product or if they're actually still building things.
Another downside is that the promotion process could be highly political, or have a very narrow definition of what success looks like, or both. At Google, when I was an L3 (the intro new grad level), my manager told me I was doing "too much leadership" and that I needed to stop my diversity and inclusion initiative and write more code if I wanted to get promoted. "L3s don't need to show leadership". This is the downside of an inflexible engineering ladder that prescribes what every engineer must do to get promoted. I believe you should lean into the things you're good at and fix problems if you see them, even if it's not in your job description. That didn't go down well at Google. Microsoft was just really political and you had to be friends with the right people for 5 years before getting assigned a project that sounded good enough to get you promoted.
Don't worry, I didn't stop doing the D&I stuff. I just ignored my manager and ended up getting promoted anyways.
Small companies will not be recognizable on your resume, so in that sense they won't help you get future work.
However, you will likely learn a lot at a smaller company, because you will likely have a lot more responsibility than you would at a larger company and you will probably write a lot more code. You will learn a lot doing this. However, there won't be enough time for more senior engineers to teach you best practices, so you'll probably learn a lot of antipatterns and code yourself into more than a few sticky messes.
Small companies might not even have a promotion process and your role might be very loosely defined. This works well for me because I like being involved in a lot of things, starting initiatives, etc. This kind of thing is really appreciated at a small company where they don't have as much rigidity to roles and you might be able to define your own role that really plays into your strengths.
What lifestyle do you want? Start living it now if you can! Always be working towards your dream lifestyle, don't tell yourself you'll start living it later. You could die tomorrow, so do it now.
Your commute will make a difference to your day-to-day life. Personally, I can't read on buses: I get motion sick. I tried to get used to it over my 2.5 years at Microsoft, but I couldn't. That was about 2 hours wasted of every weekday for 2.5 years. That's about 625 hours. Yeah, I could listen to podcasts, but I like doing things with my hands in my free time (like pottery, gardening). You can't do that on a bus. If you love podcasts or don't get motion sick and can use that time on the bus to work so you can go home early, great!
How important each of these factors are is unique to you, so think about each of them. Make an excel spreadsheet for each of the companies you're choosing between and rate all of these factors. It's likely you won't get 10/10 everything that you want, so you'll have to make some tradeoffs. What are the things that are important to you right now in your career?
Notice I didn't mention salary in here. If you really needed a certain amount of money, you would know it: you might have dependents or a mortgage or debt. But if you don't have any financial responsibility past making the rent, my advice is to prioritize your experience over money. An extra 10k/year isn't going to make up for you having to fix bugs all the time. It's way more worth it to get 10k less per year and build lots of things and make lifetime friends and mentors and learn and grow and deepen your love for engineering. You will accelerate upwards and get promoted and make more money. You will NOT get promoted if you hate your job. I promise.
When you decide on a company, read my article on salary negotiation to bring that salary up. Even if you don't want to negotiate the salary because you think they offered you enough, read the article.