Our client is a leading Software provider who employs over 4,000 staff across 50+ Countries. With a Turnover of over £1 billion and share prices doubling in the past year the company is now looking to expand its Software Development Team with the addition of an experienced Principal Software Engineer who will provide clear technical leadership on projects whilst working in a team of 10.
The successful candidate will take on a senior role in the close-knit and highly skilled multi-disciplinary R&D team of 10 working on a real-time streaming analytics product. As one of the "Principal"-level software engineers you will be ready to provide clear technical leadership on projects and make a significant contribution to the design, implementation and testing of new functionality in an award-winning high performance event processing product, owning and influencing the development of key product areas.
Tasks and Responsibilities
The successful candidate will be an excellent all-round software developer with experience of designing, building and testing complex software systems, ideally with strong C++ and Java in an enterprise environment. They should be a conscientious, assertive and highly-motivated individual, who will bring to the role important technical skills and also be keen to learn new ones on an ongoing basis.
Specific responsibilities will include:
- Software architecture, design, development, documentation and testing
- Continuous improvement of software development, test and release processes
- Evaluation and recommendation of technologies
- Contribution of creative and innovative ideas for products and features
- Project management in an agile software development team ("product owner" role)
- Collaborative development of product features with key customers ("co-innovation")
- Design and development of cross-product/suite-wide features with other R&D teams
- A First Class or Second Class Upper first degree in Computer Science, Mathematics or an Engineering-related subject is required, with a Masters or Ph.D. degree in a relevant subject considered desirable
- Strong and up-to-date development skills in modern C++ and/or Java.
- Substantial experience of systems programming techniques including multi-threading, performance optimization and memory profiling.
- Experience with the challenges of developing distributed computing systems.
- Strong expertise with developing scalable, concurrent software.
- Strong understanding of data structures, algorithms and algorithmic complexity.
- Strong understanding of computer architectures and their impact on software performance.
- Experience of object oriented design, including the architecture of large and complex software systems.
- Experience designing frameworks and APIs.
- Experience as a development team lead or product owner.
- Experience of software development and maintenance on multiple platforms including Windows and Linux.
- Experience of commercial software engineering, working practices and methodologies, particularly agile software development.
- Practical experience of QA methodology and practice, including unit testing, TDD and CI.
Experience of breaking features down into agile user stories for a team to work on.
- Software development experience on Raspberry Pi and mobile platforms such as iOS or Android.
- Knowledge of scripting languages like Python.
- Knowledge of cloud infrastructure technologies, e.g. Docker, Amazon Web Services, CloudFoundry
Additional Requirements & Soft Skills
The successful candidate will 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. They will have strong interpersonal and presentation skills, including the ability to communicate clearly and concisely with peers and prospects/customers. They will have the ability to operate independently and work on their own initiative, taking ownership and responsibility for software deliverables.
Benefits of the Position
- • A chance to work with and learn from a team of smart and highly knowledgeable colleagues
- • An atmosphere where quality and innovation are prized, and everybody has the chance to help shape both design decisions and the agile development processes we follow
- • A wide variety of projects, languages and a constantly changing set of new technologies to learn about and use
- Computer Science
Bank or payment details should not be provided when applying for a job. reed.co.uk is not responsible for any external website content. All applications should be made via the 'Apply now' button.Report this job