I should start by giving a little introduction of myself. I’ve been developing code since the age of 14, and I have 7 years of commercial experience. I currently work at Helastel, a software house based in Clifton, Bristol. I’d like to think i’m not your stereotypical software engineer, but I still have my little quirks! My hobbies include football, dancing and rock climbing (which at least, I don’t think, is stereotypical of a software engineer). Regardless of my personality and hobbies, as you would expect, my day is made up of the same sort of elements as my colleagues.
A bit of myth busting
I thought it would be a good idea first to give my impressions on some of the myths that are associated with the daily lives of a software engineer.
As a software engineer, my day doesn't typically include:
- Sitting in complete darkness wearing a black t-shirt and coding on an IDE with a black background. (There are others I work with that do 2 out of 3 of those though).
- Trying to hack some big organisation
- Nerf gun wars (alright, maybe sometimes...)
- Hiding under the table anytime someone I don’t know comes into the office
- Sitting in a circle regurgitating newly-heard geek jokes
What my typical day can include:
- Drinking my body weight (sometimes several times over…) in tea and coffee
- Learning about new technologies
- Meeting with clients at various stages of the project lifecycle
- Working with incredibly clever colleagues who are as motivated as I am.
So what exactly does happen for me on a typical day?
I usually get into the office around 9:00. Other days it can be 8.00am, sometimes as late as 9.45am. Others roll in anytime from 7.30am to 10.10am. Basically everyone comes in any time they like (within reason). One of the perks of working at Helastel is the flexi-time. As long as you're getting your work done and doing your contracted hours, you can come in whenever you like. In my knowledge of software houses and digital agencies, this is quite common.
Typically, I spend the first 30 minutes of the working day checking my schedule and catching up on e-mail. Generally it's your average emails but then every now and again you get an email like this:
"Hi, that file you sent, ‘front-end-wireframe.psd’ won't open in PowerPoint. Please can you fix it?"
"I’ve attached a 12 page document with a few tweaks to the system. Please can you finish these by 12pm?"
Depending on my mood, these can be painful as they have a way of either bringing on a stress headache, or giving me a stitch from laughing so hard!
I have plenty of other great emails that i’ve been sent but maybe i’ll save those for a future blog…
So next up, I log on to the CRM that we've built in-house to manage our project and clients. A case consists of a description of a piece of work that has to be done, whether its development, bug fixing, scoping, estimations for bug fixes etc. and then it has actions that need to be carried out.
The rest of my morning is generally spent coding. Typically, I'm working on multiple projects in parallel so I have to prioritise working on what I think is most important.
Contrary to popular belief, as a Software Engineer I have the time (or make the time) to go and eat lunch. My job can be mentally tiring and food = function. Yes, I’ve spent some days eating a Boots or Sainsburys meal deal at my desk while using my spare hand to carry on coding. We’ve all had projects with very tight deadlines and lunch can suffer a little, however I do manage to get out for lunch most days. I’m spoilt for choice on Clifton’s Triangle which we’re situated bang in the middle of, and now and again, I love to treat myself to Friska, Boston Tea Party or the little crèpe place round the corner.
I often have a meeting or two to attend in the afternoon. They generally fall into the following categories:
Details about how the company is doing, new clients and new work coming in are shared with the room and then it's AOB (Any other business). I love the fact that AOB always seems to be the longest part of the meeting. It doesn’t matter how many times people are encouraged to let the organisers know if there is anything they would like to include in the agenda, it's not actually mentioned until the meeting itself. It generally goes something similar to this…
"So that's the end of our topics for discussion. Does anyone have any other business to discuss?"
The whole room bar the person speaking shoots their hand up in almost complete synchronisation. It would have been a perfect score of 10 if it wasn’t for the one person in the corner of the room who was dozing off, but woke up to the noise of arms going up, to then put his own hand up so as not to feel left out - but really he had no idea what was going on anyway.
Discussion of a new feature:
These are generally more interesting as you can really get your creative juices flowing, bounce ideas off your colleagues and ultimately come up with a great solution. The meetings can be held on the spur of the moment and usually are ended abruptly by a loud knock on the door from the person who has booked the room for that time!
This is a meeting, generally with the HR manager to discuss how things are going. I’d talk about anything positive or negative from my perspective and they would give feedback on how well you are doing.
Should we not hit a deadline (though naturally this never happens!), or we encounter a major bug that needs some thought or any other issue that can’t be resolved efficiently by a single person, we will call a meeting. They’re not always the most fun of meetings, but it generally eases a bit of stress as we can come up with a solution on how to resolve the issue efficiently.
All meetings are generally sandwiched between further development and bug fixing, assisting others, and sometimes a bit of training (receiving and giving). There are always new technologies arising and as a modern software engineer it's important to keep up-to-date with these technologies.
Throughout the day, I'll get pulled into impromptu conversations with my colleagues. Although we are lucky enough to have spacious desks, I’m only an arm's reach from the next person. It's a frequent occurrence to be interrupted to ask for my opinion on how best to use some technology or write some code, and I will do the same to others.
The later on in the day it gets, the more the caffeine starts to flow! Urnie, our tea urn, is a recent replacement of our kettle. It means we have instant hot water rather than having to wait for the kettle to boil twice to do a large drinks round. Urnie is a friend of all in the office, as he/she makes the process quicker - but, more importantly, people are more likely to offer to do a round now!
Towards the end of the day I also get a little more time to really focus on the work I’m doing that day. There are fewer interruptions as other coders start to go off home, and fewer meetings are scheduled in later on.
So, there you go! That's a day in the life of a Software Engineer at a bespoke software company. It would be great to hear from other engineers. Do you have similar or contrasting experiences to me?