My First Taste in Industry: An Intern Perspective
You're a kid again and hooked on LEGOs. The infinite potential of LEGOs is captivating, and you decide that you want to do for the rest of your life. So you spend the next four years of your life to learn how to become a LEGO architect. You start by learning about the basic building blocks and how to use them. You also learn how not to. Remember trying to get two flat pieces that are stuck together apart? I'm sure your fingernails do.
Next, you start building basic designs based on instructions you're given. First you construct a box, then a small tower, and, if you're lucky enough, finish an almost completed X-Wing. If you get stuck, you either look at the instruction manual or ask a LEGO professional, and you're back on track. Finally you get your very first LEGO architect internship. You arrive, confident in your ability, but quickly realize that instead of an almost-completed miniature X-Wing the company is architecting a skyscraper that thousands of people a day rely on to do their job.
Interns volunteering in the soup kitchen at Glide Memorial. From left to right: Luke (University of Washington '17), Eli (Brown University '16) & Grant.
Okay. Time to abandon the metaphor.Hopefully it is clear that by LEGOs I really mean code, I was talking about college, and I was the aspiring child and am now the intern at Delphix which builds data virtualization software, not skyscrapers.
My project is to add support for SAML (Security Assertion Markup Language) single sign on into the Delphix Engine. This will allow customers to redirect their users to an internal authentication service thus gaining access to the engine instead of using the local login system.
Similar to many projects in school, I started with a blank file. However, there are two key difference. First, in school, when asked to build a web server, or Tetris, or an X-Wing, whatever it is, there is a specification. It has handy diagrams, common bugs, and design suggestions. This didn't exist for my project, or really any project in industry. I have the general brilliance of my mentor and other Delphix engineers to lean on, but none of them have implemented a SAML service provider either. The second is that in school, code is written primarily from scratch. Sure we use languages' built in libraries, but using an external library is out of the question. Here, my entire project is built on the external library OpenSAML.
Just to be clear, I'm not suggesting that school is a waste of time or learning how to implement a web server is useless. I'm simply saying that, in my experience, a large chunk of the picture is missing, namely how software is created in the real world.
Over the summer and with the help of Delphix engineers, I've come to understand that not everything has to be built from scratch. Node.js can create a web server in five lines of code and five minutes instead of the hundreds of lines of code and the countless hours it took to finish one that was mostly implemented in my systems class. OpenSAML transformed a multi-faceted, error-prone problem into one that even a novice like myself could tackle in 2 months.
As my last few weeks at Delphix wind down, my project is coming to a close and (to my surprise) it's functional! The start of school is still over a month away, and I plan to fill it playing with LEGOs. What's more fun that being a kid with LEGOs? Try being a 21 year old with LEGOs and realizing that you don't actually need the instructions.
Grant celebrating a sunrise hike in Yosemite with friends.