Almost all of my academic and professional experience with coding has been focused on back-end development, up until this summer internship with the Raygun team.
As a result, it has been refreshing and exciting to have worked on some features with Raygun that allowed for a good amount of back-end development, but also required some front-end code to make the feature accessible and usable.
My first exposure to this was when I was working on adding extra functionality to filter errors according to the browser or operating system the error occurred in and (if it was a browser based error) you could then filter according to host name. This was one of my first major projects coming into the team, and it was an excellent way to wrap my head around a good number of aspects in Raygun’s code base. It was wonderful to have a feature I’d been working on, out in production and improving our customers’ experience with our product. The next week, sitting next to our UI guy, I felt like a kid staring at another kid’s toy wanting to see what front-end dev was all about.
It took me a little while before I got used to the team culture of each team member stating what they are going to work on, and off they go. As a fresh intern this was both awesome and terrifying, I had the opportunity to give almost any aspect a go, but very little experience to do anything without pestering some poor soul or staring like grumpy cat at some buggy back-end code (my own doing of course) sitting on the screen in front of me. I got emotionally attached to most code I wrote, so felt like it was rebelling against me at times.
Two months into the internship I got comfortable enough with the team and was familiar with a bit more of the code base, so the idea of piping up with what I wanted to be working on didn’t seem so scary. Particularly because I had my sights set on sprucing up our contact page. By showing an interest in this area, I started talking to some team members who had experience with the workflow of this kind of front-end development.
I enjoyed the mock up phases; developing several versions in an evolutionary fashion and looking back on that first mock, cringing. With my academic path leading towards a degree in Psychology, I found the design stage to be very interesting, thinking about what information needed to be given priority and what would make for a nice user experience. However, this was very difficult to do with only rough outlines and boxes of where ‘x’ image would go.
And so it began.
I took one of the top two designs and started writing the code to make the web page look a bit more like my mock ups. What was interesting about this stage wasn’t just how different front-end dev is compared to back-end dev, but also how different things look in your mind than they do on screen. Having built up one of my top designs, I found that it just looked weird!
And so I started on the next design. I had a better feeling about this. I was more excited about this design, it was interactive to some extent, it was engaging and it displayed the necessary information staying true to the established priorities. When it came to actually building it however, I had to figure out how to code it properly, rather than just editing the webpage in the browser debugger.
This stage in particular included many heated arguments between myself and CSS.
With discussions back and forth with the creative designer and UI guy to see how I could produce a nice looking web page before the end of my internship, I am proud to say that the new contact page is now live for all you lovely readers to see.
One of the most liberating parts of this project, was that I could develop both front and back end and broaden my knowledge of each area. I loved that if I needed to add an extra field to the contact form I could do so without having to ask anyone else. This meant that I could raise my little web page project like a small child (I probably still get far too emotionally attached to my code).
While I could talk about why I like back-end development more than front-end development or vice versa, I would be arguing with myself for quite some time. What I’ve really appreciated with this web page project in particular has been the ease with which I could flit from back-end into front-end to produce once cohesive result.
In my time at Raygun, I have learned invaluable lessons about how to improve my skills as a developer as well as how to brush up on my patience for problem solving – mainly not flipping the desk every time a build fails! The team has been great to work with, all very knowledgeable in their area and more than willing to share their experiences with anyone who shows interest – be that a fresh faced intern or a team member who’s been there for a number of years.
I hope that the team has had as much fun having me, as I have had being here and I’m looking forward to the transition into part time work with Raygun while I finish my degree.