In late April of 2013 I walked into the FreeRunning Technologies office to interview for a co-op internship position as a junior software developer.
It’s now be almost five months since I first started and aside from playing Team Fortress 2 during lunch, here are some of the things that I’ve have learned during my internship:
Test Driven Development: The team are all firm believers of 100% test case code coverage. Learning how to be effectively test code has not only helped me produce less error prone code, but also helped me write much higher quality code by forcing me to make it testable.
Code review with Gerrit: Gerrit is a code review web tool for git repositories. Gerrit’s been really awesome to use as you can get feedback from colleagues continuously without having to interrupt them. It also vastly improves the quality of code that makes into staging as it’s guaranteed to have past under a few other sets of eyes.
Ruby on Rails and MVC: Coming from a MSSQL server and ASP.Net background, Rails has been a treat to work with. Ruby by itself is a great language and Rails provides so many things that make web development less of a nightmare, such as a database agnostic object relational mapping (Active Record).
Cutting Edge Technologies like Jenkins, SASS and CoffeeScript: FRT is incredibly agile, which affords us the chance with lots of new technologies as long as they’re appropriate for the task. A lot of the stuff that we use offers major productivity gains, like Sass and CoffeeScript, and especially Jenkins...
Jenkins: Jenkins is our continuous integration server, he makes deployments 10e6 times easier.
Github: I was using GitHub a bit prior to working at FRT but since starting here a lot of the stuff that I do daily get’s pushed to GitHub (I just made my first pull request into Spree Commerce the other day).
I’ve learned a ton over the last five-ish months and if you’re a University student looking at co-op’s you should drop a resume to firstname.lastname@example.org. You’re guaranteed to have a way more hands on term then you would elsewhere.