My Amazing Week
Thanks to a nudge from @pootsbook, I have decided to write a blog post about my first week at my new job. I have to confess to not being much of a blogger, but I think I can manage a few paragraphs! This is mainly for my family so I can’t guarantee it will be an interesting read, but you’re welcome to read it nonetheless.
Fast-forward to Present
First a bit of background as a lot has happened since my last (and first) post on this blog. Come the end of May I had finished my final exams and spent a week chilling out and catching up with friends before leaving St Andrews. Several weeks later I returned with my family for graduation, the videos of which can be found here and on YouTube. It was a great couple of days, and I was glad to be able to say a final goodbye to lots of people I had known over the years (or even met for the first time at the grad ball!) before I left the town I had spent four busy years of my life in, no longer to return as a student.
In those few weeks before graduation, as well as doing some freelance work to make a bit of money, I had also been sorting out a job. I landed an interview with Amazing Media, based in Newcastle Upon Tyne and took the train down June 8 to stay overnight with an old friend from Uni, Philip Poots, and his wife, before going to the interview the following morning. I had brushed up on a little of my Computer Science material, but the interview was surprisingly relaxed and despite my lack of professional experience with Ruby on Rails, I was in a rather privileged position. The two backend developers, one of them Philip, were leaving to work at Sage, leaving two vacancies the company were eager to fill.
I was fortunate to have secured a job come graduation – all that remained was to make the ~5 hour move down south. After returning to Newcastle early July for 3 days to find a place to live, I ended up moving in to my new residence within 3 weeks of graduating, giving myself a week to get settled before I started work.
I now live in Jesmond, a pleasant district in the NE of Newcastle that is apparently very popular with students – no doubt it’ll be getting louder come September, but it’s currently rather peaceful. I’m 5 minutes walk from the Jesmond Metro, from which I can reach Gateshead Metro in 7 minutes, making my morning commute time about 20-25 minutes.
I should probably write a little about what I know of Amazing Media. As you’ll see on the website, there are several parts to the company:
- Amazing Tunes – a site dedicated to promoting new, unlabelled music with the aim to “give the emerging artist a place to find their audience, and fans to find their new favourite act“. This is the part I am working on.
- Amazing Radio – a national Internet and DAB radio station playing music entirely from Amazing Tunes with programmes pre-recorded and also presented live by the radio team.
- Amazing Sessions – artists featured on Amazing Tunes are invited to a nearby music studio where they perform their music live on camera.
- Amazing Instore – the more profitable side of the business that provides an overall music solution to companies and organisations, e.g. to shops, making for an alternative to paying a premium to play the latest popular music.
As far as I am informed, the company has been going since about 2006. It’s fairly small, with about 30 employees max, so it still has the intimate feel of a start-up company. Lately it has been growing steadily with future prospects looking bright, so these are exciting times for the business.
The First Week
I started on Monday 25th, making it to the offices for about 8:50am. After being greeted at the door by Dean, I was taken to see Kevin Read, the very friendly and enthusiastic Operations Manager, to get set up. This involved a tour of the building during which I was shown the two floors of offices and the various facilities. The networking room is quite interesting, and being a technical member of the team, it’s good for me to know what’s there. It has a mix of computing/networking equipment (e.g. routers for networking/phones and various servers) along with a lot of audio equipment for the radio. The premises has several studios, with a couple of them used for live broadcasts, so there is a considerable amount of audio equipment.
Following the tour I was brought to the top-floor and shown to my desk in the developer area. Whilst I am currently the only on-site back-end developer (there are several remote employees and contractors) the development team also includes the equally important front-end developers Andy and Denise. From there we were left to get to know each other whilst I began the fun task of setting my computer up. I kept the existing developer environment that Philip, my predecessor, had used (just in case), and installed the latest Ubuntu Linux alongside. Setting up takes several hours and included getting to know the company mail system, making a profile for myself on Yammer (like Facebook, for employees of the organisation – it was actually brought in just a few weeks ago), setting up my development environment with RVM, Git and Vim, getting set up on Github to access the code, having my existing Assembla account added to the ticketing system, etc. Ian Baker, my boss, phoned me to give me a welcome and help me access some important stuff regarding setting up. I am informed that Ian was previously the Head of Technology at the BBC, so his knowledge of multimedia is quite extensive, and he’s also currently doing some work for the producers of Avatar 2 – pretty cool stuff.
Overall, a very relaxed start, although it was funny when one of the radio team wasted no time in coming upstairs and getting down to business by requesting a bug fix (after saying hi). By the time I left, I was grabbing the latest dump of the live database and was almost ready to pull down the code to work with. I left at 5:30pm with Andy, and we both walked into the city to attend SuperMonday – one of several North-East user groups with a focus on development and design. Denise joined us at the venue, as did Philip and Phil, the previous back-end developers who had moved on to Sage. The free sandwiches and drinks at the beginning reminded me of my student days and, in particular, the way in which free food was one of the deciding factors of any talk we were invited to! However, at the same time as I looked around at the attendees of a wide range of ages and backgrounds, I suddenly felt very young and inexperienced. The talks were good, and following them we went to a nearby pub where I met a couple of other people, including one of the speakers. After we left I tried in vain to find a fish and chip shop as I walked to Haymarket Metro. The place I found didn’t do fish (!?), so some chips sufficed. There ends my first rather eventful day.
Tuesday morning, after initialising my local database, grabbing the code from the repository and sorting out some of the problems before my development server would run the code (there’s always something), Ian arrived in the office having come up from London for a few days to catch up with the company and, obviously, get me equipped to do my job. I was given another more detailed visit to the networking room (the kind of place I could probably spend a long while in, to be honest!) and given access to the online server infrastructure where amazingtunes.com is hosted. I was then assigned a ticket (a request for a new feature or fixing of a problem on the site – basically a unit of work) to get me started and give me a chance to explore the code whilst I was productively working on a problem. No sooner had I started on the ticket when I was asked by Kevin if I could familiarise myself with a Ruby script that gathers information about gigs for the radio team and make a fix to it, before running it to give the radio team the latest update. This was effectively my first piece of work, and after eventually figuring out a fix I emailed the data it had collated to the radio team then returned to my previous task.
This was the first of many moments during the week where I was distracted from my workflow with other requests for either a bug fix, or to request my technical assistance either on the Amazing Tunes site or elsewhere, such as the bash terminal. It highlighted the importance of prioritising tasks, something that a ticketing system can help with if it is used effectively. A ticketing system, for those not in the know, effectively contains a list of jobs needing to be done. They can be as small as a minor quick fix or they could take significantly longer if they require the implementation of a new feature or fixing of a major problem. The great thing is, tickets keep track of what needs to be done and, in an environment where there’s always something needing doing, it’s important nothing is left forgotten on a piece of paper – or even worse, in someone’s head. Furthermore, when working with a team scattered remotely it’s very important for keeping everyone informed. The general rule is that for everything that you do there should be a ticket. If for nothing else this is worth doing just for the satisfaction you get from marking a ticket as done and dusted!
I almost forgot, I learned another important lesson on Tuesday – never buy 3 packs of Reece’s Peanut Butter cups and bring them all in at once. I couldn’t help but eat one whenever I remembered they were in my drawer, and I am ashamed to have eaten 5 on Tuesday, followed by 4 on Wednesday, as a result. I have a certain love for this delicious confectionery, probably thanks to my Aunt bringing them over from America when I was a child. I’ve found it very difficult to find these tasty treats in the last few years, but down here it seems they’re much more commonplace – definitely a +1 for living in Newcastle!
On Wednesday we were joined by Seth Jeffery, a contracted Rails developer who has been working for the company for a few months. He had travelled up from London for 2 days to see the company (it was his first visit to the office) and help me get started. Ian took the opportunity to brief me on the server architecture for Amazing Tunes, as well as his ideas for improving it. Seth then got me started fixing a problem. We use Airbrake to track the errors occurring in the live site – i.e. any time that someone sees a ‘something bad just happened’ error page (HTTP 500 errors for the technically minded). These errors are affecting the user experience on the current site, so obviously it’s important that they are fixed as soon as possible. Seth directed me through the usual workflow pattern for this instance – find a problem, raise a ticket describing the problem, assign ticket to self, checkout a branch with git starting with the ticket number, merge the completed fix with the staging branch, and push to the remote repository so it may be deployed to the staging server for testing prior to it going live.
During this time I watched as Ian deployed some recent changes to the live site. Updating the live site is fairly quick – a matter of seconds – and Ian streamlined the process a little by editing and simplifying the deploy script. Following my first fix, and the closing of my very first ticket (a ticket is closed when it has been completed) I made my way onto a ticket Denise had raised earlier in the day. My work was pretty slow as I pored over the lines of unfamiliar code, trying to gain an understanding of how things worked together as I attempted to make a simple fix. A fix involving changes to only a couple of lines of code would take a couple of hours simply because I had to explore several parts of the codebase to find the problem. Once I’d found the problem, it often required looking at a lot more code to work out why it wasn’t working before making a fix. However, such is to be expected when in such unfamiliar territory, and it can only get better with time and experience.
Now that I was in a general routine of playing bop-a-mole with the various bugs that were appearing on the site, Thursday was very much of the same. In the morning Seth gave me a detailed description of the music upload process on the whiteboard behind my desk. No developer area is complete without a whiteboard, and funnily enough no whiteboard is complete without a set of pens…I’ll need to buy some. For my lunches this week, I’d been sticking to ham and lettuce sandwiches -plain and simple. I’m getting a bit of a name for myself after having had this staple sandwich for the entire week, but like I say, I can never get tired of them. During my lunch hour I make my lunch in the kitchen and eat it at my desk whilst chilling out checking BBC News, Facebook, Twitter, and maybe even some Rails-related blogs/updates – I even played some Angry Birds at one point. The company doesn’t have any formal policy on internet usage, so whilst one should obviously be working during one’s time at work, the odd quick distraction is not frowned upon, as long as you get your work done. This is only one example of the flexibility of the place, which makes it all the more enjoyable to work in.
Anyway, in the afternoon we had another remote developer arrive at Amazing Towers – Jon Nairn, who currently resides in France and has been known to mention he’ll be ‘logging off for a bit to go in the pool’. This was an opportune chance for us developers to have a meeting in person (which in future will be conducted on Skype) before we all went our separate ways. We discussed the plan for the next 4-5 weeks and left with everyone taking responsibility for investigating a particular topic or issue that we’ll be focusing on during this time. Soon after Jon left, then Ian and Seth also departed on their way back to London leaving me once again the sole back-end developer on the premises.
The final day of the week started with more bug-fixes prompted by more minor errors I’d discovered on the live site (you can see the routine starting!) and I made some good progress in fixing a couple before at 11am the upstairs and downstairs offices congregated in the meeting room for the weekly ‘standup’ meeting in which Kevin brings some announcements to everyone’s attention (who’s on/going to be on holiday, etc) before everyone speaks briefly about what they have been doing during that week. Due to the segregation caused by the offices being split across two floors, this gives everyone the chance to keep up to date on what is happening throughout the company, and also raises the opportunity for people to ask what’s been on their mind. During lunch I decided to take a walk for some fresh air and took a 15-20 minute brisk walk down across the swing bridge into Newcastle, down the quayside, across the millennium bridge and past The Sage to return to the office. Definitely need to do this more often in the nice weather, as it’s a great way to take a break from the office and the route is particularly nice. Afterwards Kevin showed me the security systen and described what needs to happen if I’m ever the first person in or last person out. We have 24/7 access, so whilst I don’t expect I’ll need to be in at crazy hours of the night (I have vivid reminders of many an all-nighter in the CS lab at Uni – I hope to have left those behind!) it’s good to know just in case.
Things started getting exciting when, after committing a few fixes I’d made to the repository, ready to be deployed and put into action, I did my very first deploy just after 5pm – first ensuring Ian was online in case anything went horribly wrong. Really there’s not much to it, but when it’s your first time you just never know what might happen. It went smoothly, as I expected, but one of my fixes hadn’t quite worked. Being it was a rather important fix I happily stayed a little longer whilst I made a further two deploys to eventually fix the playlists on the Amazing Radio site. After finishing my 5th day, I felt very much settled in as part of the team – my desk phone had even been changed to display my name by the end of the day, so I was all sorted.
So there ends the story of my first week. Overall a great week, and I’m really looking forward to the coming weeks and months as I develop myself and make the transition from graduate student to professional developer in what has so far been a pretty cool place to work. This has been a mammoth post (“a few paragraphs” indeed…hah), and it’ll be the last of it’s kind as I don’t have the time to write ~3000 words that often, but I hope it was worth a read. In fact, if you made it this far, you should definitely leave a comment as you’re one dedicated and patient individual, and you deserve to be commended as such.
Edit: just added some random images of Newcastle to break up the wall of text…