Share this Job

Senior Software Engineer (Java, Python, IoT)


This position is available in Cambridge  



Senior Software Engineer (Java, Python, IoT)



Do you want to work for a company that really cares about both innovation and delivering a top quality product? Do you like a varied mix of projects and programming languages? Would you enjoy being part of a friendly but highly-motivated team of smart people? We're looking for great people to fill a range of positions, so whether you're a graduate, have recently completed a PhD, or have many years of commercial experience we'd love to hear from you!


Located in our office on the St John's Innovation Park (near Cambridge North railway station), you'll join the team working on the Cumulocity IoT platform, the core of Software AG’s Industrial Internet of Things (IIoT) offering. Cumulocity empowers our users to easily build applications that connect millions of distributed devices and allow these to be managed, monitored and their sensor data analysed.


Cumulocity can be deployed in public clouds, private data centres and single node edge-ofnetwork environments, integrated with other products from the Software AG family such as the Apama streaming analytics engine and the Zementis AI/ML framework. Cumulocity IoT applications can analyse the data from connected devices – everything from manufacturing robots to wind turbines to delivery trucks – in real time and automatically act to unlock the value in that data, for example by detecting an impending failure and triggering the repair before the robot or turbine breaks down.


The Cumulocity team in Cambridge works on many different aspects of the core Cumulocity platform, with a focus on performance, scalability, robustness and end-to-end quality. That means there will always be a variety of different projects that you can get involved with. 


About Software AG  


Software AG's mission is to help organisations “turn data into value”. We’re a global software company founded over 50 years ago and continually growing and innovating. With a presence in over 70 countries, our customers include many of the world’s major airlines, well-known makers of sodas, chocolate and PCs, and key players in the rapidly expanding world of industrial IoT.


We’re passionate about software, passionate about our people, and passionate about using technology to create truly world-class products. 


About the Job  


What can you expect from a job at Software AG? You'll be joining a team of friendly, smart, and motivated colleagues. We care about quality and we’re always up for learning something new or discussing the best way to write our code and testcases. Whatever level of experience you have, you'll be able to make a real contribution at Software AG and have plenty of chances to grow.


Software AG will give you experience of writing robust commercial-quality, high performance code and testcases in a variety of languages. You'll be part of an agile Scrum-style team, learn new skills as needed and have the chance to pick up best practices and tips from our seasoned developers. In our teams everyone's ideas are valued – right from your first day with us – and everyone is encouraged to contribute to design discussions, documentation, code reviews, our public community, and to shaping how we work. 


As you gain experience, you'll also be taking a role in the design and architecture of new features, proactively contributing to our feature roadmap, mentoring junior team members, assisting customers, and perhaps also taking on a scrum master or product owner role, or contributing to cross-product initiatives within the wider global company. 


Additional benefits include: innovation/hack weeks, “give back to the world” community engagement initiatives, free fruit, a fun office environment (e.g. Lego, XBox), at least 50 hours of dedicated time each year for learning/training, flexible working hours, a competitive salary, a great location in the thriving city of Cambridge, and a generous benefits package including pension, childcare vouchers and medical insurance.


 About You  


We are looking for all-round developers who are flexible and enjoy building software and tests using a range of varied languages and technologies. Our primary development language is Java (version 8, with a move to 11+ underway) with some parts of the system also using Rust. We expect you to already have up-to-date knowledge in at least one of those languages or something similar like C++ or C#. That could be from commercial experience, from a significant project during your studies, or something you've worked on in your spare time. We use Python (version 3) extensively in our test and build frameworks, so Python skills are highly desirable too. 


Our software is built and tested on Linux so familiarity with software development on a Unix-like platform is useful.  We always like to hear from people who’ve created or contributed to some opensource projects (e.g. on GitHub) or who have done some blogging. 


You should have some knowledge of back-end/server-side/systems programming topics such as distributed systems, multi-threading, memory and performance optimization, and ideally also some exposure to microservice and container technologies such as Docker, Kubernetes, AWS and Azure. Especially if you already have some commercial experience, we would also value experience in any of the other technologies and processes we use: testing approaches like TDD or BDD, and frameworks such as Cucumber, PySys or JUnit; Agile methodologies such as Scrum and Kanban; technologies such as HTTP/REST, Spring Boot, MQTT, Apache Karaf, Apache Pulsar or MongoDB; DevOps and CI/CD best practices using tools such as Jenkins; or any prior experience with the Internet of Things. That’s just to give a flavour – everyone on team brings their own unique contribution and we’re certainly not expecting anyone to tick every box!


Usually we expect candidates to have a 2:1 or 1st class degree in a relevant subject. If you studied something other than software engineering/computer science and don't yet have any commercial software experience, we hope you'll have spent some time working on significant software projects either academically or in your spare time. 


Most importantly, you should be friendly, conscientious, able to communicate clearly, and passionate about continually improving your skills and knowledge.


Please get in touch, we look forward to hearing from you!


Next steps


Please contact Holly from our recruitment team at  


This job description should not be construed to imply that these requirements and expectations are all-inclusive.  In addition to items listed, incumbents are expected to follow company policies, adhere to company processes and programs and perform other related duties as assigned. #LI-HG1