A year and a half ago, I had never written a line of code. I didn’t know what a class or boolean was, or how you’d go about turning an idea into an actual working application. Fast forward to now: writing and shipping software every day as a co-op Software Engineer.
What is most unexpected about my takeaways from my co-op experience? The most important lessons are surprisingly not related to a specific technology or tool. My biggest takeaways from this experience are more abstract than these tools: they’re ideas that have redefined my expectations of what a job should and can be.
I was always enticed by the idea of creating things. As a kid I used to draw a lot. I loved playing around with Photoshop, making logos and designs for ideas I had. I even learned a bit of HTML to put some of these on the web. There’s an innate beauty in putting time and work into something and having a tangible result to show for it at the end. There’s also those amazing moments of just pure happiness working in that iterative process.
Most of my coworkers share this same passion – everyone here seems to have a side project or hobby that involves creation in one way or another. There are musicians, podcasters, writers, artists, cooking enthusiasts, photographers, app developers, beer reviewers; this constant creative inspiration makes for an amazing work environment.
Humility and Passion are King
At my previous non-technical jobs, a strict top-down management style seemed like the default methodology for getting people to do things. No thanks. Seven months in, and I understand that by hiring passionate humble people who love creating things, a lack of motivation suddenly stops being a problem: the work and thrill of creation is the motivation. No need for strict start hours or dozens of meetings, all of this just comes as a byproduct of getting people to do what they love. There have been a number of occasions where I was stuck with some problem, and coworkers with decades of experience didn’t hesitate to step in and help me out even though I knew it was probably a trivial problem to them.
Learn by Doing
My first few weeks at Hootsuite were overwhelming at times – diving into a massive codebase with the bit of experience I had was a challenging but amazing experience. I’m almost at the end of my co-op term, and I can say I learned to take the opportunity to dip my toes into dozens of new tools and technologies, from job schedulers, to loggers, data analytics, third party APIs, and too many others to list here. Learning is one of those activities, like creation, that just makes me inherently happy, and the fact that I get to do it in my job is really cool.
Beautiful Code Matters
In school I learned the concept of writing “good code”, but during my time here I learned appreciate the importance of it first hand. For a few months I worked on tracking and fixing small bugs in the codebase, and this meant sifting through thousands of lines of code everyday. If a certain feature was well written, I’d be able to track down the bug in no time: I could almost sense where the code was going next thanks to naming conventions, proper indentation, and well written documentation. Debugging was such a smooth flow and, dare I say, even fun at times. Bad code, on the other hand, felt too wordy or too concise and it made simple fixes take hours to track down. My takeaways are that I try to leave any code I touch in a better state than I found it and appreciate our thorough code review practice.
A Short Feedback Loop Feels Good
There’s a well defined set of steps between the time I write code and the time it reaches the cloud. The focus is on keeping a balance between speed of deployment and quality of the code. This process is different for every company, and as my first experience in a technical position, I’m spoiled by our continuous deployment process where we push code to production multiple times a day.
Besides being able to react quickly to problems and get products to market very fast, there’s very human benefit to that process, too. To me it means I get to experience little hits of joy everyday and it provides the chance for closure – those little cycles of accomplishment make my work feel complete.
Focus on Happiness
My first week here I got to do or see all of the following: deploying code on my first day, five of my co-workers talking about things they’re passionate about, a nerf gun war, enjoying craft beer after work on Friday, and playing a ping pong match. I was surprised by how many cool things I took part in while also putting in a ton of good work – feeling happy and inspired keeps me productive.
My experience here has reignited my passion for entrepreneurship and creation. I’ll be leaving Hootsuite knowing a ton more about programming, the type of work I want to do, and a sense of reassurance that development is right for me. It’s been an incredible 8 months of learning, doing, and having fun.
Thank you to all the members of the CoreUX team for teaching me these lessons. Thanks to Chris Richardson, Kimli Welsh, and Noel Pullen for their input. I hope future experiences are as rewarding as my time here.
About the Author
Rennie Haylock is a co-op student on our CoreUX team. His interests include graphic design, and building web applications. Follow him on Twitter @renniehaylock.