Tale of two cities

In January, I took a one year leave of absence from the University at Buffalo and joined Amazon's Automated Reasoning Group at AWS S3. At S3-ARG, our mission is to apply formal methods for verification of large scale distributed systems to provide durability, availability, and security guarantees. It has been 5 months, and I am loving it. 

Going forward I will have more opportunities to talk about my work at S3-ARG. Today, I wanted to reflect on the difference of objectives/incentives in industry and academia and how that shapes the corresponding landscapes. What I write is *my subjective experiences*. At both places I have been blessed with great colleagues and great working environments, so my comparison is mostly about relative merits of ideal positions in academia and industry. 

What's the goal?

The goal of academic research in CSE is to sell a new vision of 10 years in the future.  In academia, there is a very perverse prioritization of novelty over practicality, usefulness and thoroughness. For example, the function of academic writing is NOT to communicate your ideas, but to change the ideas of an existing community, to convince them of your novel idea/vision. Complex solutions and writing may serve for this vision because they act as a costly signaling mechanism.

The goal of industrial work is to fulfill the needs of the customer/business and deliver value now. Novelty is not important, the important thing is the value provided. Complexity should be avoided because it conflicts with the goal of delivering on time.

These stark differences in objectives shape the landscape of industrial and academic work. 

The industrial landscape

I was surprised to find an order of magnitude more collaboration in the industry than academia. Academia is a lonely game. Due to the obsession on novelty, if you have a good idea you like to keep it to yourself to get the credit. In industry it is common for even people across different teams to collaborate to create value as both parties get credit for the value created.  Unlike academic collaboration that has to be very deep and that seldom bears fruit (both issues stemming from the novelty requirement), collaboration in industry works faster and helps parties make progress quickly.

This collaborative spirit also comes through in terms of support frameworks. In industry (remember I am talking about well run teams), your manager and team tries to help your success, because they are in the same boat with you and they are invested in you. In academia, your performance and status is unaffected by an underperforming colleague. The common attitude departments have for new faculty is to wait and watch who would swim and who would sink. The worthy shall survive (!). After seeing how thorough the orientation process is at Amazon, I felt ashamed that we are doing our students and Assistant Professors an injustice. We should give them a 2-3 weeks bootcamp to give them the proper mindset and tools to be successful.

Another thing that surprised me about industry is the amount of intellectual stimulation there. There are tons of stuff to learn and a lot of internal talk videos and reading material to learn from. I am getting two hours a week of individual help from a mentor in my team in deductive formal methods. It feels like getting another PhD.

The academic landscape 

The long lookahead time in academia affects your cadence. If you miss a conference deadline, the next one will arrive in a couple months, why worry? No one depends on your work, and it is OK for your groundbreaking vision to wait for another 6 months to surface. In contrast in industry, there is a lot at stake. Other people and teams depend on your work, and you have tight non-negotiable deadlines to deliver at, which can be stressful.

At academia, you are free (actually incentivized) to drop something the point you are bored or overwhelmed with it. You are supposed to find interesting novel problems so you should be picky. This is not as good as it sounds. I often find myself wasting too much time for picking a worthy problem, which makes me feel guilty that I am idling too much. It is the price to pay for chasing novelty.

In industry you can't drop work when you are bored or overwhelmed with it. You are stuck with the project until it is done, or at least by the end of the year because most allocations are made annually. This is also not as bad as it sounds, because you can change areas every couple years or so. Many people move across problem domains, teams, and even departments to take on new problems. 

A hot take after 5 months

My department chair lives in my neighborhood, and last week he saw me in front of my house. We chatted to catch up on things. He asked me if the work at Amazon is much harder than the faculty position. I hadn't thought about that question before. I think I surprised both of us when I said the faculty position is actually much harder. At the Amazon job, I have one project to worry about. But at the faculty job, I have to worry about multiple projects with multiple students, worry about raising money from research grants, worry about teaching, administrative responsibilities, and service duties. 


Popular posts from this blog

Graviton2 and Graviton3

Foundational distributed systems papers

Learning a technical subject

Learning about distributed systems: where to start?

Strict-serializability, but at what cost, for what purpose?

CockroachDB: The Resilient Geo-Distributed SQL Database

Amazon Aurora: Design Considerations + On Avoiding Distributed Consensus for I/Os, Commits, and Membership Changes

Warp: Lightweight Multi-Key Transactions for Key-Value Stores

Anna: A Key-Value Store For Any Scale

Your attitude determines your success