Blog > 'Tis the Season of Retool
'Tis the Season of Retool
Reflections from interning at a fast-growing unicorn enterprise software startup
1,299 words, ~ 6 min read
Yesterday was the last day of my internship as a Software Engineer Intern at Retool. It's been a fantastic 4 months and I've learned a lot while having a great time.
note: this post does not contain any sensitive information, as I am subject to an NDA. a lot of it is in the abstract. if you want to learn more about the company, it's projects, and what it's up to, check out the docs or release notes.
Table of Contents
What is Retool?
Retool helps you build internal tools, fast. Internal tools refers to software apps that are meant to assist individuals within a company looking to use the tool for some company objective.
For example, let's say I ran a drop-shipping service. I do so all over the world, and I want to build an app where I can view the average time to ship, with additional filters like location, time, and type of item being shipped. All of my data might be stored on two locations (for whatever reason), such as on AWS Redshift and PostgreSQL.
If I was building an app by hand, I would need to create a backend that talks to both services, then build a frontend with all the filtering capabilities to make requests to the backend. That's fairly involved.
With Retool - I just take my credentials for each database, write some queries, then drag and drop components for the map, for the filters, etc.
Note that I won't be talking about any specifics of the product. For that, you should check out the company page and the docs.
I first found out about Retool because I wanted some free shirts (I know, yes it was for merch, but to be fair I do wear them a lot). There was an event on campus in the spring, and I talked to some people and found the company interesting. I later followed up, was able to get in the interview process, and ended up getting and accepting an offer.
I can't talk too much about the interview process, as I signed an NDA. I will say that it was pretty thorough and fair.
At the time, my plan was to graduate in Spring 2023. But after this offer, I thought about it and decided to take a gap semester instead, so that I could fully focus on learning as much as possible. Maxing out the number of classes the first two years allowed me to do this, a decision I'm thankful for in hindsight.
Going in, I wasn't really sure what to expect. I had a prior software engineering internship, though it was at a fairly well-established company, not a startup. I had also seen how Microsoft operated, though Microsoft is one of the largest software companies in the world so their approach has been around for quite some time.
I can't go into too much detail here about the specifics of how Retool operates, but I can paint some broad strokes.
There's a lot that this particular team is responsible for - and when I first joined, the team was fairly small. It's been growing as of recent (in comparison to the time of writing this post). There was a considerable amount of stuff I got to work on, and it was pretty interesting to ramp up.
Did I say interesting? I meant challenging. Looking at the code now, I'm able to understand and follow the large patterns now that I've been here for a while. At the start, though, it would be small things - like reproducing a given error, that would take me a full day.
I've seen a lot of people mention that being more senior as a software engineer is being able to look at code written by other people and understand what's going on in addition to the specific problem at hand. I think that's a good way to put it. And since I was working on so many parts of the platform, I got to see a lot of examples of this.
Retool moved to a larger office a little before I had started, but instituted the return to office policy a few weeks after I joined. There was a big series of events, called RTO week. Unfortunately, I was sick for about half the week, so I missed quite a few events (including what was apparently a really nice yacht).
The office was pretty nice. One thing I've come to realize is the value of having other people that are working on similar things as you in close proximity especially as a newer engineer. There are a lot of questions that are quite simple to answer in person, and some like setup issues are just easier in-person.
There's also a sense of camaraderie that's very difficult to replicate. After working for a few hours, I could get up and head over to another team, talk and make some jokes with a few other engineers, go get a snack, and then come back to work. When working from home, it's difficult to replicate the same environment. I can try to talk to my roommates, if they're not at class, or watch something, but human interaction is important.
Of course, I kept a careful eye out for the snacks and food at work. I found a lot of variety, which was definitely welcome. My team was fantastic. A lot of support and camaraderie made work fun.
This team has a pretty wide scope - as such, I got to work on a lot of different parts of the platform, on the frontend UI and the backend with connections and database migrations.
Fixing bugs was really interesting. I've always enjoyed shows like Sherlock Holmes and Elementary (I'm aware both are about the same character) and this felt a lot like that. While these matters didn't lead to any books being written about me, it was this pattern of trying to first recreate the issue locally, then diving into how the given process worked, where it was going wrong, how I could fix it, and finally how I could add tests to ensure future stability.
Of course, there were numerous moments in which a fix that I implemented turned out to break something or not quite work right. At a startup, the goal is to push code frequently, so it was (initially) quite jarring for me. But this too was a learning opportunity for me, to understand how to feature flag to avoid reversions and rollbacks, along with cloud and on-prem release processes.
Writing this post was fairly challenging for me - I still can't believe my time here has come to an end so fast. I've grown and changed a lot over the past few months, especially in comparison to the first month where I found myself struggling for hours at a time.
To summarize what my goal was for the past few months: learn what makes software successful. It's a question that I'm still trying to answer, but more pieces are being put together to complete the puzzle. I made a LinkedIn post as well about this, which you can find here.
Lastly - why the title, "'Tis the Season of Retool"? Over the summer, the company had a theme of the Summer of Retool, even making shirts for it. I thought it would be fun to continue the theme, and I'm excited to see what the company does next.
Here's a final picture of me with my team.
Found this interesting? Subscribe to get email updates for new posts.