Juan Philippe is a Junior studying Computer Science at Duke University. He joined Instrumental as a software engineering intern this summer to ship production code, creating features that help customers across the manufacturing world.
For my internship this summer at Instrumental, I developed the beta version of Instrumental Reports — a feature that shows our customers where their units are on the assembly line in near-real time, and can be viewed from anywhere in the world. Reports is useful for engineers tracking configurations in a development build or operations folks monitoring ramp progress. This allows our users to easily keep track of an assembly line’s current status as well as its state over time, giving them insight into potential blockages on the line, what units are currently being built, and where intervention might be needed.
Creating Reports was an exciting process. Instrumental’s agile development process drives well-organized software development cycles. During my internship, my mentor, Isaac, and I met every other week to decide what aspect of the feature I would be building, repairing, or enhancing. Building Reports involved implementing a Model-View-Controller paradigm: using the Model to process and contain unit data, the View to render the page with data into HTML, and the Controller to integrate and operate the Model and View. To test the feature’s functionality and the data’s veracity, I wrote functional and unit tests. When more features are built into our code base, these tests will guarantee that the original functionality is preserved.
Isaac is one of the best mentors I have ever had. He and everyone in the office demonstrate on a daily basis Instrumental’s knowledge-sharing and question-oriented culture. The clearest example of how Isaac helped me grow as a programmer is his code review process. At each stage of building Reports, he reviewed all the code I worked on at least once (usually thrice) before we started using it. Isaac’s reviews are extremely meticulous; he recognizes and patiently points out anything from stylistic errors to poor design decisions. As a result, I had the opportunity to improve my code, enabling me to write production quality code through this iterative process.
As part of Instrumental’s software team, I felt supported and appreciated. Instrumentalists love to spend time helping each other out for the end goal of high productivity and low frustration. As an example, I was tasked with implementing a front-end change in how we handle timezones for time-associated data. I had to reach out to multiple members of the team to clarify different aspects of the problem and get feedback on possible solutions, and I was met with nothing but positivity, lots of help and encouragement as I worked to create a solution to this tricky problem.
Looking back, I feel lucky to have spent a summer here. Instrumental’s culture encourages personal growth, teamwork, and solving interesting challenges. I don’t think I could have gotten more out of a summer internship!