Low level firmware engineer

Bermondsey Electronics is a contract electronics development company looking for an embedded software developer to expand the team. The successful applicant will work on a wide variety of systems, with different targets and design goals, based from the office in Bermondsey.

We need a new engineer to be involved in peripheral and board bring-up. This means testing PCBs coming in from clients. Clients have occasionally tested boards but not always, and usually not fully. They might not have the skills or might not know how a specific peripheral works. Our job is to prove the board fundamentally works, and develop or debug drivers as necessary. Higher level application code is usually done by those specialists and is not expected to be a fundamental part of this role. It's a useful skill if you have it, though.

In the last year, this has meant working with STM32, DA1453x, NXP iMX RT and RW6xx platforms, iMX 8M Plus and Nano. Software platforms range from bare metal to FreeRTOS to Zephyr, through Linux and all the way up to Android. At each stage, clients have either not been able to supply drivers, or a delivery from a supplier has had to be debugged or modified. With that done, the PCB is handed off to application developers, or the client will issue us another board to repeat the cycle. Suppliers usually deliver drivers in C. These are often of unknown quality. They may need configuration, and sometimes a device tree.

As examples:

We ported TI's CC3351 driver to STM32 and brought up lwIP on FreeRTOS

We brought up a new iMX8MP Linux platform using LVDS and a bespoke RFID driver

We rewrote an ESP32 bootloader for a client to update partition tables OTA

We tested and verified RW610 power modes in Zephyr

We rewrote the STM32 Eclipse ThreadX USB Audio Host driver to support USB MIDI

We debugged an Infineon WiFi driver low power mode on Android on iMX8MP

Typically LLMs do not have enough training data to help. They usually cannot work out schematic errors, or spot placement issues on a board. If you use LLMs heavily, you are unlikely to find them as useful in this role.

It can mean writing and/or debugging drivers like SPI, DAC or LVDS. Typically test and measurement gear is needed, e.g. logic analyser, scope, bench power supply etc. There can be a lot of time configuring demo code to run in the mode the client requires, perhaps on a different target. When the code is running, we may need to capture signal traces to diagnose the fault. When we have the fault, we might need to change the code or the hardware, or both, for the client feature to work.

Please note this role is not to develop hardware. Clients supply us boards to bring up. If you want to design PCBs from scratch, this is not the job for you. If you enjoy bringing up software stacks on new hardware, this is the job for you!

Any knowledge of embedded OS is an advantage (FreeRTOS, Zephyr, Linux/Android, ThreadX).

Ability with a soldering iron is useful.

Familiarity with automated testing is useful but not required (e.g. hardware-in-the-loop).

If you thrive in responsive, hands-on work and enjoy solving difficult problems efficiently, this could be the right role for you!

Candidates must be eligible to work in the UK. No exceptions. We cannot sponsor a visa at this time. We cannot sponsor a candidate whose graduate visa will expire.

Candidates must know embedded C programming and any one of the following:

  • Embedded Linux e.g. Yocto or Buildroot build system
  • Python
  • Android build system
  • Networking and communication protocols
  • ISO13485 / IEC61508

The ideal candidate will also have some familiarity with:

  • Embedded OS use
  • Power optimisation
  • Makefiles / build configuration systems
  • Basic soldering
  • Unit testing

36 hours of full time effort are expected every week. Remote working is offered, although 2 days per week on site are required. Flexitime is offered as standard, although all hours must be accountable. 25 days' vacation are offered, growing with tenure.

Job Types: Full-time, Permanent

Pay: £55,000.00 per year

Benefits:

  • Flexitime
  • Sick pay
  • Work from home

Schedule:

  • 8 hour shift
  • Flexitime
  • Overtime

Education:

  • Diploma of Higher Education (preferred)

Experience:

  • C Programming: 1 year (preferred)
  • Software engineering: 1 year (required)

Work authorisation:

  • United Kingdom (required)

Work Location: Hybrid remote in London SE1 with 2 days per week on site near London Bridge.

Job Details

Company
Bermondsey Electronics Ltd
Location
Newcastle upon Tyne, UK
Hybrid / Remote Options
Employment Type
Full-time
Posted