About the role
We are an innovative high-tech next-generation telecommunications start-up based in the Surrey area, actively seeking exceptionally talented engineers to join our dynamic team. As part of this role, your focus will span the entire software development lifecycle, from concept through to volume production. You will be engaged in every aspect of the development process to ensure successful outcomes. This role requires a strong emphasis on multi-functional collaboration and fostering a robust team spirit. We are seeking candidates with a flexible working attitude, a team player who can also demonstrating the ability to work autonomously and take responsibility in a dynamic environment.
Responsibilities
- Participate in the full life cycle of telecoms product development, from specification and design through implementation, testing and support.
- Provide technical leadership in software development for embedded systems in a Linux environment, perform design integration and testing.
- Work with real-time operating systems or develop software that operates in real-time environments, ensuring that critical tasks are executed within specified time constraints.
- Optimise software performance and memory usage to meet the resource constraints of embedded systems, ensuring efficient utilisation of hardware resources.
- Collaborate with Firmware and Hardware engineers to ensure that projects are delivered on time.
- Coordinate design review activities to ensure that designs meet their requirements.
- Create and maintain comprehensive documentation for the embedded software, including design specifications, coding standards, and user manuals.
- Stay updated on emerging technologies, tools and best practices in embedded software development.
Candidate requirements
- Bachelor’s or master’s degree in computer engineering, electronics or related fields.
- Over 8 years’ proven Industrial experience in embedded software design within the telecommunication sector.
- Strong Software Engineering skills including design, programming using C, scripting (Python, perl).
- Very strong Linux experience.
- Must have a deep understanding of digital circuits, Microcontrollers, Microprocessors and FPGAs.
- Strong experience in developing and testing communication protocols (I2C, SPI, Ethernet, UART).
- Good knowledge on ARM drivers and low-level device interface design and development.
- Ability to work collaboratively and build and maintain relationships with team members.
- Experience developing embedded Linux on ARM processors.
- Experience with source control e.g. Git, SVN, CVS
- Excellent debugging skills using debugging and testing tools: JTAG, Oscilloscope, Logic analysers.
- Excellent verbal and written communication skills.