Some thoughts on industry vs. academia 1 year into grad school
As of the time of writing this blog post, it has been about a year since I left my job at Meta to go to grad school. People somewhat frequently ask me about the experience of moving from big tech to academia. I have seen a couple of blog posts comparing industry and academia which I thought were pretty inane and said generic stuff like “industry is more applied while academia is more theoretical”. I would like to offer a more concrete perspective based on my experiences this year.
Skills from industry that are useful in grad school
It has been interesting to see what skills transfer from Meta to grad school. One skill that has repeatedly proved valuable is code review. At Meta, all code had to be reviewed and approved by a teammate before it could be committed to the codebase, and I got decently good at reading new code and offering suggestions. Some of my collaborators this year were new to programming zk-SNARKs, and being able to give feedback on their code helped them ramp up quickly.
Relatedly, reading code/using code search has been a really valuable skill. A common method for programming at Meta was to use the code search tool to see how other people did something, and then reuse their solution for yourself. The current code search feature on GitHub does most of what Meta’s code search did. Furthermore, being able to quickly read code and use code search/click to definition to find where code implements some functionality also ended up being really helpful. As an example, these skills were useful for understanding various buggy/unexpected behaviors in some SNARK libraries I used. I didn’t appreciate that these were somewhat Meta specific skills until leaving.
Stuff Meta does better than academia
Next, I would like to talk about things that Meta did better than academia (and in some cases, things that I think Ph.D. advisors could really learn from). As I said before, I think code review is really valuable for getting new students/engineers to improve at any type of programming, but especially in a weird programming model like zk-SNARKs/programmable cryptography. I felt like I really helped my collaborators with certain instances of code review, and that I saw some codebases for papers that could have done with some code review (soundness errors, incomplete code, etc.). At a higher level, new software engineers on my team/at Meta got assigned mentors. Mentoring was pretty hands-on, at the level of code review and project planning. I thought that this model was a lot better for helping somebody who has only done undergrad coursework transition to working on long-term ambiguous projects than the more hands-off model of a lot of advisors. I am not sure if this is universal, but it also seemed like this advising model was also better at getting people to think critically and suggest improvements for code/frameworks that they work with.
Meta was also much better at managing distractions/stress than academia. One of my biggest complaints about grad school from the first 2 semesters was how often classes/bureaucracy/seminars/being poor/something else kept me distracted from doing good work. There were multiple times where I had a good idea for something research-related and then just couldn’t act on it for another 2 days because of a combination of things from the previous list. This is compared to Meta, where I could basically code for all day minus 1 or 2 hours, and was doing good quality work much more often. I don’t know what the solution is, but I think people running graduate programs could really benefit from decreasing the amount of distractions. This includes: not sending so many emails per day, decreasing the required courseload, making funding stuff simpler, having fewer but better seminars, etc, etc.
I also have found that I am just more stressed in grad school than I was in industry, which also makes it harder to do good work. This seems like a hard thing to improve, but the two worst parts for me were paper deadlines and everybody having a website where you can go see how much smarter they are than you.
Stuff academia does better than industry
Lastly, I would like to talk about what grad school does better than Meta. This will probably be the most generic paragraph of the post. I like the extra freedom in grad school, and the ability (most of the time) to screw off and just read something or otherwise pursue something interesting. I also felt way more freedom to have ideas for projects. Something that continuously bothered me at Meta was how little control I had over the project ideas for my team, and there is a lot more freedom to contribute in this regard. The feeling that the work I am doing is a more fundamental contribution to science, as opposed to random stuff Meta needs done is also nice. I realize this paragraph was weirdly short, but it is more about not having anything interesting to say than being miserable at the moment.
Conclusion
I hope this is interesting to somebody. If you have any (non-obvious) thoughts about industry vs. academia, please contact me by email or Bluesky or something. I would be curious to hear!