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 a first-year student at a course that mainly deals with low-level programming and electronics, my expectations of this internship were blurry, but I had my goal in my mind, which was to become a great overall engineer whether it was high or low. I felt like the lack of software development knowledge, let alone on an industrial scale, would prevent me from showing my abilities, and would make me useless to my team which is something I feared the most. Despite this build-up of paranoia, the first two days at Administrate made it completely fade away.
I started my journey at team Calcium, who were tasked with API development through Python and GraphQL. The latter being something which I have never heard of before. My workstation was set up by fellow teammates, and a few minutes later I was already joining agile development ceremonies.
The main purpose of the API work was to make Administrate a 'plug in' system so that any customer can use all the features simply by sending GraphQL queries. It was a layered codebase, starting from the GraphQL front-end and ending with SQLAlchemy database handling, details of which were very hard to grasp in the beginning but as time went on, and with help from colleagues, I started seeing the purpose of every component and the bigger picture.
The development process was done using the most recent practices, focusing on efficiency, readability, and future maintainability of the code. This included rigorous coding styles, test-driven development, and continuous integration testing. Every change was documented on a Kanban board, and this is where I began to see the whole development process and the importance of every step of code production before it is shipped to customers.
Furthermore, my team did rotations to aid the Support Engineering team whose duties were to fix bugs. I saw bugs of all sorts, barely any of which were API related, but more related to things like security, integrations, etc., which helped me explore the massive codebase more, including the legacy code which was PHP.
After a few days, I began questioning my university knowledge. Most of the stuff that us, mere students, struggle with in lectures, seminars and then coursework is not very helpful when it comes to product development. I came to the playground where the big brains played, and I started to grow. I learned Python and Git then took a deep breath and finally started being productive.
One of, if not the biggest fear among those who wish to take an internship is that interns are piled with work, or work as part-time tea makers. While this is true in some companies, I was surprised that my treatment was the same as of a full-time software engineer. My integration into the team was smooth and one at a time. I was not pressured to do work neither were everyone’s expectations of me sky-high. On the contrary, I was given time (a day) to do my non-coding intern chores such as self-learning and book club reading. I couldn’t really ask for more considering that Administrate practices a four-day working week. I was also assigned a mentor (thanks, Martin) who aided in making my internship experience as beneficial and smooth as possible. This included talks about the things I learned, struggled with, the progress in general, and whether there is anything else I was interested in and would like to know more about, which was done by pairing with members of another team #alwaysimproving.
But it doesn’t end there; activities are sometimes organised outside of work. Drinks after work on a Thursday, BBQs if the weather allows, walks, and cycling - all of which allows all company employees to bind together and get to know each other outside of an office environment #builtonteam.
Going back to university, I feel ahead of my coursemates. I believe that the knowledge and experience gained here, at Administrate will help me kick-start my career from an earlier age, and I hope that this wasn’t my last encounter with them.
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.