https://bstar.software
Any italicized text is anecdotal, and isn’t representative of all startups/companies.
Following this guide takes significant time and effort. IMO it’s a worthwhile investment to get a job you find meaningful. If you’re like me, you’ll find this work draining and miserable at first. Here’s some tips to make it less terrible:
Use the Pomodoro method for focus, and dedicate 2-3 hours at a time to submitting applications.
Give yourself a little treat, but only after finishing a session (grandma’s rule).
Put your phone in another room while you’re working. No multitasking allowed!
Ask ChatGPT/your language model of choice for help and ideas whenever you get stuck.
Make one primary copy of your resume, either in a plain text file or in a template like this one. This primary copy should be as detailed and long as possible; include everything you’ve done that could possibly relate to a software engineering job. Don’t worry about limiting to 1 page.
Keep it simple with 3 sections: Experience, Education, and Languages & Tools (in that order)
Put actual paid work as the first entries under Experience, and any big projects from your coursework or before Brown as their own entries after that.
Try to nclude meaningful metrics for your contributions to jobs & projects. How much money did your work earn the company, or how many hours did your work save them? How many people did your feature affect?
Under Education, add Brown University & write all of your CS classes.
Under Technologies & Languages add the programming languages, technologies (like Git, AWS, any special command line stuff, etc.) & frameworks (like Rails, React, PyTorch) you’ve used in your classes and projects and feel comfortable with. These are important keywords for recruiters, application reviewers, and AIs.
Make sure that you have a LinkedIn account, and it contains all the information you’re putting into the primary resume. Ideally with a professional headshot.
If you don’t have a personal website, set up a basic Github Page, and give a brief overview of your experience and what you’re interested in.
Double check how your website looks on every browser, both mobile & desktop. Send it to a friend or family member who will look at it immediately.
When I was interviewing, this meant going through the first 4 chapters of cracking the coding interview. Nowadays you might find a structured set of exercises on Leetcode or a diff online coding website.
Throughout your search, if you find a company you’re interested in, add it to the list.
val priority = if (youLikeCompany) HIGH else LOW
Dedicate at least a day just to sourcing mode; you’re just looking for jobs to apply to and filling out the columns that are bolded. Don’t actually apply to anything while you’re in sourcing mode.
For HIGH priority companies / jobs, make sure to write a few bullet points about what’s interesting about the company.
Look at every app on your phone & laptop that you actually use, then go search the jobs pages for that company. For me that’s Duolingo, Eight Sleep, Chess.com, Spotify & YouTube. Then put your phone back in another room. No multitasking allowed!
LinkedIn and Google are decent resources, try searching for ‘Early Career’ software engineering positions.
AI companies have a lot of money right now, so look for lists of emerging AI companies like this one and search those companies’ websites.
Look up all of the career fair events at Brown, find all those companies, and add them to your sheet before the actual career fair.
Applying for jobs is a sport; you need to stretch and warmup before the game. Pick a batch of 3-5 companies that are low priority to apply to as your warmup.
Then, pick a second batch of companies that includes 1 or 2 of your high priority companies (and some low priority ones), which you’ll apply to 1 week later.
Expand on the most relevant experience, education & language/tools for that job. Filter out unrelated stuff.
As much as possible, include language from the job posting in your tailored resume without being dishonest.
If you trust Chat GPT, you can paste the job description & your full resume into Chat GPT and ask it to do the first draft for you.
The tailored resume should be one page long, and put into a template like this one.
Save a new copy of this specific resume & the exported PDF into a folder with the company’s name on it. It takes 10 extra seconds, and will save you in 2 weeks when you want to find this copy of the resume.
Take ~10 minutes to search the company’s website & linkedin for any blog posts or interviews they have about engineering/product. This is a great source of questions for you to ask an interviewer, which will show you’re actually interested in the company’s work - fill your questions in your google sheet.
Take ~10 minutes to search LinkedIn for people who have similar roles to the job application, or seem related to the hiring process (recruiters, HR, CEO/founders sometimes). Save any of their profile links in your google sheet.
Some jobs require a cover letter, or a blurb about why you’re interested in their company specifically. Use stuff from the ‘Things I like’ column, or your questions column. Keep your writing concise, your tone should be eager and appreciative of their time, and don’t be afraid to get creative.
When I was interviewing regularly for engineering positions at Down Dog, a few people stood out by putting jokes in applications, and it made me want to talk to them more. With other companies, your mileage may vary.
Submit your tailored resume, cover letter, and extra information! Guess what you’re not done yet!
Make sure to write what you’re going to send to people ahead of time, so that it’s just copy and pasting when you actually message them. It’ll also help you catch when you inevitably copy and paste the wrong name in a message to someone (not good).
Put a reminder in your calendar for 7 business days from now to double text anyone that didn’t respond to your first messages.
Try to group the jobs with similar titles or companies together, their tailored resumes will be similar (which will let you copy and paste more).
Again, give yourself a tasty little treat, but only once you deserve it.
If you know your interviewer’s name ahead of the interview, read their LinkedIn and come up with more questions specifically for them. Not just questions about the job details like pay/vacation/401k, but about the product or their personal experience at the company.
When I was interviewing candidates and they had no questions afterwards, that was a red flag. I want to hire people who are not just technically brilliant, but curious and excited about Down Dog’s work. Because I’m excited about Down Dog’s work!
Make sure you get enough sleep and eat a meal 1-2 hours before your interview. Technical interviews while you’re hungry are the worst. Go to the bathroom beforehand too.
Don’t be late.
After the interview, send an email to the interviewer thanking them for the time. If you have any supplemental questions include those too. Ask when you should expect to hear from them, and if they don’t answer, put a reminder in your calendar to follow up with them in 1 week.
If you think you bombed the interview, be nice to yourself and keep applying elsewhere. That’s why we do practice interviews!
If you think you rocked the interview, give yourself a pat on the back and keep applying elsewhere. Don’t be like me, thinking I aced my Google & Facebook onsite interviews, then confidently stopped applying elsewhere, only to get rejected by both 2 weeks later.
Generally, try to respond to recruiters / employees running the interview process within a few hours to show you’re interested. Keep your calendar up to date with all your interviews.
Prepare to be ghosted. Startup employees are super busy, and rejecting someone is unpleasant, so they often won’t explicitly reject you. Treat them (and youself) with grace, and keep pushing. Don’t be like me, sending them an angry email when ghosted after 3 rounds of interviews.
For every HIGH priority company [YYY] that you’re already in the interview pipeline for, email the person you’ve been corresponding with to say “Hey there! I just want to let you know that I’ve received an attractive job offer from another company. I’m still really excited about [YYY] and if possible would love to accelerate the process with you to see if we’re a good fit.”
Apply to the remaining HIGH priority companies that you would prefer to company [XXX], to start their process ASAP.
Read my guide on startup equity, to start learning how to value equity in your offers.
Unfortunately, at many companies your starting compensation is determined more by how well you negotiate than your merit or expected contribution. So it’s in your best interest to negotiate, even if that feels uncomfortable.
I’ve failed at negotiating more than I’ve succeeded. So when you’re at this stage in your job search, do some research! Use YouTube and other resources, like this classic blog post on negotiating engineering salaries
If the offer is not remote, use a cost of living calculator to compare to the cities with other positions you’re applying for.
If you want more risk, you can ask for more equity instead of salary (or vice versa for less risk).
Do not ghost recruiters or interviewers at other companies, especially if they gave you an offer.
The company you accept an offer for might go out of business, or withdraw their offer/internship program. This has happened to several people I know.
Email those other recruiters/interviewers, thanking them for their time but ultimately you had a more attractive offer.
Keep the door open to working together in the future, you never know. They might end up hiring you some day! Or vice versa!
This guide includes a TON of work that is not directly related to software engineering; cold emailing, researching, understanding corporate structure. Is all of this worth doing if you just want to be a software engineer?
YES!!!
Working as an employee at a startup requires wearing many hats. For Down Dog, I’ve been a customer support agent, an audio engineer, a recruiter, an interviewer, a video editor, music licensing sourcer, and more. Astute readers will notice that just by following this guide, you’ll develop broad business, sales, financial and legal acumen. So do it! Tackle this with an open mind, get better at stuff, and you’ll get a better job and have a better life.
Thanks for reading :) If you find this guide helpful, let me know!