I arrive at work, grabbing a park in the momentarily, half-full company car park. After swiping through a couple of doors I get to my desk in an open plan area. The first thing I do is check my calendar for the day's meetings, then I check my emails. There are cheap tickets to the outdoor cinema next week, a meeting request with the social club committee to organise the monthly company BBQ, and sometimes a message from the build server if our software failed an automated test overnight. Thankfully that email has been absent from my inbox for a while.
While I wait for my virtual machines and developer environments to start up, I check my notes of where I got up to before finishing work last night. I see that I was in the final stretches of finishing off a new user interface for a testing tool. Eventually this tool will be used to formally verify that our software meets the customer's requirements.
The staff cafe offers freshly baked scones once a week, so I head down and opt for a spiced pumpkin and sultana one before joining my team for our weekly project meeting. The meeting contains all project members including the software developers, systems engineers, hardware technicians and project manager. We quickly discuss what we have been up to, and what we plan to do in the next week. The focus of the meeting is to resolve any potential roadblocks that may impede our progress in the coming weeks.
After the meeting I finish my work on the user interface and look at our JIRA board to work out what to do next. My next task is to update the server-side code to support my last change by converting an out-of-date message stream into a new message format. Before I start writing any code, I first find where in the existing code I need to modify and try to understand what is already happening. I then devise a plan noting what needs to be modified and how I can test my changes.
By this stage I am pretty hungry so I microwave my lunch while having a casual conversation in the kitchen about the exotic things we've seen people use regular expressions for, including playing ‘Pokemon’. I then head down to the café and grab a seat with the rest of the graduates. Some of them head down the road to get sushi or burgers, and others order from the café.
With a full stomach I am ready to write some code for the message converter task. After some time I have something that is able to convert most messages, but keeps failing on some particular input. I try to trace the problem down for a while until I eventually poke my head above the desk divider and ask a senior engineer. We have a look at the data protocol to see how the message fields are packaged. I go back and trace through all the code that handle the messages before eventually finding a fix.
It’s a good time for a quick break, so I head down to the café to get a free coffee to keep me going before heading into the lab to test my code on the real hardware. I find a bug and take some time to try and recreate it. I make sure I update our JIRA board with the bug, its consequences, and how to recreate it. This helps the next person fix it later on.
I check my emails again and I’ve received some preliminary reading to do before the next grad school session that’s run fortnightly. The next one is organising our involvement in the 'Subs in Schools' program. We’ll be assisting high school students to build a remote-controlled submarine and compete against other schools nationally. We familiarise ourselves with the competition rules and the materials each school needs to produce their submarines. As part of growing our leadership skills, we’ll guide the students to discovering all considerations when designing and building a submarine.
Before my team leader heads home, he asks for a short status report on my progress today. He highlights that since my changes impact our testing process, the testing documentation should be updated soon. I make sure I add this new task to JIRA board. I decide to stay back a little bit longer to perform a dry run of the new testing procedure so I know what changes to make to the documentation. Staying back later tonight means I can leave earlier tomorrow to play the weekly company indoor soccer game.
Before I leave for the day, I make sure the lab hardware is put away and the safe is locked. I make a short note to myself about what needs finishing off so I can jump straight back into the action tomorrow. The traffic is pretty light at this time of night so it won't take long to get home. Now it's time to decide on dinner.