Nielsen Jobs

Job Information

Nielsen Linux Software Developer - Kernel in Ljubljana, Slovenia

At Nielsen, we believe that career growth is a partnership. You ultimately own, fuel and set the journey. By joining our team of nearly 14,000 associates, you will become part of a community that will help you to succeed. We champion you because when you succeed, we do too. Embark on a new initiative, explore a fresh approach, and take license to think big, so we can all continuously improve. We enable your best to power our future.

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

Nielsen is committed to hiring and retaining a diverse workforce. We are proud to be an Equal Opportunity Employer, making decisions without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability status, age, marital status, protected veteran status or any other protected class.

#LI-KP1

DirectEmployers