This is a guest post by Wootric’s summer intern, Collin McKinney. Collin joined our engineering team in June and quickly became known for consuming absurd amounts of hummus, Kendrick Lamar, and off-the-charts productivity. Friday is his last day with us in San Francisco, and we are glad he is going to continue to contribute quality code remote from his dorm room at Dartmouth. Thanks Collin!
Before coming to Wootric for a summer internship, my programming experience was limited. I had taken a couple of object-oriented classes in Java and that was about it. I quickly found that my in-class experience did not immediately translate into workplace competency.
To summarize: I learned a ton this summer. Some of it was easy to pick up, while other learning curves were a little steeper, requiring excruciating amounts of patience on my part. But by far, the most valuable knowledge I’ve gained from the internship involved core principles of software development—concepts that transcend language or platform specific skills.
Specifically, I experienced first-hand the impact of quality code.
The Training Wheels Come Off
When I landed in San Francisco in mid-June, I still didn’t know what I was getting into at Wootric. I began my internship with reservations about my own abilities. I knew there would be no formal training in an early stage startup. As my start date approached, I found myself wondering: am I capable of fulfilling their expectations?
Fortunately, I soon found that those concerns were not necessary. Within two weeks, I was actively contributing to the application and to team discussions. When I was asked to perform a task or make a change, I felt like I could handle it.
And what a good feeling that was.
Looking back, I still can’t believe that I, the summer intern, was able to participate and feel so comfortable doing so. While I’d like to believe I owe it to my own prodigious programming abilities, I am very aware that my delightful onboarding experience is actually a testament to the Wootric team and their work.
Balancing Speed and Quality
The engineering team at Wootric is dedicated to quality code. They quickly taught me that, even at the start-up level when development speed is important, code quality cannot be forgotten.
A development team that fails to write quality software finds itself converging to the point where it becomes “easier to rewrite everything than to change anything” (from Practical Object-Oriented Design in Ruby: An Agile Primer).
This is not news to most developers.
However, Wootric’s dedication to quality code directly impacted my internship experience. It made my job far less frustrating and allowed me to learn at a rapid pace.
My day-to-day life at Wootric went something like this:
After being assigned a task, such as adding a small feature, I searched for anything in our codebase that vaguely resembled the objective at hand. I then used this example as a model for my own work.
In a sense, my job was to utilize the existing codebase in ways that added functionality or improved it.
If I had been working in a hastily written application, this may have been challenging. If I had been learning from poor code, I certainly would have just produced more poor code. However, the quality of Wootric’s software made my job quite easy. Consistent and specific naming conventions facilitated my searches and readings of the codebase. With modular code and few dependencies, the Wootric app proved quite easy to change and add to.
In an alternate universe, Wootric might have chosen a different direction with its software. If the company had opted for pure development speed over code quality, the pain would especially be felt by new hires or interns like myself.
Convoluted code would have presented a steep learning curve, which would have stressed me out beyond belief.
My time in San Francisco would have been less joyful and unnecessarily intense.
Serious Fun, You Must Have
I could write endlessly about my experiences at Wootric. I worked with and befriended some of the greatest people I have ever met. I participated in start-up antics like escaping rooms, eating chocolate and cheese, and judging guacamole quality. I learned more about working at a software startup than I ever could have hoped to.
Wootric places a serious emphasis on its values, including Areté (the act of living up to one’s potential), Trust and Be Free, and Serious Fun, You Must Have. It’s hard not to be inspired when you’re part of a company that understands itself, and I often felt like I was contributing to more than just an awesome cloud-based application. I was contributing to a culture.
But ultimately, my experience simply would not have been the same if I didn’t enjoy the time that I spent coding.
Code Quality: Interns Rejoice!
On behalf of interns everywhere, props to any company that values code quality. By focusing on the issue of quality and consistency in the early stages, you are creating an application that can practically improve itself as new developers or interns come in and base their code off of the work that has preceded them. It contributes not only to the creation of a better end-product, but also reduces the cost and pain of on-boarding new team members.
As an intern who was ridden with anxiety after traveling 3,000 miles away from home to work for a software company, I am deeply grateful for the care that Wootric put into its code during its early years.
Now, as I prepare to go back to the great state of New Hampshire, I’m fortunate enough to have the opportunity to continue working for Wootric remotely and to continue this commitment to quality code.
Start measuring Net Promoter Score for free with Wootric