POSITION TITLE: Embedded Linux Software Engineer / Embedded Software Engineer
LOCATION: Plano, Texas
Who We Are:
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.
What We Offer:
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.
Come Join our Planmeca USA Team!
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.
ESSENTIAL DUTIES:
- 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.
MINIMUM QUALIFICATIONS:
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).
WORKING CONDITION: On-site position with flexible work hours and one day remote/week.
www.planmeca.com
EEO/ADA/Vet/Disabled
|