In this role, you will work as part of a cross-functional team (including hardware, FPGA and QA engineers where applicable) delivering carrier-class, real time, distributed applications software for our new networking platform. You will be responsible for the design and implementation of software features and/or subsystems and drive that implementation through to delivery. This will involve full engagement with all phases of the product lifecycle, from requirements elaboration, through design and implementation and into testing. You can also expect to have significant input into the maintenance and evolution of our quality processes.
Experience, Skills and Qualifications Required
Bachelor’s degree in Computer Science, Software Engineering or a related field, AND 10+ years of experience in software development, OR relevant combination of education and experience.
Ability to work to pressurised deadlines while demonstrating a track record for innovation, quality and creativity.
A track record of on-time delivery of quality software.
Technical Skills
Essential Criteria
Expert C or C++ coding and debugging skills.
Software requirements specification, ideally including use case elaboration of functional behaviour.
Software application design and implementation including the use of methodologies such as functional decomposition or object-oriented design.
Desirable Criteria
Experience of one or more of the following may be useful but is not essential.
Design and implementation of software for embedded systems.
Documenting and communicating software designs to stakeholders
Knowledge and experience of unit testing frameworks.
Test script development using Perl, Tcl, Python, or another scripting language.
Experience of developing distributed software applications.
Knowledge of telecoms operations and maintenance and network management protocols.
Knowledge and experience of Web Services environments (HTTP/XML/REST)
Experience of Agile development processes.
Interpersonal Skills
Highly motivated individual with a strong desire to work and excel in a innovative design environment.
Ability to work within a team environment and with all levels of people within technology and business environments.
Ability to communicate and work with a range of local and remote teams to deliver quality software.
Excellent organisational, verbal and written communication skills.