Share this Job

Principal Software Engineer (Java, Python, IoT, NoSQL)


This position is available in Cambridge  



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


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 a senior member of the team, 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 near to the Cambridge North railway station, and a generous benefits package including pension, childcare vouchers and medical insurance.



About You  



We are looking for someone to take a leading role in evolving the architecture and implementation of the Cumulocity platform’s operational store functionality, based around the MongoDB NoSQL document database. You should already have: knowledge of core database concepts such as indexes, sharding, query optimisation and transactions; practical experience with developing and deploying applications using NoSQL databases, ideally MongoDB; and a desire to develop further in this area.


The role will involve understanding performance and scalability requirements for the Cumlocity platform in different deployment scenarios – public cloud, on-premise and single-node “edge” environments – and architecting solutions that work for all of these. There will also be a significant element of transferring knowledge and skills to other developers in the team.


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#. 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 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 Docker, Kubernetes, HTTP/REST, Spring Boot, MQTT, Apache Karaf or Apache Pulsar; 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