This week I’m ending my internship at Replit, and these are my ending thoughts…
- The Replit team consists of the best engineers and designers in the world.
- This is kind of naive considering I don’t have much experience with the typical best engineers in the world, but I can tell that the sheer grit, determination, and commitment at this company (along with talent) is not common elsewhere
- A corollary of this is that I felt imposter syndrome quite often. Since the quality of product/engineers was so high—I felt scared to make changes, ask questions, and contribute to the project. This team doesn’t really make common mistakes, so why should I?
- An open slack environment is awesome, but it is important to have a “safe crew”
- There were a lot of times when I was told to ask things in public channels instead of private channels for slack transparency and to reduce direct workload. Although I understand this is for the best, it is discouraging of the overall question asking environment that an internship should foster.
- For me this “safe crew” was Ornella, Reza, and Jeremy. They were very willing to respond to questions and just “shoot the shit”. Being in person was a major part of that.
- I felt there was a culture to limit direct pings (like DMs or pings). I kind of went against this, but again it added some frictions to pretty trivial things.
- Asking questions in public has a lot of mental overhead
- Did I do everything I can such that my question doesn’t look stupid?
- Is my message concise enough such that people will read and respond to it?
- Does my message include all the context that someone would need to answer this question without asking why?
- These are all in general pretty good things things to do before asking questions and I’m happy to have learned these skills I guess, but I feel like I could have added more value if this wasn’t a small impeding factor.
- Convenience is cool, but get a work laptop.
- Having a slow laptop was honestly the biggest regret I had during this internship. It constantly allowed me to get distracted on things I was working on. Do not underestimate the overarching disruption of waiting.
- Reza asked a great question: “If I was CEO, what would I be doing.”
- I would stop a good chunk of projects, even Repl Auth (the main project that I worked on), and focus on feature parity with VScode, Cycles integration, and super stability. It seems like there are way too many papercuts or reliability issues at Replit still.
- Important to note that it’s easy to say this coming from the inside. On the outside, people love us.
- There is also some projects that seem fun, but actually have almost 0 benefits for us. A great example was the new threads compartments project. Tbh I liked the old ones better, but in general this project seemed sexy because it involved new UI and primitives, although ended up being more challenging to use.
- I would stop a good chunk of projects, even Repl Auth (the main project that I worked on), and focus on feature parity with VScode, Cycles integration, and super stability. It seems like there are way too many papercuts or reliability issues at Replit still.
- I wish I spent more time learning.
- This is no fault of the people at Replit but rather of the mindset I had coming in. Since I thought Replit was a very “hack and ship” type of company, I thought that my key value add to the company would be the amount of things that I shipped. Because of this I would often learn things just enough to get them working, and in the process blackbox lots of other things.
- This could also be a sign for lack of proclivity to learning—will work on this in the next 4 months.
- It feels great working on a small team
- This internship has further confirmed my suspicion that I would hate to work at large companies. I know everyone at Replit. I know their roles, their strengths, and their personalities. To me, this creates more incentive to work on things with the team. This also ties in to my philosophy that you should be best friends with your coworkers
- Be tenacious in building connections
- I’m unsure how other people felt about this, but I found myself trying to make plans or bring people into the office a lot. This was purely for my benefit, but eventually I ended up doing some fun things with the team that wouldn’t have happened if someone didn’t take the initiative.
- It’s hard to predict timeframes in software development
- I’m always behind schedule. I guess a better strategy is to “look in from the outside” and guess based on empirical data of past projects for how long this would take. There are lots of things that took me one day to build but weeks or months to refine and position in a way such that I could ship it.
- Testing
- It sucks but its necessary. I know. I broke prod a couple of times and it was not fun. Actually it was a little bit of fun (great learning opportunity) but you get the gist.
- replit is awesome 1