Linux Software Developer - Kernel

Linux Software Developer - Kernel

Nielsen

Koper, Slovenia

About the role

We are the hardware engineering group that designs and implements embedded systems (meters) for collecting TV tuning and TV viewing data. Our team’s responsibilities include electrical schematic design, circuit board layout, and enclosure mechanical design. We use contract manufacturers to build prototypes and production meters. Typical meter designs consist of a single main board with a dozen or more integrated circuits (BGA, QFP, TDFN, SOT, etc.) and related passive components. Our designs range in size from rack mount equipment to devices as small as a wrist watch. We design and create automated manufacturing test systems that incorporate various instruments such as optical detectors, power supplies, DVMs, RF generators, and frequency converters. These test systems are used to validate newly manufactured equipment.

Key Responsibilities

The Linux Software Engineer’s role involves the software architectural design, coding, testing, and documentation of Linux device drivers and Linux kernel builds for Nielsen embedded metering systems.

Role Requirements

  • Linux Kernel Development, Optimization and Maintenance.
  • Design and Development of BSPs and HALs for embedded systems and software bring-up on new systems.
  • Testing and validating newly developed software subsystems on new platforms.
  • Debug and root-cause a variety of hardware and software issues.
  • Design and development of Device Drivers for various peripherals including NICs, USB interfaces, WiFi/BLE modules, and cellular modems.
  • Work closely with the Firmware and Hardware teams.
  • Support manufacturing through development of tools and procedures for device OS and application programming employing gang programming where practical.

Key Skills

  • Excellent C, C++ programming skills - preferably on multi-core or multi-threaded applications.
  • In-depth knowledge of Linux kernel functionality and architecture including knowledge of networking, memory management, process management, etc.
  • Excellent debugging skills, experience with kernel debugging tools and JTAG is preferred.
  • Solid understanding of low-level CPU architecture (core, cache, MMU, bus architecture, etc.).
  • Must have hands-on experience in developing device drivers for the Linux kernel.
  • Experience with hardware peripherals / buses / protocols like PCIe, USB, SATA, SD/MMC, etc.
  • Good understanding of protocols & interfaces like SPI, I2C, UART is preferred.
  • Experience in developing Unix user-space applications is desirable.
  • Experience building Linux kernel for embedded systems.
  • Working knowledge of Git version control.

Education and Experience

  • BE/BS/MS/MTech or equivalent engineering degree (CS, ECE or EE).
  • 5+ years of experience with Linux Kernels and Device Driver development.

Apply Now

Don't forget to mention EuroTechJobs when applying.

Share this Job

More Job Searches

Slovenia      C++ Developer      Developer      Embedded Software Engineer      Linux and Unix      Nielsen     

© EuroJobsites 2024