Each summer we welcome a couple of interns to join the team here at Administrate, usually as part of the Development team. They typically arrive in June and work until September when they have to head back to university to continue their studies. They get paid a salary, and are treated as full team members with real responsibility for real projects – no tea making and photocopying here!
As the end of my second year studying Computer Science at university drew closer, I knew I wanted to spend my summer interning as a Software Engineer. After a phone interview, a small project submission, and a face-to-face interview at the office in CodeBase, Edinburgh, I was fortunate enough to land such a role at Administrate.
I embarked on my 12-week journey at the beginning of June. The first week was dedicated to onboarding - a process which all new employees go through. We were kitted out with brand new MacBook Pros and enrolled into Administrate University - an instance of their own LMS which served as a newbies' guide to the company. It covered the basics of TMS and LMS software, its importance to businesses and organizations, as well as some information about Administrate and its company values. This also allowed me to become familiar with their platform, something I would soon be developing features for!
After graduating from Administrate University, it was time to get stuck in. I spent my summer as the sixth addition to Team Calcium. We were tasked with developing the Achievements project. This allowed admins to create achievements and certificates which could be earned by learners to incentivize and provide proof of the learner’s course progression. As an intern, I couldn’t have asked for a better project as it involved development on many different parts of the system and meant I was getting experience across multiple codebases.
For the first few weeks, I spent my time coding the back-end application. This was written in Python - a language I had little experience in, but was very keen on learning. Along with this, I was introduced to GraphQL, a modern query language which we used for interacting with our API and is one of the many technologies I will look forward to using again in the future. As I settled into the development process, I moved on to touching other parts of the system, mainly the UI. Developing on the front-end felt like a much steeper learning curve. For one, I have always preferred back-end work. In previous group projects, I would work on the magic behind the scenes while others developed the user-facing side of the project. On top of this, test-driven development felt very unnatural and unnecessary when building UI components. Despite these challenges, it was incredibly valuable to become familiar with front-end frameworks such as Angular and React.
The education did not stop at Administrate University, far from it. One of Administrate’s values is “Always Improving,” so naturally learning was a core aspect of the job. Every Tuesday I attended the intern book club. The first book - Test Driven Development by Example, Kent Beck - brought me up to speed with TDD, the way by which all engineers at Administrate write their code. The second book - Practical Object-Oriented Design in Ruby by Sandi Metz - was a nice follow-up which focused on design best practices. Both of these books combined have been responsible for a huge improvement in the quality of the code I write. The third and final book we covered at the book club was The Phoenix Project. This was the only book I had heard of before reading it, and it was not focused on programming like the previous two. Instead, The Phoenix Project introduced us to DevOps and how to tackle problems that arise when running an IT company. The material covered was less academic and more practical, which was refreshing.
The weekly katas were very useful for putting the ideas we learned at book club into practice. These were short coding exercises which you would complete on your own, then after lunch on Thursdays we would meet to review each others’ approaches. Having the opportunity to see how experienced Software Engineers tackled the problems was extremely insightful and has had a huge impact on the way I write code.
One of the great advantages of interning at a start-up like Administrate is the culture. There is a very friendly atmosphere at the company. Whenever I had any issues with my code, everyone was very approachable, and questions were often encouraged. Every other Thursday, the company would host a games night. The games included board games, card games, VR console games, and on one occasion a trip to laser tag! Along with being great fun and something to look forward to after work, these events were an excellent opportunity to get to know people from different departments whom I otherwise wouldn’t get the chance to see in my day-to-day job.
Towards the end of my time at Administrate, I had the pleasure of having lunch, one-to-one, with John Peebles. This was a wonderful gesture and one that is extended to all new employees of Administrate. I got the chance to ask questions and find out more about the company, its history, and the exciting plans for its future. I even received some great advice from the CEO himself. All in all, it was a very valuable and insightful lunch, and I really appreciate John making it happen.
With all the knowledge and skills I have acquired from Administrate, I am feeling prepared to return to university in September to tackle my third year.
To Team Calcium and everyone else at Administrate, thanks so much for having me - I’ve had an absolute blast this summer!
You can read all our previous Interns at Work blog posts here.
If you’re interested in an internship position at Administrate, make sure you check in with us in the early part of each year when we’re interviewing candidates for the upcoming summer.