Trek10 Cloud Engineering Internship
Launch Program
During the entire spring semester before our internship, the interns participated in Trek10’s Launch Program (shoutout to Mitch Bryant for leading it) where we were trained on AWS services. The end goal was to receive our AWS Certified Solutions Architect Associate certification.
Certificate
After the spring training and some self-studying on my part, I took the AWS exam and passed!
Pandemic Adjustments
Despite the pandemic, Trek10 (big thanks to Dave Russo) kept the summer internship program alive with the slight modification that it would be remote.
Mentor and Project Assignment + Onboarding
During the first week, I began Trek10’s onboarding process and was assigned my wise and wonderful mentor Ryan Scott Brown, who, incidentally, was a huge help to me throughout the program and has made me a better cloud and software engineer. During my first meeting with him, I was able to choose from a list of projects to work on and was immediately drawn to the VPC Topographer (because I have a weird obsession with graphs). The VPC Topographer is a web app Ryan made as an internal tool for Trek10 to visualize VPCs and show how all of their components are connected. We decided I could build a pipeline for it and add some more functionalities to the app itself.
VPC Topographer Additions
CI Pipeline
After learning about how to build pipelines and about their intricacies and importance, I built an AWS one for the VPC Topographer using CodePipeline with CodeBuild and deployed it with CloudFormation. See its architecture below and notice in the last stage, the pipeline updates itself!
Sign-In Feature
Before creating a comment feature for the app, I had to create a sign-in feature to enable commenting only for those signed in with Trek10 emails and to ensure comments were always authored accurately. This required me to learn some react, so I could integrate authentication components into the frontend of the app and on the backend, learn how to integrate an OAuth client with two different AWS services to authenticate the user signed in and give them write access to the app’s database.
Comment Feature
Once the sign-in feature was finished, I made the comment feature, so users could create, edit, and delete comments on the VPC graph and its components. The comments are saved to the app’s database and visualized in a comment table within the app (see below). Furthermore, the table is dynamically filtered, such that if a component is selected, only comments for that component are shown, otherwise VPC-wide comments are displayed. Annotated components have a little speech bubble (see webDMZ component in above screenshot). To build this, I had to learn more react, databases, and in general, techniques for integrating frontend and backend logic.
Appreciation
I really enjoyed my internship and thought my project involved the perfect amount of architecture and more traditional front/backend software development work. Thank you for a great summer Trek10!