Senior Software Engineer
Summary
Senior Software Engineer designing, implementing, and optimizing real-time 5G NR physical-layer signal processing software for x86/ARM embedded platforms at AccelerComm in Southampton. Core stack: C/C++ on Linux with DPDK, PCIe, SIMD, plus CI/CD and Agile workflows; also mentors junior engineers.
- Create designs, write code and corresponding tests in the development and optimisation of real-time software implementations of wireless communication signal processing, using x86 or ARM targets.
- Create designs, write code and corresponding tests for high-performance software and APIs for hardware implementations of wireless communication signal processing, utilising technologies such as Linux, DPDK and PCIe.
- Assist technical leads in the design and implementation of software solutions through a product lifecycle.
- Assist in the successful and timely delivery of projects by providing technical leadership and by applying skills and expertise.
- Provide mentoring to aid the development of junior colleagues.
- Actively contribute to and adhere to AccelerComm engineering methodology, processes and design techniques and be able to offer significant improvements and additions to efficiency and quality of design and product.
- Demonstrable experience in a relevant field in the Wireless communications Industry.
- Senior Software Engineering experience of working within substantial software projects using C++/C.
- Experience of Linux development and deployment.
- Experience of contributing to Software Development activities with multiple contributing engineers of varying skill levels.
- Experience of CI/CD workflows.
- Experience of Agile workflows (using JIRA).
- Experience of developing embedded or high-performance computing software solutions within hardware / software projects.
- Git version control and peer review.
- Experience of creating innovative solutions and supporting them through the product lifecycle.
- Solid knowledge of a scripting language (e.g. Python, Groovy).
- Technical documentation writing – specifications, design, architecture, test plans etc.[MA1.1][MS1.2]
- Degree qualified (or equivalent).
Desirable:
- Appreciation of mobile communications systems, including Physical Layer interfaces such as DIFI, nFAPI/FAPI and ORAN LLS.[MD2.1]
- Understanding of telecoms and/or semiconductor industries.
- Experience with modern C++ up to C++20.
- Strong Object-Oriented Design but also with appreciation of Data-Oriented Design and performance.[MA3.1]
- Experience with DPDK application and poll mode driver development ideally BBDEV.
- SIMD intrinsic programming for Intel AVX, ARM Neon or equivalent.
- HPC (High Performance Computing) software solutions.
- Bare-metal programming or embedded RTOS experience.
Personal Attributes
- Present a can-win attitude; able to come up with solutions to intractable problems.
- Should have hands-on experience of relevant industry tools, techniques and technology.
- Willing to learn from other technical leads, open to new ideas and new ways of working.
- Self-motivated and able to make relevant decisions on a day-to-day basis.
- Good communication skills – written, presentational and verbal.