I’m not sure this is the right place for this, but I’m in a bit of a dilemma about next steps for my career and just wanted to outline my thinking in case anyone else has been in this position and has a bit of insight.
The crux of the matter is that I’m currently a entry-level software engineer at a big tech company trying to figure out how to get more involved with theoretical computer science/ applied math research and whether I should apply for grad school (PhD, masters, etc).
Some background: I’m a recent computer science bachelors graduate (class of 2022). Most of the classes I took in undergrad (after the necessary reqs) were theoretical CS flavored (advanced algorithms, cryptography, computational complexity, etc) along with an occasional math course (modern algebra, combinatorics). I joined my current big tech company back in August/September as a software engineer, primarily working on machine learning infrastructure. I’ve found the work reasonably interesting at times and have definitely been learning a lot about how to be a better engineer.
That being said, I don’t think this work is the right fit for me interest-wise in the medium/long-ish term. If I had no work-related obligations, I would be spending nearly all of my time exploring deep learning theory related research. To be explicit, this is about formulating a more well-understood theory of deep learning, potentially with concrete guarantees (as opposed to more experimental deep learning research that seems to be all the rage these days). Indeed, this is what I’m doing right now: nearly every morning I get up and spend a couple hours before work exploring recent literature, playing around with half-baked ideas, working through a textbook, etc. My weekends are almost entirely dominated by this. That being said, I could plausibly see myself getting interested in another theory-related topic: though the further it gets from theory work, the less likely I am to stay interested in it.
The main bottleneck I’m currently having is that I’m not able to spend as much time as I’d like to do research/learn. Part of the problem is that work often gets busy, but even on relatively easier weeks I still wish that I had even more free time to work on research/learning.
One important thing to note is that I have not trained extensively as a researcher. I have worked in a few research labs in undergrad (mostly experimental machine learning but also with a theoretical computer science professor, though we never got particularly far). I am skeptical about my current ability to perform well as a theoretical researcher without some extensive mentorship. I also expect that my math background is weak relative to most theory researchers. I can’t say for sure if research will interest me long-term, but I’m willing to test this for the next couple of years. I am fairly confident in my ability to return to a software engineering position if things don’t work out though.
At this point, I’m considering what my options might be for both the short and long term.
- Apply for a Phd program directly potentially with options of both industry or academic careers (and if push comes to shove, returning to become a software engineer again afterwards).
- Apply for a masters and do as much research as I can during that time to see if I truly enjoy doing it/ have the ability to do it well to potentially apply for a Phd afterwards.
- Try and find a way to get myself on a team at my company that is doing work more aligned with what I’m interested in long-term
- Try and find a way to do research with nearby research labs (reaching out/cold emailing professors, postdocs, phd students, etc)
- (4a?) Reaching out to previous professors who I worked with to try and continuing doing work with them.
- Quitting my job and spending as much as my time as possible doing research (while living on savings?)
These options aren’t necessarily mutually exclusive. I’d expect that if I went for 1 or 2, I would apply in Fall 2023 with the expectation that I would join in Fall 2024 (which is pretty annoying actually, I’m wondering if there are any opportunities with faster turnaround times).
With respect to 3, the company that I work at has research labs with a good number (>15?) researchers working in areas I would be super excited to work in (as well as many more that I would be generally enthusiastic but slightly less interested in). I did reach out to one of them to see if there could be any opportunity of doing part-time work with them, but the impression I got was that I need to significantly strengthen my math background before being able to contribute, which I felt was fair.
Sorry if this was a bit of a ramble, happy to clarify any details as needed. What am I currently overlooking when thinking about this dilemma? How would others approach this decision-making process? As a followup question: if I decide to apply for a PhD/master’s program in the next admissions cycle, what are the best things I can do in the next few months to strengthen my application?