Embedded Linux Software Engineer

Planmeca USA Inc.
Richardson, United States of America
4 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Shift work
Languages
English

Job location

Richardson, United States of America

Tech stack

Testing (Software)
C
3D Scanning
Microsoft Windows
API
Software Applications
Unit Testing
C++
CMake
Computer Programming
Computer Engineering
Continuous Integration
Software Debugging
Linux
DevOps
Device Drivers
Linux on Embedded Systems
Embedded Software
Firmware
Field-Programmable Gate Array (FPGA)
FreeRTOS
GNU Compiler Collection
Joint Test Action (IEEE Standards)
Python
Linux kernel
Linux Distribution
Rapid Prototyping Process
Shell Script
Software Engineering
Standard Widget Toolkits
Software Technical Review
Universal Asynchronous Receiver/Transmitter
Verilog
VHDL
Data Logging
Serial Peripheral Interface
PIC Microcontroller
Yocto
Information Technology
Bare Metal
U-Boot
Docker
Jenkins

Job description

As a key member of our team, you'll have an integral role in designing, implementing, and testing Planmeca's next generation of intraoral 3D scanners. You will be expected to work within an experienced software development team, participate in technical design reviews, develop innovative solutions, write unit tests, and debug both new and existing code. Also, you will work with a cross-disciplinary experienced team to influence and maximize the benefits of Planmeca's generation of scanning hardware., * Design and write embedded software code (micro-controller or CPU) according to prescribed specifications.

  • Write kernel code and/or device drivers for Linux based application processors to support hardware utilizing I2C, SPI, UART, MIPI-CSI2, GPIO, and/or SoC-specific peripherals.
  • Become familiar with Planmeca's scanning technologies and software applications.
  • Develop prototypes to validate suitability of new hardware / firmware / software.
  • Implement embedded system and interpret error reports.
  • Develop embedded software for functional test equipment for manufacturing.
  • Test software for scalability and structure.
  • Fix bugs and optimize system.
  • Support manufacturing and technical support groups to sustain production and resolve field issues.
  • Collaborate with development team to integrate new hardware into existing applications.
  • Meet company standards pertaining to quantity and quality of work performed on an ongoing basis, performing all work-related tasks in a manner that is in compliance with all Company policies and procedures.
  • Adheres to company policies, procedures, and directives regarding standards of workplace behavior in completing job duties and assignments.
  • Performs other duties as assigned.

Requirements

Training and Experience

  • Bachelor's or master's degree in electrical engineering/computer science/computer engineering or relevant industry experience.
  • Skilled in C, C++, Python, and shell scripting for developing Linux kernel and user-space applications.
  • Ability to work with micro-controllers and RTOSes (e.g., FreeRTOS) or bare-metal / superloop code.
  • Ability to utilize manufacturer's SDKs / DevKits for rapid prototyping.
  • Experience with the Yocto project (bitbake, devtool, etc.), the gcc compiler suite, and support tools such as CMake for developing a custom Linux distribution.
  • Experience with U-Boot and Linux kernel, including configuring the device tree.
  • Ability to work 1-on-1 with Electrical Engineers and others to assist in board design and check-out.
  • Ability to rapidly understand and work within the existing codebase.
  • Familiarity with applicable codes, standards, and acceptable industry practices.
  • Must be able to read electronic schematics.
  • Must have excellent communication skills and be capable of interacting with other engineering disciplines, managers, manufacturing and support personnel.
  • Able to work effectively on project teams consisting of departmental and/or cross functional personnel.

Skills and Experience considered beneficial for the position:

  • Experience with Video4Linux2 (V4L2) and Videobuf2 API.
  • Experience with Gstreamer (including writing custom elements / plugins).
  • Experience with Linux kernel debugging techniques (kernel instrumentation and logging facilities, dynamic debug prints, -kgdb, -openocd).
  • Experience with JTAG / ICE adapters (e.g., Segger J-Link).
  • Experience with FPGAs and their programming (Verilog or VHDL).
  • Experience with developing products with international agency compliance (FCC, UL, RoHS).
  • Experience with motion controllers, DC/AC Motor Drive Circuitry, and CCD or CMOS camera sensors.
  • Experience setting up a build environment in Docker.
  • Experience integrating builds into a CI/CD system (e.g., Jenkins) and working with DevOps team to accomplish this.
  • Experience developing test or manufacturing apps on Windows, Mac, or Linux (e.g., a python app with a tkinter UI).

Benefits & conditions

We offer a professional work environment, training, growth, and advancement. Competitive compensation and a benefits package including a medical, dental, and vision plan, voluntary benefits including life, short-term and long-term disability, 401(k) savings plan with company match, holiday pay.

About the company

Planmeca is one of the largest privately held dental equipment companies in the industry. Our technology-driven product line includes digital, dental imaging (x-ray) equipment, dental CAD/CAM systems, dental units, and cabinetry. We provide imaging and software solutions for all dental specialties and partner with dental schools, government, universities, and dental service organizations. In the U.S., our products are available through authorized dealers and distribution partnerships.

Apply for this position