Software AG empowers customers to innovate, differentiate and win in the digital world. Its products help companies combine existing systems on-premise and in the cloud into a single platform to optimize and digitize their businesses. The combination of process management, data integration and real-time analytics in one middleware platform enables customers to drive operational efficiency, modernize their systems and optimize processes for smarter decision-making. Building on over 45 years of customer-centric innovation, Software AG is ranked a leader in many innovative IT categories. Software AG has more than 4,500 employees in 70 countries and had total revenues of €879 million in 2017.
The successful candidate will join the close-knit and highly skilled software engineering team that designs, builds and tests the globally successful Universal Messaging product. Universal Messaging is a solution for high-performance, low-latency messaging across a wide array of delivery channels, including mainstream enterprise, web, mobile and IoT platforms. Universal Messaging delivers high throughput messaging for resilient, secure and highly scalable applications, both on-premise and in the cloud.
The position will be filled by a conscientious, highly-motivated, assertive and skilled individual, who will bring to the role important skills but will also be keen to learn new ones on an ongoing basis as the role develops. This individual must already be an experienced software developer, ideally with a background in high-performance server-side development, and be willing to learn, adapt to, and utilize new technologies.
This position is suited to someone with 6 or more years’ experience in the software industry.
Universal Messaging team members work as part of multidisciplinary agile distributed teams, and all of our development roles include aspects of both Software Engineering and Quality Assurance/Test Engineering. The primary requirement of this role is the development and maintenance of high-quality software according to agile principles. The role will also require analysis of QA coverage requirements for new functionality across the areas of correctness, performance, robustness and usability; designing and building automated test-cases; and execution of testing and release management processes. This is a serious and challenging engineering position that requires strong design and implementation skills.
Responsibilities of this role include:
- Working in a cross-functional agile team with other software engineers, QA engineers, and documentation authors, to design, develop and test new product features.
- Contributing to, and sometimes leading, the architecture of major new product components, and evolution of existing product architecture.
- Designing and developing automated test suites for high-performance distributed systems, writing complex code to exercise the system and automate various crash and network failure scenarios.
- Championing and driving initiatives to improve the usability, performance, scalability and overall quality of Universal Messaging.
- Working with other development teams, and sometimes directly with our customers and consultants, to improve the quality and cohesion of the Software AG product suite.
- Maintaining previous releases of the Universal Messaging product and assisting with the timely resolution of incidents raised by customers.
This role provides opportunities to work on a variety of projects covering areas including performance engineering, improving usability, distributed and fault tolerant systems design, evaluating and integrating new technologies with our suite, and API design. Occasionally the role might include customer-facing interaction and travel to customer sites, as well as to Software AG’s other offices in the UK and overseas.
- You will have a First Class or Upper Second Class degree in Computer Science or a closely related subject, with a Masters or Ph. D. degree being considered highly desirable.
- You must have, and be able to demonstrate, strong and up-to-date development skills in core Java.You should have some experience of other widely used programming languages and be keen to expand your knowledge of these as required.
- You must have practical experience of developing, testing and debugging complex multi-threaded software, including low-level performance optimisation and memory profiling.
- You should have experience leading the design and development of significant software components in a cross-functional team environment, and be willing to do more of this.
- Experience of software development and maintenance on multiple platforms including Windows, Linux and OSX.
- Experience of commercial software engineering, working practices and methodologies, especially agile software development.
- Knowledge and practical experience of modern quality assurance methodology and practice, including unit, system and integration testing, and test-driven development.
- Experience with messaging technologies including JMS, and protocols such as AMQP and MQTT.
- Experience with cloud concepts and patterns, including container technologies such as Docker and Kubernetes.
- A good understanding of networking and machine architecture concepts.
- An understanding of distributed systems concepts such as consensus, clustering, fault tolerance and high availability architectures.
- You should be someone who takes pride in constantly improving, and is passionate about delivering software engineered to the highest standards of readability/maintainability, performance, and usability.
- You will have strong interpersonal and presentation skills, including the ability to communicate clearly and concisely with your peers and prospects/customers.
- You will be able to operate independently and work on your own initiative, taking ownership and responsibility for software deliverables, sometimes working to tight deadlines while still delivering high-quality software.
- You should be willing and able to self-teach new technologies, patterns and best practices.
- An ability and willingness to train and mentor junior team members would be highly desirable.
WHAT YOU CAN EXPECT
- A competitive compensation package.
- A generous benefits package including Pension and Comprehensive Medical Insurance.
- An opportunity to work in a world-class product development team.
- A great working location in Cambridge.