How do I start a programming career in the West?
I was expecting great things when I graduated from high school. I scored 35 on the ACT, was messing around with crypto, and fully expected to drop out of college to start a business. Things were looking up.
Instead, due to a combination of depression and procrastination, I ended up spending the next 8 years drifting in and out of college before I finally got my undergraduate degree. I wish I was out partying during this time since that would at least give me some good memories, but I honestly just stayed inside and played video games all day. Not my proudest decade.
But eventually, I pulled myself together and graduated. I’ve been employed as a bioinformatics engineer in China for the past 2 years, and have been steadily improving my life. I’m contributing to group discussions, pointing out major problems with research plans, and picking up programming and data management skills. Instead of putting in minimal effort, I’m spending most of my workday coding or researching, an incredible improvement over my productivity in college. I feel like a highly valued member of my team. I’ve published papers, helped design gene panels for cancer treatment, and sifted through papers for new research avenues for my team to pursue.
And then I remembered that I was making what would be considered minimum wage in the US. I know I can do better. I also don’t want the possibility of a multi-month lockdown starting at any time to hang over my head. I have a passion for AI and want to pursue a career in programming/data science in the West. Since many of you are involved in these fields, do you have any recommendations? I see 3 paths forward:
Continue working for a few years. Pile up papers written, find character references, and acquire more job skills. My problem is that I don’t think our prediction models are going to go beyond logarithmic regression, and I’m feeling increasingly stuck. I suppose this is my default path.
Try to participate in a really impressive side project, and use that as a jump-off point to get into an AI alignment/capabilities company. The problem is that my personal passions might not match up with what such companies are looking for. I’m currently idea-boarding a cheap (<$20) laser-guidance package for quad-rotor-dropped grenades, but I think war is low-status in Western tech companies and this might actually hurt my chances. Maybe I should write an R package for automated primer design and put it on Github? It was a major pain in the ass to get the existing program in C working. I’m open to offers for collaboration.
Just apply to something immediately. The problem is that I don’t have anything to really impress my employers. I’m not the first author in any of my papers, and the one I’m proud to be associated with only lists me as an editor. I have a pretty good knowledge of cancer genomics, and have neat stories, like the time I helped improve a gene panel by pointing out that having an entirely age <30 control group would cause a lot of false positives from common benign age-related mutations. But they’re just stories, not things that are legible to employers. Most of my code is <100 lines of using mutation data to make plots for ppts with ggplot. I did do most of the data analysis/graphics for a paper analyzing a subsection of TCGA data, but how do I even explain that to someone not working in the field? “I found that these genes correlated with X in patients with Y. I also made a plot of the same” sounds… not very impressive? I wanted to apply to this job offering from Conjecture, but then realized they were pretty far out of my league. On my resume, I’m just a guy with a bachelor’s in biology.
Transfer to a machine learning job in China. I was going to do this until the US chip ban. I don’t think this is viable anymore.
Edit: I forgot to include getting a Master’s degree overseas. I only had a ~2.0 GPA, so it’s an uphill battle. I think that means I need to talk to professors directly, which I am currently trying.
2 years ago I had no credentials, not even an undergrad degree. Got spooked by GPT-3 and laser-focused on it, but without preconceptions about where I’d end up. Played with GPT-3 on AI Dungeon, then built an interface to interact with higher bandwidth. This made me (Pareto) best in the world at a something in less than 6 months, because the opportunity to upskill did not exist 6 months ago. Published some papers and blog posts that were easy to churn out because they were just samples of some of the many many thoughts about GPT that now filled my mind. Joined EleutherAI and started contributing, mostly conceptually, because I didn’t have deep ML experience. Responded to an ad by Latitude (the company that makes AI Dungeon) for the position of “GPT-3 hacker”. Worked there for a few months as an ML engineer, then was one of the founding employees of Conjecture (I got to know the founders through EleutherAI). Now I am Involved.
The field of AI is moving so quickly that it’s easy to become Pareto best in the world if you depart from the mainline of what everyone else is doing. Apparently you are smart and creative; if you’re also truly “passionate” about AI, maybe you have the curiosity and drive to spot the unexploited opportunities and niches. The efficient market is a myth, except inside the Overton window; I would recommend not to try to compete there. So the strategy I’m advocating is most similar to your option (2). But I’d suggest following your curiosity and tinkering to improve your map of where the truly fertile opportunities lie, instead of doing a side project for the sake of having a side project—the latter is the road to mediocrity.
Also, find out where the interesting people who are defining the cutting edge are hanging out and learn from them. You might be surprised that you soon have a lot to teach them as well, if you’ve been exploring the very high dimensional frontier independently.
I cannot promise this is the best advice for you, but it is the advice I would give someone similar to myself.
As someone who gives data science interviews, my (personal, unreliable) opinion is that you should start preparing for interviews as soon as possible, and actually begin interviewing as soon as you feel ready.
I’m not saying you’ll get in on the first try! You might, in which case you’ll save a lot of effort doing anything else. If not, you’ll get some sense of what the interview process is like, and where your strengths and weaknesses are.
If you can’t get interviews at all, you may need to think about improving your resume. That could look like options 1, or 2, or 4 if you can swing it; the details probably depend a lot on your personal circumstances.
If you can get interviews, but not jobs, you should probably work on your interview technique. For early-career hires, we care more about how the interview and practical exercise go than anything else. (Remember to ask the interviewers for feedback at the end, e.g. “is there anything you think I could improve on?”)
If you want to go get some super-impressive experience, that’s not a bad thing, it’s certainly going to make us more interested; that said, it’s a large amount of work to do so convincingly, and it won’t save you if you can’t impress on the more routine parts of the interview.
Also, don’t feel you have to sell your existing experience short: “I did some clever feature engineering that resulted in a better model for our data” is actually a pretty good answer. I can’t speak for AI safety, but there are lots of other opportunities that would be happy to have someone who knows their way around a dataset.
If you’re not sure how to explain it, then practise that! You’re going to be evaluated on your communication as much as anything else, and explaining technical concepts to people who don’t understand them is often part of the job. They won’t need to know it inside-out, just give them a sense of what’s going on, and why your efforts mattered.
Strongly agree with
tangren. Try to start interviewing and see if:
Can you even get the interviews? If you can’t all, then your resume is probably not good. Also maybe you need to work with a recruiter.
If you can get the interviews but not the offers, then it’s probably your interviewing skills. You can study up. (For this reason it’s recommended to first interview with companies you don’t particularly want to join.)
I will caution that right now is probably a particularly difficult time to find an engineering job. There were a lot of layoffs in big tech companies and a lot of them have a hiring freeze.
There was a similar question a few months back; you may find the answers there helpful.
As someone who’s running Conjecture’s hiring round, I would encourage you to apply anyway! We don’t care massively about credentials and weight interesting projects that are open source much more highly. Like Janus said, really building out projects that you’re highly interested in is v useful both for you and for future employers.
Are you a Chinese citizen? If so, getting a programming job in the West without a degree in CS or related fields might be hard, visa-wise. The default way through is a Master’s degree, but there are probably ways to hack this (e.g. get a job in a multinational with offices in China, transfer to the US).
I am. I had pretty low grades in College (~2.0 GDP), and from what I’ve read I would need a lot of work experience and accomplishments to get into a Master’s program. I think I need to convince a professor directly in order to get in. Do you have any recommendations?