Principal Software Engineer
About the Job
Gentis Solutions is looking for a Principal Software Engineer to join our client's team. Client-specific benefits are available and will be discussed in detail during your interview.
Compensation for this position ranges from 120k/year - 145k/year per year, based on experience. Payment is bi-weekly and is based on all hours worked, without eligibility for overtime.
This position requires the individual to be located in the Eden Prairie, MN area.
POSITION SUMMARY:
Develop and customize Linux board support packages (BSP). This position focuses on bootloaders including U-Boot and the Linux kernel (Yocto and Buildroot based distributions). This is NOT an IT or application development role.
Key Responsibilities: Supervisory Responsibilities:
This role has no direct supervisory responsibilities but does serve as a coach and mentor for other positions in the department
Essential Duties & Responsibilities:
- Instruct, direct, and check the work of other design engineers
- Translate product requirements into implementable architectures
- Design and develop software for 32 and 64-bit processor platforms
- Design and develop software for bare metal, RTOS, Linux, Android and QNX platforms
- Design and develop device drivers for USB, Video, Audio, Ethernet, CAN, NAND flash, NOR flash, DDR, SDRAM, HDMI, PCI Express, SPI, I2C, and other devices
- Experience developing software solutions for wireless technologies such as 802.11, Wi-Fi, Bluetooth, GPS, and cellular technologies
- Prepare technical data such as design verification test documents, software development plan, software design specifications and software requirements specifications
- Support electrical engineering/hardware engineering with board bring-up and overall system debugging
- Experience reading electrical datasheets and schematics
- Analyze business requirements and document a suitable technical approach for internal projects and proposals
- Complete assigned engineering projects within budgetary and scheduling guidelines
- Communicate with engineers and project managers to coordinate and assure project completion; may manage an entire customer project
- Provides technical leadership and help in improving development process and procedure
- Actively engage with external technical community through writing or talks to promote Beacon EmbeddedWorks Solutions for business development purposes
- Lead a multi-discipline development project
- Mentor other engineers as they work through day-to-day technical challenges
Essential Responsibilities of all employees
- Support, demonstrate and drive our core values
- Lead, don't follow
- Consistently deliver
- Never stand still
- Create relationships not transactions
- Interact positively and professionally with all employees and customers
- Maintain reliable attendance
- Perform work safely and adhere to all safety requirements
- Complete required training as scheduled
- Perform other duties as assigned
Job Qualifications Required Qualifications:
- Bachelor of Science in Computer Science, Computer Engineering, Software Engineering or equivalent
- 12+ years’ experience developing software for embedded processor platforms
- Experience with embedded systems and microprocessor-based (MPU) design
- Experience with all aspects of product design including: requirements documentation, system architecture, design for manufacturing, design for test and design verification
- Experience working in teams including engineers from multiple engineering disciplines
- Experience with managing teams of engineers in-house and offshore, and working with partners
- Capable of providing day-to-day technical design leadership and mentorship
- Ability to analyze customer requirements for feasibility, cost and development timeline
- Strong communication skills including the ability to write technical specifications and design documentation, create and author templates for engineering documents, create project proposals with technical details, present verbally in one-on-one or group settings
- Thorough technical knowledge of application software methodologies including OOA/OOD and Design Patterns
- Understanding of CPU functions such as L1/L2 cache, MMU, power states, bus arbiters & multiplexers, interrupts, and DMA
- Understanding of coding for embedded peripherals including Ethernet, USB, I2C, CAN, Flash, SPI
- Experience using Spectrum analyzers, Oscilloscopes, and JTAG debuggers is highly desirable
- Experience with ARM, PowerPC, MSP430, PIC 32, and x86 processor cores is highly desirable
- Experience with embedded Linux, Android, and RTOSs at the application, device-driver and board support package level is highly desirable
- Familiarity with TCP/IP, Internet protocols, Routing protocols and networking is desirable
- Ability to work in a fast-paced environment with quickly changing priorities to ensure superior customer satisfaction
- Experience with Agile/Scrum Development