Over the summer Cole and I had the opportunity to intern at Jackpine Technologies in
Maynard Massachusetts. Jackpine’s primary service is Cons3rt, software that the Department of Defense and other clients use to automate and manage their presence in the cloud. We started our internship with training in handling CUI (Controlled Unclassified Information) and preventing insider threats from leaking important company or government data.
For our first project, we were tasked with sending automated messages to Slack when certain software tools get updated. Jackpine uses many third-party tools to develop their products, and therefore needs to keep track of the latest versions of all those tools so their products are updated and secure. Mr. Peter Walsh and the Admin Team helped us write a list of every service needed, which we tracked through every step of the process in a spreadsheet.
We used a service called Zapier to speed up our process, which helps schedule tasks, send Slack messages, and read the RSS feeds companies put out.
Some services don’t have all their release information in an accessible place, so I wrote a Python script to scan web pages every day to find the latest release version number and then send that back to my program. Many of Jackpine’s projects go through a process called a pipeline every time a new change is made, which packages up all the code and scans it for vulnerabilities. My job for our second project was to send a Slack message about the vulnerabilities found in all the latest pipelines, how severe they are, and what the team can do to fix them.
I used Javascript to grab a long detailed list of vulnerabilities in a giant chunk of text that the platform Gitlab provides through their API. That list was then parsed into a simplified list whose results could be displayed. This step proved to be the hardest because the output often spanned hundreds of pages. They all had to be scraped at the same time because one page at a time would take too long. Zapier didn’t have the complexity to do what I needed, so the output was then sent to Slack API, where the messages were built block-by-block with code into a formatted and clearly readable version. The message also incorporated elements of the Simpsons (yes, the TV show), a beloved theme of many of Jackpine’s internal tools. I chose to name the Slack App, a tool to create automated interactive messages and bring outside software into Slack, after the character Dr. Hibbert. In our daily “story” meeting to discuss the project, Mr. Ray Smith helped decide what the messages should include and how frequently to send them. He also helped bring in other team members who had previously worked on similar Slack Apps. They helped set up Dr. Hibbert’s own pipeline and deploy him to Jackpine’s servers.
Even though many of my contributions took existing information, the value I added was presenting that information clearly, which made other developers more likely to take action to stay up to date and secure. The most insightful part of this internship was getting a thorough overview of every part of the software engineering experience in only a few weeks. I wrote code, committed it to source control, and monitored what happens when a new version gets built and deployed. I didn't just read about the tools, as I got to write my own code, see it running on a server, and then inform the team about how it was working. I got to share my contributions with the entire company in a morning “scrum” meeting, where product status and uptimes were reviewed and every team shared what they planned to accomplish that day. I am so grateful I had the opportunity to intern at Jackpine this summer, and for the invaluable mentorship and experiences. Thank you to Mr. Walsh and Mr. Smith for taking the time to meet with us every day, for their great insights, explanations, and career advice, and thank you to Mr. Schlenker for making this all possible.
Comments