Software Engineer III
- Round Rock, TX, United States
Applications open in a new tab.
Job details
- Posting language
- English
- Posted
Original job description
JOB SUMMARY:
Develops complex software, and creates and executes designs for new functionality. Involved with the design, analysis, validation and documentation of both standard and custom software products.
ESSENTIAL FUNCTIONS:
- Develops software in C, C++, or other selected languages for embedded Linux OS based products and/or applications in accordance with the software development methodology and release process.
- Translate product-level functional requirements into operating system configurations, package selections, and application-layer software implementation requirements.
- Lead the analysis, design, and development on projects and be the technical subject matter expert on software products under development.
- Optimize software system architecture for the best balance of resource utilization, run-time performance, and future maintainability
- Develop, configure, build, and maintain embedded Linux operating system environments using Buildroot, including package selection, dependency management, and integration of libraries, utilities, runtime daemons, and system services required to achieve product functionality.
- Develop, maintain, and enhance Makefile-based build systems utilizing Buildroot-generated cross-compilation toolchains to build, integrate, and maintain application-layer software within the embedded Linux environment.
- Troubleshoot and resolve complex issues across the operating system, package management, toolchain, build infrastructure, and application layers.
- Follow standard software development practices in a team environment using a Git based repository management system
- Follow standard software QA practices to establish and develop test plans and procedures for unit level code and integration with hardware and other subsystems.
- Contribute towards design/code peer review, ensuring best practices are followed.
- Provide direction, mentorship, and support to junior software engineers.
- Attend and contribute to formal design reviews.
- Document architecture design, operating system configurations, package selections, build dependencies, algorithms, data flow and software integration procedures.
- Prepare and transfer appropriate information to manufacturing, field service and technical publishing during the release process.
- Provide continued technical support for customer support, field service, manufacturing, sales and marketing.
- Communicate effectively with lead engineer, cross functional teams and vendors.
- Track and report status of assigned tasks, reporting progress to team lead and/or Core Team.
- Meets multiple deadlines and objectives, setting priorities with moderate coaching.
ADDITIONAL FUNCTIONS:
- Performs other related duties as assigned by management.
Qualifications
Core Competencies:
- Ethics, Values, Integrity & Trust - Adheres and acts in line with CPI core values.
- Functional/Technical Skills - Possesses high level of skill, knowledge and ability in assigned functional area.
- Safety – Complies with company safety rules and regulations. Takes a proactive approach to identify and eliminate safety hazards.
- Customer Focus - Gives high priority to customer satisfaction.
- Interpersonal Skills - Uses diplomacy and tact. Uses collaborative skills.
- Action Oriented & Adaptability - Takes initiative; acts promptly; is proactive.
- Ownership & Accountability - Proactively models, guards and demonstrates all of CPI’s core values.
- Priority Setting, Planning & Organizing- Uses resources effectively and efficiently.
- Problem Solving & Creativity - Uses logic and methods to solve problems with effective solutions. Develops new and unique ideas.
- Listening, Informing and Written Communications - Practices attentive and active listening. Shares information. Presents ideas and facts clearly and effectively in writing.
Technical Competencies:
- BS or MS in Electrical Engineering, Computer Science, or equivalent.
- Minimum of ten (10) years of experience.
- Must have knowledge and experience with C/C++, LUA, SQL databases, and Python development
- Proficiency utilizing AI-assisted software development tools to improve code development, debugging, refactoring, documentation, and software testing (e.g., GitHub Copilot, Claude Code, or comparable tools).
- Demonstrated experience with Buildroot or comparable embedded Linux build systems (e.g. Yocto), including package configuration, dependency management, toolchain generation, and operating system image builds.
- Strong proficiency in developing and maintaining Makefile-based build systems using cross-compilation toolchains generated by Buildroot or comparable embedded Linux build systems
- Strong understanding of embedded Linux architecture, including system initialization, filesystem structure, process management, runtime services, daemons, and system configuration.
- Experience identifying, evaluating, configuring, and integrating Linux packages, libraries, utilities, daemons, background processes, and services to meet product functionality requirements.
- Proficiency in designing, developing and troubleshooting software systems and algorithms that run in an embedded Linux OS run-time environment.
- Understanding of embedded system run-time constraints, including CPU, memory, storage, performance, and software security.
- Experience using a Git based version control system for team-based coordinated collaboration
- Other preferred experiences include
- Experience developing and integrating software for ARM-based embedded hardware platforms such as Atmel Cortex M0+ microcontrollers or Atmel A5 and A7 based micro-processor units
- Experience with board support packages (BSPs), bootloaders (U-Boot), Linux kernel configuration, and device tree configuration.
- Experience with embedded hardware interfaces and protocols, including UART, SPI, I2C, GPIO, USB, CAN 2.0, and CAN-FD
- Experience with Ethernet technologies, including conventional 10/100/1000BASE-T and Single-Pair Ethernet (SPE) standards such as 10BASE-T1S and 10BASE-T1L.
- Experience coding for adherence to cyber-security regulatory requirements such as IEC 62443
- Knowledge of upcoming cyber-security regulatory requirements for the EU Cyber Resilience Act (CRA)
- Experience with hardware/software integration, target hardware debugging, and troubleshooting using JTAG, SWD, or similar tools.
- Experience with automated build systems, continuous integration, and embedded software release management using tools such as Jenkins or comparable platforms.
PHYSICAL/ENVIRONMENTAL REQUIREMENTS:
- Works on computer majority of the day.
- Ability to life up to 25 lbs. to move file boxes, etc. as needed.
- Some travel may be required both by automobile and airplane.