skip to main content

Our teams - software

Whether it’s enterprise-class server systems, custom mobile apps,  or anything in between, our software teams produce it all. We have complex problems to solve and unique solutions to create. Software is at the heart of everything we do. We’re lucky enough to be able deliver projects, products and solutions from conception, to manufacture – all on one site.

It means we can really push the limits, invent the unexpected and create one-off, unique solutions. We’re passionate about giving everyone the chance to own their work, so you can keep hold of projects from start to finish. Because there’s often a sense of urgency to the projects we work on, you’ll get to see the results of your hard work – almost immediately.

Software Image

“68% of our Software Engineers have worked here for 4 years or more.”

Jo, Human Resources

Our Ways of Working

To push against the boundaries of what’s possible, our talented software individuals work alongside our scientists and other engineers. Within our campus layout, we find it really easy to work together and we often collaborate across teams. In our environment, it’s easy to learn from others, as everyone is willing to share their knowledge. It’s really open and friendly. Many of our devs like to listen to music while they're coding. They voted on songs to add to their their favourites playlist.

We’re big supporters of personal development, so you’ll have your own mentor. This way, you can discover the ins and outs of their specialist area. You’ll also learn lots of different languages, applications and systems. And you’ll have the chance to join our monthly software forum – where all our talented software engineers get together to discuss projects and share expertise.

Physical workspace is very important to us. So you’ll have the chance to influence it, and the budget to get the equipment you need. And you’ll receive a decent development machine, your choice of OS and dual screens. We also have our own private cloud servers, so work can run overnight and you can quickly throw virtual networks together. It’s all to help make your life easier, and the work better.

We also want to encourage all of your tech interests and passions, so 10% of the site’s hours are able to be used for innovation. It’s a great chance for you to explore personal projects. 

“I was provided with all of the relevant training I would need and went through our Software Landing Zone to get me ready.”

Jack, Software Engineer

Our roles

“I was provided with all of the relevant training I would need and went through our software landing zone to get me ready.”

Jack, software engineer

Developing applications for Linux and Windows, working in C, C++ and/or Java

  • Technologies used: Message protocols (SMTP, X400), TCP/IP networking, UNIX and Windows systems programming

Developing Microsoft Windows applications to configure and control communication systems developed by HMGCC. Design for usability is key and a developer is expected to produce software that makes the complicated appear simple.

  • Technologies used: C#, ASP .NET, SQLServer, .NET framework, USB devices, human interface devices and TCP/IP.
  • Useful knowledge: C, C++ and Python

Developing applications for the Android and iOS platforms, working primarily in Java.

  • Technologies used: TCP/IP, encryption, databases, USB devices, Bluetooth, sensors, GPS.
  • Useful knowledge: UX principles, Linux/UNIX and Python

Developing large-scale networked systems for Linux and Windows, working in C, C++, C#, Java and Web Technologies.

  • Technologies used: Java, .NET framework, Python, Internet Protocols, MySQL, Application Servers (Wildfly, Glassfish), Messaging (JMS/AMQP), ElasticSearch, REST, Puppet

A day in our lives

I drive in at my usual time and got my parking spot right by the back door. When I get in, I start up my corporate and development machines and log in to my phone.

After I’ve got my cup of tea, I spy some doughnuts a project manager brought in. Once I’ve got my hands on one, I check in with everyone and find out the latest. We manage to help one of the team fix his development computer so he can use his four monitors, and then attend the team catch up.

As soon as we wrap things up, we head over to our software forum. Once a month, all the software engineers get together. It’s a chance to hear about the tooling being used by another team and how they do full lifecycle software architecture for their microservice-based system. Other people from the team discuss their research into the open source projects they’re thinking of integrating. And we chat about how we believe we can improve the organisation and get over any blockers we can think of. After the forum comes to a close, I grab some lunch in the cafe and relax on the sofas with friends from across the departments.

The afternoon is clear, so I take time to work on my personal project. I’m developing test automation software. Many other people have taken an interest in it, so it’s great to be able to show them the demo I’ve been working on. They spot some things I might have missed, and suggest some libraries I might want to look at. I work a little later (I’m doing a compressed week, which means I don’t have to come in on Friday), but I’m still heading home at five.

I get in late (thank goodness for flexible work hours!), check emails and announcements, and do a quick skim of the newsgroups for interesting questions or problems that people might need help with - I'm a community manager for the Linux space, so that's my first port of call!

Then it's headphones on and log in the engineering network. I check the Jira tickets on any of my projects and see if I have any new comments on any of my code reviews, or if I've been assigned anything new? Depending on the project, we might have a quick stand-up - otherwise, I jump back on whatever I have in progress. Could be researching, design, review, or straight up coding. At some point, I'll probably be called over to help a colleague with something, or vice versa - they're a helpful bunch in my office. (This is normally a good excuse to scope out today's cake situation in the tea room - jackpot!)

Sometime in the afternoon, I'll often have a meeting with colleagues from Project Planning, either for one of my projects, or a different project I've been asked to consult for. Currently, I'm helping to hammer out requirements for some improvements to the engineering network, that my team have asked to be made.

Then, it's back into the fun stuff until home time. Overtime, if I want it, but when I clock off, I clock off for good - a real nice clean line on my work/life balance.

The first task of the day is a quick catch-up with the rest of the development team on one of my projects. This one is still in its development phase and we're getting ready for a major release, so frequent communication is important to avoid any last minute surprises! I'm relatively new to this project and to its technologies (it's a C# MVC application), so it's been really interesting and challenging getting up to speed with it. After development and priorities have been communicated in the meeting, I get down to some programming, adding the finishing touches to some features that I've been implementing.

Several cups of coffee and a lunch later, I switch to my other project. This is a Java application (so more familiar territory for me), that has long been in service. I am the technical manager for this product and am therefore responsible for its technical direction and strategy. The product was designed for extensibility and is constantly evolving with the changing technical landscape and requirements. In the afternoon I talk to the users about some new requirements that have come in. The additional functionality required is not too complex (this time!) so, having ironed out some ambiguities, I can begin to identify a solution they're happy with. I end the day with a quick team meeting to discuss the solution design.

I joined HMGCC as a software testing apprentice working towards an HNC in Computing and Systems Development and a firm platform to build a career by the end of the programme.

My apprenticeship involved a year full-time at college followed by a couple of years spent working in the various software departments and visiting college every few weeks. As well as a solid start to my career in software, I made some fantastic friends in my fellow apprentices, and we were all warmly welcomed into the organisation. I'd also earned enough money while studying to buy myself a new car!

At the end of my apprenticeship, I was offered the chance to top up my HNC into an HND, and I was given a day a week to attend college. After working in software testing for a while, HMGCC supported my move into software development. I was given all of the relevant training I would need and went through our software landing zone to get me ready.

I've now got the same level job that I would have applied for after university, but instead, I've been paid to learn the same skills, and have got several years of work experience!

HMGCC is a great place to work; they actively promote professional development, want to see their staff do well, and promote a good work/ life balance. I would definitely recommend HMGCC's apprenticeship scheme, to anyone.