Summary
The Senior Staff Engineer, Software develops, debugs, tests, deploys and supports code to be deployed in systems/products/equipment for various applications. They write, debug, maintain, and test software in various common languages and for software at various levels in the hierarchy (from Firmware to Application). Software creation follows an agreed to development process (such as Agile, Scrum, etc.) and complies with the product life cycle development (phase/gate deliverables).
The Senior Staff Engineer, Software works in cross functional teams with other designers, customers, manufacturing engineering and project leadership to ensure robust and high quality product development. Enhance designs with feedback from reviews in areas such as manufacturing, test, supply chain, reliability, industrial design and simulations.
Roles & Responsibilities:
- Develop, test and integrate device drivers for various devices on our high-performance platforms including Ethernet, I2C, PCIe, SPI, USB, NAND devices
- Customize BSP, boot code and device drivers. Design and develop diagnostic software for networking switches.
- Work closely with hardware engineers in board bringup
- Work closely with manufacturing teams for qualification through diagnostics packages
- Develop software solutions for high availability and redundancy
- Lead and mentor a team of high-performance engineers
- Interact with customers to gather requirements, design firmware and ensure quality of deliverables
- Interact with cross functional team including product management, hardware engineering, manufacturing, sales teams to design high-performance, cost-effective solutions for storage and switching platforms
- Domain and Leadership Skills
- 10+ years of work experience implementing device drivers and BSP
- 5+ years of experience in technical leadership role
- Experience working with cross functional teams including hardware engineering, manufacturing
- Strong knowledge of real time operating system concepts, multithreading, SMP
- Strong knowledge of C, Linux driver programming and kernel architecture
- Strong knowledge of Python
- Outstanding software debugging skills
- Experience using a full range of hardware test equipment like JTAG debuggers, I2C analyzer etc.
- Solid understanding of Linux kernel modules, Ethernet PHYs, PCIe, USB, SPI, NAND, I2C and SDRAM
- Knowledge of Intel x86 architecture and BIOS/UEFI is a plus
Knowledge/Skills/Competencies
- Project Management - Ability to manage/lead complex, multiple line engineering projects that may also involve other functions. Demonstrate solid understanding of the technical, financial and people aspects of the project. Able to create a project/change management plan and ensure that the project is delivered within the assigned time and budget. Ability to recognize project barriers and develop mitigation plans
- Leadership - Demonstrate "People & Team Leadership Behaviours" as per Celestica Leadership Imperatives.
- Financial Acumen / Business Planning - Ability to create financial plans for your projects, align them internally with your line of management and other functions and externally if needed. Create project plans, profitability calculations, risk and sensitivity analysis, able to recognize barriers and mitigate profitability risks. Fully knowledgeable about internal and external financial reporting, accounting and tax requirements relevant to your area of expertise.
- The following competencies may also be required: Coaching/Mentoring; Communication/Negotiation/Presentation; Creative Problem Solving; Customer Interaction/Stakeholder Management; Quality & Lean; Working Effectively with Others; D/PFMEA; 8D/Corrective Action; Equipment Safety; Design of Experiments (DOE).
Experience
- 6 years of relevant experience
Education
- Bachelors or Master degree in ECE, CS, IT or EEE
- Excellent verbal and written communication skills
- Strong interpersonal, multitasking and organizational skills
- Ability to work in a challenging and competitive environment