This summer, I got the opportunity to be a SWE intern at Transposit. My internship flew by, and I can’t believe how much I learned by working on my project for the summer. At first, I was intimidated by working at Transposit; this was my first internship in tech and my web development experience was limited to small school projects. I didn’t know how “the industry” worked or what would be expected of me as an intern. But, while I was at Transposit and working on my intern project, I gained so much valuable experience and self-assurance as an engineer and am grateful for the time I spent here.
Before I started on my intern project, I worked on a few small bugs for two weeks to get used to the code base and the product. The engineering team had put together a list of several project ideas that I got to review a couple days into my internship and had some time to think about which one I wanted to do. It was clear that I had a lot of freedom with these suggestions and that the proposals were just a starting point. With that in mind, I was most interested in building public profile pages; this seemed like a project that I could have fun with and something that I personally wanted to build for Transposit. In my first week, even before I was aware of what projects would be proposed, I had wished for a way to see the apps that other members of the engineering team had made on Transposit. Personally, I learn best by example- the sample apps on the website were a great starting point, but I was curious about the types of apps my coworkers had built and what they were using Transposit for. I was a new Transposit employee, but I was also a new user. I wanted to look through the different operations, see which data connectors they used, and get an idea of the types of things I would be able to build on this platform. So out of my own curiosity and the added bonus of working on a meaningful project for Transposit, I decided to build profile pages this summer :)
My goal for the Transposit profile page was to provide a space to show all your public apps and hopefully encourage developers to make more public apps. Previously, if you wanted people to check out your public apps, you would have to share the exact URL for each app. My project could be broken down into three parts: the “edit” view of the profile that only the logged-in developer can access, the “live” view of the profile that any Transposit user can view, and adding information to the existing app card, or service stub.
The service stub is a link to the app’s code and settings, and has just enough information (name and description) to know which app you’re trying to navigate to. More information on the stub is a useful feature to have in a public profile, so a decent amount of my project involved adding to the existing stub.
Here is the current service stub compared to the stub that I built.
I added an icon, the date and time of the last commit, number of times the app has been forked, tags to show which data connectors are used in the app, and a little star to “feature” different apps on your profile. I wanted to provide some notion of activity on the app with the date of the last commit and the number of times the app has been forked, as well as provide a bit of extra context with the list of data connectors used in the app. The icon and ability to feature apps on the profile allow developers to customize their profile. Clicking the star will fill in the star and bring the stub to the top of your profile and the ability to change which apps are featured is only available in the edit view of the profile. Featured apps in the live view of the profile will have the same yellow star to distinguish it.
Here’s the edit and live view of the profile:
I built my project using mainly React in the frontend and Java/SQL in the backend. I only had a little bit of experience working with React and Redux, no experience with SQL or database migration scripts, and had never worked on a code base larger than 20 files. After my time at Transposit, I feel confident in working with all of these technologies, although getting to a working prototype of a Transposit profile page would have been extremely difficult without the help of my mentor, Tuan. I worked really closely with him this summer, and he helped me with everything from planning features to implementation to debugging. Every bug or tricky implementation detail was an opportunity to learn and I gained so much more from struggling with Redux than I ever thought I would.
Seeing this project through from planning features to actually building a working prototype has been so gratifying. I feel a certain ownership over the project and am proud of the work I’ve done at Transposit, including the few bugs that I worked on throughout the summer.
I feel like the nine weeks I spent in San Francisco working at Transposit went by faster than I thought it would. I remember my first day of work so vividly, especially since I started that day by taking the MUNI light rail in the opposite direction of the office and all the way to the beach before realizing I went the wrong way. Eventually I learned how to get around with public transportation and also settled at Transposit (public transportation was infinitely more stressful). I only felt welcomed by everyone at Transposit and loved being a part of the team this summer. Thanks to everyone at Transposit for making my internship a genuinely fun and educational experience, I appreciate you all. ✨