Embedded C Software Engineer
CellXion is looking for software engineers to join a small team in building, enhancing and maintaining a variety of Linux based product components. They will work to improve embedded software running in a network of GSM, UMTS and LTE base-stations along with other modules and devices.
Successful candidates shall have knowledge and experience of the design, implementation, test and debugging of software systems. They shall be able to make use of this knowledge to help design and develop aspects of the products while also providing level-of-effort estimates and working to timescales.
Job Requirements Essential Skills & Qualities
- 2:1 degree or equivalent qualification in Computer Science or a comparable discipline
- Significant project experience with C application development on Linux platforms
- Fluent in C with a good understanding of the compilation process
- Ability to produce efficient, reliable and maintainable embedded code
- Experience using the gcc toolchain and Makefiles
- Understanding and use of revision control systems
- Linux system administration and IPv4 networking
- A creative and structured approach to problem-solving and debugging
- Comfortable communicating within a small team
Desirable Skills and Qualities
The following skills are not essential for this role, but experience in any of the following areas would enhance your application:
- Mobile telephony systems such as GSM, UMTS and LTE (protocols, or air interface)
- Prior exposure to 3GPP mobile telephony standards
- Open Source project interaction or contribution – patches, repositories, bug reports
- Operating system kernel or device drivers
- Experience with Java, JavaFX2, Eclipse, subversion, Doxygen, JIRA or CentOS
What are the desired behaviours for this role?
As a small company, cellXion benefits from individuals that are keen to be involved in both technical problem solving while also helping to drive the development process forward. This approach heralds a flexible culture where employees guide decisions, helping to shape how the team works together and best serves customers. The following behaviours are assessed as part of the recruitment process:
- Self-starting – Your ability to quickly understand and learn new technologies by utilising existing team members, training resources or through self-research
- Time management – Forecasting task durations both at a high and low level, while also being able to appropriately prioritising individual work items
- Creativity – Producing new ways of achieving desired functionality, be it simpler or more efficient, suggesting new units or modules or suggesting product improvements
- Pro-activity – Raising problems early and suggesting or undertaking corrective action to avoid malaise
- Collaboration – Your ability to call on colleagues, customers or other resources to share knowledge or seek their view or experience
- Curiosity and Innovation – Keen interest in how things work (or don't!) with a view to learning from quality components or avoiding mistakes of weak systems or designs
- Team and personal development – Recognition of the importance of personal development,as well as supporting development of a team as a whole
Pension with contributions matched to 5% of salary.
Life assurance and medical care.
26 days annual holiday.
Information for Applicants
All applications must include a sample of C code they have developed and are prepared to discuss at interview. This could be a small program or module which does something useful or interesting and is complete enough to be understood from the submitted sources. The submission should ideally be less than 2,000 lines (as counted by wc –l). Source need not be complete or compile.