My background is in experimental nuclear physics. I got my PhD in physics from U.C. Berkeley in 2016 for studying a rare, but clean signal from Heavy Ion Collisions. Heavy Ion Collisions are interesting because they can generate a bizarre form of matter—a plasma of quarks and gluons that formed a 'perfect' fluid, and is controlled almost entirely by the strong nuclear force. I studied if the measurements of this signal implied the formation of quark-gluon plasma in different scenarios. The field at the time was undecided, but many publications were coming out indicating that this plasma is almost always formed. My studies revealed that a very important signature of the plasma was not observed, and thus the plasma may not be forming after all. I don't think a PhD is for everyone, it's hard and there's always opportunity cost. I got lucky with a mentor that treated her graduate students very well, and I really enjoyed the actual process of writing when it came time to finish my thesis.
After my PhD, I was honestly looking for industry jobs, as I had developed a stronger interest in coding, and was always interested in technology in general. But there was an amazing job posting at Lawrence Berkeley lab, where I spent most of my workdays as a graduate student. It was a post-doc job for a new group: Machine Learning for Fundamental Physics. I applied and to my amazement was offered a job. While there, I applied many novel (at the time) deep learning techniques to long-standing problems in nuclear and collider physics. It was really cool things, that looking back I'm surprised I got the chance to work on at all! I got to attend NeurIPS twice due to this work, and met some really incredible people. I talk about this work in much greater detail on the work part of my website.
I was, however, still drawn to industry. Since I was a graduate student, I was interested in tooling, software, and of course, my Vim configuration (I use Vim by the way). These interests were often to the detriment of the shortest path to publishing research. I really wanted to see what an engineering environment was like. High energy physics requires a huge amount of engineering, but every researcher's code felt like an island for smaller projects. For huge, data-intensive projects, however, I'm often reminded about this rant about the movie Armageddon (1998). I have to ask, tongue-in-cheek, if it's easier to teach physics to engineers, or engineering to physicists. Most of my co-workers really don't like the question, let alone my answer. The kernel of truth here is that day-to-day, good engineering practices are used more often than relativity, field theory, and phenomenology (the domain knowledge I used most often).
I knew very early on that a very small percentage of people make it long-term in physics. Last I checked, there's one permanent position for every 20 PhDs. I also thought I'd either be different or I'd figure it out. In the back of my mind, I also always assumed I could finish my PhD, and join a large tech company fairly easily, so long as I kept coding day to day.
I think I got into science in the first place due to a combination of reasons. I had a natural curiosity that, in retrospect, may have been more oriented toward astronomy or electrical engineering than pure physics. I also had grand and altruistic motivations; I was really interested in contributing, in some small but real way, to the tree of human knowledge. I wanted to learn something, and have that also expand the bounds of human knowledge. I also did not want to simply be a small cog of some large industrial machine—at least not for my whole life. I had a naive view, ethically, that this would be the best use of my talents. I've since really re-thought a lot of these views. I really started questioning if the best science is done purely out of burning curiosity, or out of a sense of altruism. It's not that I've just come around to pure moral-relativism. Not at all. But I thought about what my actual strengths are, what my weaknesses are, what I could continue to contribute on my current path, as well as at what personal cost. At this point, I had already decided to switch out of academia by the time I heard this speech by Grant Sanderson (3Blue1Brown). I must admit, the title of the speech is a cliché, but it really helped me re-evaluate where my specific talents are best utilized, and what kind of value I actually create.
That's a long tangent to say about halfway through my postdoc, I began to really make efforts towards switching to industry. I highly recommend James Mulligan's post about transitioning to industry as a researcher. It helped me greatly and I'm not sure how things would have turned out for me had I not read it.
What a pleasant surprise it was to start looking for a job for the first time outside of academia in the fall of 2022.
I plan to do a more thorough write-up, but basically I did three things to get the job I ultimately accepted:
- Leveraged the relevance of my current research to appeal to industry. Really put myself out there in conferences with a known corporate component (yuck).
- Really learn data structures and algorithms. This is most related to the quote above. I cannot recommend neetcode.io enough. I did everything up to advanced graphs. No fancy LLM tool can replace good fundamentals. The places you'll actually want to work won't just want you to regurgitate the answer anyway.
- Practice Practice Practice. I ate sh*t at a bunch of interviews. I practiced using exponent where I did mock interviews with people also trying to land jobs.
I ultimately got lucky, but I had to work very hard, for very long, with no guarantee at all that my efforts would be rewarded. It took me a little over a year, and it was rough...
Additional points:
It's important to choose between research and engineering positions. There's a ton of overlap, but they also have different interviews and different trade-offs. It's ok to try something other than research.
Consistency is great, but my process ended up being bursty. I'd always try to do at least one small thing to better position myself for my transition. Edit my resume a bit, ping someone on LinkedIn. Ideally it's something really important like 1 or two LeetCode questions, understanding transformers, etc.
Embrace failure. The system is broken. LeetCode will not make you a better coder, but it's at least in the direction of a meritocracy, rather than just a credential check. I was really, really, bad when I started. It felt for so long like I wasn't making progress, and was just wasting my time. Stick with it, and if somehow possible, try to enjoy it. I really did start liking LeetCode once I got a handle on recursion. Dynamic programming and Graphs can be fun. Probably just Stockholm Syndrome...
I had a supportive PI. This probably made the biggest difference. I was still held to deadlines, but my output dropped, and that was OK. If you're a post-doc, I think this is really baked into the deal. It's a temporary position where you have to figure out the next position. You're likely being underpaid and overworked given your talent, skillset, and education.
Even if you're not transitioning, your last year should be traveling and giving talks to get your name out there. Sometimes, you'll get a PI that will want to squeeze every drop of productivity out of you. If you're not transitioning, this is a really tough spot to be in, as you will almost certainly need the direct support of your PI for any faculty or scientist position you're going for.
If you know you are transitioning, then you just need to do enough deliver your contract requires, so you can keep the lights on while you cry over a fence-post error in your 17th binary search question. I'm so grateful for my PI who was supportive, so I could tell them what I was up to, how I planned to work, and what my intent was. This was mutually beneficial as my PI didn't have any surprises, I still tried my best to deliver on what we agreed on, and I was really able to invest time and effort into my transition.