Job Information
Nielsen Lead Software Engineer 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
Nielsen
-
- Nielsen Jobs