As I have mentioned, I have asked our employees to share a blog from time to time. This one from Michael Comstock as he wraps up his summer with us before heading off to RPI. I asked him to share his experience and learnings. Thank you Michael and good luck in the new semester.
Imagine doing a kitchen remodel. Wait! Put the pitchforks away, we aren’t actually doing one. Before you start building, you must make decisions. These decisions often include considerations of how you are going to use the space. Maybe your significant other is a fantastic chef, and you MUST have gas cooktop. Or maybe neither of you like to cook, then you will need extra counter space for take-out. The point is, you will build for things you need and avoid things you don’t. Should you desire a soft pretzel maker with a built in cheese warmer for late night munchies (seriously that’s a thing) then you will need electrical outlets and additional counter space.
But what if you are building a commercial kitchen? One that is going to be rented out by people for a variety of different uses? You must be ready for people to use that space for every task it was designed for (and possibly some you never could have foreseen). Programing has similar questions that need to be addressed. Are you building reusable code which can be modified and adopted by others members; or are you building more function specific code but with less re-usability value. As a very new programmer and a student, I realize that life is uncertain. Today I might be working on a framework in Angular for displaying tenants and tomorrow I might have to hand off my work to someone new. How will that person handle the code that I wrote? Will they be able to intuitively understand the architecture or will they have to clean the slate and start my work again?
Over my time at Escape Velocity, I have learned that I need to consider the longer-term value of the code I am developing. When I was coding on my own, my projects consisted of small code libraries with various fragile code pieces. Just like knowing just how to slam the refrigerator door to get it to seal, this is fine if you are the only one using the kitchen. But not so good when the guest chef comes in and accidentally defrosts all of the meat. One of the advantages of working as a new programmer amongst the brilliant, senior software engineers is that it forces me to look long and hard at my code and think “what can I do here to make my code matter?” What can I do to make sure that in 5 years, my code is still in use? The answer to that is always to make sure that the next person (or my own self) can use it. It may not always be the most fun option, writing more code for the same outcome, but in my tenure at Escape Velocity, the robust foundation I built at the beginning is already showing its use, whether it be exposing bugs easily, or keeping them from happening.