Software Engineer

Software Engineer

Location: London, Belfast, or Ipswich
Rate: £416 (inside ir35)
Contract: 3 months+
Remote working: 2/3 days on site


The role holder will work as part of an Agile software development team and will be expected to develop and deliver high quality code in support of BTs world class broadband products.


* Development team member with responsibility for the development of one or more software components.
* Technical authority for one or more software components.
* Contributes to testing best practices with a primary emphasis on automated testing
* Shall perform ad hoc testing and planned testing either manually or preferably via test automation

Authority/Decision Making:
* Works under broad direction.
* Works alongside other team members to deliver software components for the project
* Responsible for the quality and delivery of own technical work.
* Receives assignments in the form of objectives.
* Work with team leader to establish milestones, personal objectives and may delegate assignments where applicable.

* Likely to have relevant, contemporary and industry recognised qualifications appropriate to the specific function.
* Likely to have a degree qualification (engineering/science) in relevant area.
* Relevant professional experience.

* Demonstrable experience in software design and development, using the C programming language, ideally on embedded systems
* Experience developing and debugging in a Linux environment
* Strong scripting skills, e.g. bash, Python
* Strong revision control, i.e. git, skills
* Experience in building and debugging software for embedded systems development, with demonstrable experience of shell scripting, debugging tools, e.g. gdb.
* Use of code revision, issue tracking and continuous integration tools, e.g. git, Jira, Gitlab
* Understanding of the hardware and software constraints related to developing home gateways or similar consumer electronic systems
* Must have experience of working with Agile delivery methodologies such as Scrum, Kanban; iterative planning and task estimation
* Experience of building products using OpenWRT or similar
* Experience in Linux kernel and driver development is preferred.
* Collaborative and innovative approach to problem solving
* Continuous Integration, Continuous Deployment and Test Driven Development
* Exposure to, and understanding of drivers behind automated test strategies
* Working to ambitious timescales

* Demonstrable contribution to open source projects
* Experience on one or more of the following: TR-069, SIP(S), Wi-Fi driver development, DECT, cellular interfaces
* Bootloader experience, e.g. U-Boot
* An understanding of the TR-069 protocol and TR-181 data model design and use
* Demonstrable experience of designing or developing embedded containerised environment
* Has a working knowledge of Home Gateway standards including, but not restricted to: IPv4/IPv6, PPP, IPoE, Wi-Fi, UPnP / Multicast and EoGRE.
* Experience using JTAG debuggers to bring up and debug hardware