Software

Software

Whether it’s enterprise-class server systems, custom mobile applications or anything else in between, our software teams can produce it all. The nature of the work means the projects here are different to anything else you’ll find – with highly complex problems to solve and unique solutions to create. Put simply, software is at the heart of everything we do. And we’re lucky enough to be able deliver projects, products and solutions from the cradle to the grave – all under one roof.

It means we can really push the limits, invent the unexpected and create one-off, unique solutions. We’re really passionate about giving everyone the chance to own their work, so you can keep hold of it from start to finish. Our software engineers work in pools, so you’ll focus on a project, rather than a department. And 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.

68% of our Software Engineers have worked here for 4 years or more. Jo, Human Resources

Our way 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 and we have access to all major audio-streaming services. Our devs have even voted on their favourite playlists. You can check out one on this page.

We’re big supporters of personal development, so you’ll have your own mentor from a particular knowledge base. 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 with an SSD, 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 used for innovation. It’s a great chance for you to explore personal projects. And we even have a ‘toybox’ fund. It means you can discover lots of new commercial tech, and see how it might be of use to us.

When I have spare time, I’m able to develop my test automation software. Mike, Software Engineer

Our Roles

Windows Developer - Platform Security

Developing applications for the Microsoft Windows platform, working in Microsoft Visual Studio in C, C# or C++

  • Technologies Used: .NET Framework, Internet Protocols
  • Useful Knowledge: Platform Security Products (e.g. anti-virus, firewalls, etc.), Windows Internals, HCI, Encryption
APPLY
Cross Platform Developer - Messaging & Data Infrastructure

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
APPLY
Windows Application and Web Developer

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
APPLY
Mobile Application Developer

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
APPLY
Cross Platform Developer - Telecommunications

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
APPLY

Developing applications for the Microsoft Windows platform, working in Microsoft Visual Studio in C, C# or C++

  • Technologies Used: .NET Framework, Internet Protocols
  • Useful Knowledge: Platform Security Products (e.g. anti-virus, firewalls, etc.), Windows Internals, HCI, Encryption
APPLY
Windows Developer - Platform Security

Developing applications for the Microsoft Windows platform, working in Microsoft Visual Studio in C, C# or C++

  • Technologies Used: .NET Framework, Internet Protocols
  • Useful Knowledge: Platform Security Products (e.g. anti-virus, firewalls, etc.), Windows Internals, HCI, Encryption
APPLY
Cross Platform Developer - Messaging & Data Infrastructure

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
APPLY
Windows Application and Web Developer

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
APPLY
Mobile Application Developer

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
APPLY
Cross Platform Developer - Telecommunications

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
APPLY

A Day in Our Lives

Mike's Day

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 guys 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.

Sophie's Day

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 the chaps 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 staff 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.

Jess' Day

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 our 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.

Jack's Apprenticeship

I joined HMGCC as a Software Testing Apprentice working towards an HNC in Computing & Systems Development and a firm platform to build a career on at 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 sports car!

At the end of my apprenticeship, I was offered the chance to top up my HNC into an HND, and upon taking the offer, I was given a day a week to attend college. After working in Software Testing for a period of time, HMGCC supported my move into Software Development. I was provided with all of the relevant training I would need and went through our Sofware 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 excel, and promote a good work/ life balance. I would highly recommend HMGCC and in particular their apprenticeship scheme, to anyone.

APPRENTICESHIPS

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 guys 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.

Mike's Day

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 guys 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.

Sophie's Day

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 the chaps 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 staff 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.

Jess' Day

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 our 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.

Jack's Apprenticeship

I joined HMGCC as a Software Testing Apprentice working towards an HNC in Computing & Systems Development and a firm platform to build a career on at 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 sports car!

At the end of my apprenticeship, I was offered the chance to top up my HNC into an HND, and upon taking the offer, I was given a day a week to attend college. After working in Software Testing for a period of time, HMGCC supported my move into Software Development. I was provided with all of the relevant training I would need and went through our Sofware 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 excel, and promote a good work/ life balance. I would highly recommend HMGCC and in particular their apprenticeship scheme, to anyone.

APPRENTICESHIPS