A staff engineer's advice to high schoolers who want to work in tech
Are you a high school student interested in working in tech? Here's my advice as someone who has worked at everything from FAANG to research labs, and has been in the industry since 2008.
Photo credit: Lisette Voytko, taken when I was a sophomore in college. I was on the train of life, looking backwards through rose-colored glasses.
A friend of mine solicited advice for high school students who have the goal of working in tech. I had planned to skip my second post of this week, but I liked the writing prompt. So here you go!
Background: I’m 39. I’m a staff engineer. I’ve been coding since I was 14. I currently work at Hinge, the dating app. Previously I’ve worked at Google, Etsy, and Sarnoff Corporation (now part of SRI). I went to a state school for college, and got internships/gigs at Google Summer of Code (for Boost C++) and Johnson and Johnson.
Everyone will have different experiences and different opinions, but these are mine.
Anyways, in no particular order:
The default advice is still good
If you don’t know how to program, start learning. I am so jealous of the wealth of educational resources available today.
Take a programming class as soon as you can.
In college, try getting an internship in tech. Failing that, try to get the most tech-adjacent job you can. I worked for my school’s IT department until I got real internships. Internships are part of the full-time engineer recruitment process, so do your best to excel if you land one.
You should be able to point to real technical work that you’ve done. Did you make a small game in Unity? You wrote your blog that hosts itself? You made a face recognition app by following a tutorial? That’s awesome! Make a short YouTube video that demos it that you can share with people. You’ll want some way to show that you went above and beyond your coursework, which is a sign that an employee has great potential.
Dive all the way down
Learn everything you can about core computing stacks while you still have dedicated time to learn. There is almost always a positive return on learning about core computing stacks. Learn about CPU architecture, DMA, architectures, programming language design, network protocols, operating systems. I think about these things all the time.
If you have a dream job, make sure it’s real
Do you have a specific job that you want? Then you should be able to prove that it actually exists. Is it a company? Do they hire new grads or interns? Do they only recruit interns from specific schools, or would you have a realistic shot if you applied?
You should be able to find real job postings for entry-level positions. If you can’t, then isn’t that a bad sign? Yes!
Pay attention to industry trends
Trends and fads are real even if they’re temporary. This will shape companies. It affects where funding is allocated. People will be hired and fired because of it. Companies will exist that do it. In 4 years there will be something else. There always is. Pay attention to the industry.
For example, the big trend right now is AI, and especially LLMs and agents. In 10 years it’ll be something else. If you’re in college and hoping to get an internship, you should be able to explain to an interviewer why LLMs and agents are in the news so much. Ideally you’d have some experience with them.
Increase your luck surface
Try presenting your projects at meetups. Talk to people about them. Participate in online communities. Get to know your professors and learn which ones have industry contacts. Before I graduated, I had 2 different full-time job offers because professors referred me to companies in the area. I got my job at Etsy because someone saw a talk I gave about a colorblind-simulating Twitterbot I wrote.
There are many dimensions along which you can increase your luck surface. One of the best is to attach yourself to something that’s growing. It can be an industry, it can be a company, it can be anything really. But if something is growing then you must grow along with it.
At the end of the day, the computer industry is made up of people. If you get someone excited at the prospect of hiring you, don’t you think they’d rather look at your resume than the 1200 LLM submissions they got when they posted their job on the job board?
A lot of increasing your luck surface will involve encountering roadblocks and failure. That’s okay. Try to learn from every interaction.
Be humble
The instant you stop learning is the instant that you start to become obsolete. You will need to learn and relearn in this industry. Many people have something to teach you. Figure out what it is. Get a brain dump from them. I do this all the time.
There’s a whole world outside of tech
When I remember my past, I remember the moments I experienced and not the tech that I built. Even when I think about work, I think about the moments that I had with my coworkers while we built something.
There’s an entire world outside of your computer monitor. There are a practically infinite number of things you could do. Travel. Bike. Run. Go to watch parties. Go to a trivia night. Fall in love.
If you have spare credits in college, prefer to take the class that is interesting instead of the class that is easy.
To restate an earlier point
There is no substitute for comprehension. Comprehension is not a substitute for mastery.