JOB TITLE: Senior Embedded Software Engineer
JOB SUMMARY
Under general direction, participates as high-level technical expert in design development, coding, testing, and debugging new software or significant enhancements to existing software for third party customers, project leads, and management. Works with technical staff to understand problems with software and develops specifications to resolve them. Develops and/or provides technical leadership in the development of software involving application of new technologies with significant technical risk.
ESSENTIAL DUTIES
- Act as high-level technical expert, addressing problems of systems integration, compatibility, and multiple platforms.
- Lead a large development team in the design of highly complex software systems for internal and external customers and is responsible for project completion as required.
- Designs, develops, operates and maintains software and firmware components and computing systems software to apply to, and integrate with engineering, scientific and manufacturing requirements.
- Design, implement, debug and optimize network protocols and communication systems for embedded devices.
- Collaborate with hardware engineers on hardware-software interfaces.
- Independently design and develop new software products or major enhancements to existing software for internal and external customers.
- Provides functional and empirical analysis related to the design, development, and implementation of software operating systems, including, but not limited to, utility software, development software, and diagnostic software.
- Performs and Approves code and test reviews.
- Exercise considerable latitude in determining technical objectives of assignment. Advances new techniques or advances the state-of-the-art.
- Engage in secure-by-design activities, including collaborating to create security requirements and support cybersecurity threat modeling and risk management.
- Mentors less-experienced software development staff.
- Defines software development best practices.
OTHER DUTIES AND RESPONSIBILITIES
- May act as team leader on complex projects.
- May participate in the development of test strategies, devices, and systems.
- Holds self and team accountable for adherence to Agile principles and practices.
MINIMUM QUALIFICATION REQUIREMENTS
Education
Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering or related field
Experience
- Minimum 6 years of hands-on experience developing embedded systems with networking capabilities
- Demonstrated track record of shipping networked embedded products
- Strong portfolio of implemented components in resource-constrained environments
- Proven track record of writing efficient, maintainable code for embedded systems.
Skills
Possess expertise in object engineering and applications development using C++. Experience with modern C++ highly preferred (C++11/14/17)
- Strong knowledge of computer science fundamentals such as design patterns, data structures, OOP and software design.
- Must have knowledge of unit and component level testing preferably within the Catch framework using BDD style.
- Skilled in Developing technical solutions to complex problems which require the regular application of analysis, problem solving, and creativity.
- Ability to use object-oriented systems composed of objects that communicate with one another using explicitly designed interfaces, an (OO) methodologies.
- Experience with embedded operating systems (preference for VxWorks and Linux) and tools to build those and associated applications such as CMake, Yocto and/or Buildroot.
- Experience with networking protocols (TCP/IP, UDP, DNS, DHCP), network security protocols (SSL/TLS, SSH), network analysis and debugging with tools (Wireshark).
- Experience implementing encryption, authentication, and secure communication over the network for security hardening
- Experience with packet analysis and debugging using WireShark
- Skilled in Behavioural Design Modelling using UML to convert system requirements to Software designs
- Conducts research in design, development, testing and utilization of electronic data processing hardware and software and/or electrical components, circuitry, processes, packaging and cabinetry for CPU's and peripheral equipment.
- Work beyond routine nature of tasks, utilizing specialized knowledge and technologies.
- Individual must be self-motivated and team-oriented with excellent attitude, vision, growth mindset and willingness to learn new technologies and approaches.
- Demonstrated ability to communicate effectively both verbally and in writing.
- Familiarity with secure-by-design and risk management concepts
JOB TITLE: Senior Embedded Software Engineer
JOB SUMMARY
Under general direction, participates as high-level technical expert in design development, coding, testing, and debugging new software or significant enhancements to existing software for third party customers, project leads, and management. Works with technical staff to understand problems with software and develops specifications to resolve them. Develops and/or provides technical leadership in the development of software involving application of new technologies with significant technical risk.
ESSENTIAL DUTIES
- Act as high-level technical expert, addressing problems of systems integration, compatibility, and multiple platforms.
- Lead a large development team in the design of highly complex software systems for internal and external customers and is responsible for project completion as required.
- Designs, develops, operates and maintains software and firmware components and computing systems software to apply to, and integrate with engineering, scientific and manufacturing requirements.
- Design, implement, debug and optimize network protocols and communication systems for embedded devices.
- Collaborate with hardware engineers on hardware-software interfaces.
- Independently design and develop new software products or major enhancements to existing software for internal and external customers.
- Provides functional and empirical analysis related to the design, development, and implementation of software operating systems, including, but not limited to, utility software, development software, and diagnostic software.
- Performs and Approves code and test reviews.
- Exercise considerable latitude in determining technical objectives of assignment. Advances new techniques or advances the state-of-the-art.
- Engage in secure-by-design activities, including collaborating to create security requirements and support cybersecurity threat modeling and risk management.
- Mentors less-experienced software development staff.
- Defines software development best practices.
OTHER DUTIES AND RESPONSIBILITIES
- May act as team leader on complex projects.
- May participate in the development of test strategies, devices, and systems.
- Holds self and team accountable for adherence to Agile principles and practices.
MINIMUM QUALIFICATION REQUIREMENTS
Education
Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering or related field
Experience
- Minimum 6 years of hands-on experience developing embedded systems with networking capabilities
- Demonstrated track record of shipping networked embedded products
- Strong portfolio of implemented components in resource-constrained environments
- Proven track record of writing efficient, maintainable code for embedded systems.
Skills
Possess expertise in object engineering and applications development using C++. Experience with modern C++ highly preferred (C++11/14/17)
- Strong knowledge of computer science fundamentals such as design patterns, data structures, OOP and software design.
- Must have knowledge of unit and component level testing preferably within the Catch framework using BDD style.
- Skilled in Developing technical solutions to complex problems which require the regular application of analysis, problem solving, and creativity.
- Ability to use object-oriented systems composed of objects that communicate with one another using explicitly designed interfaces, an (OO) methodologies.
- Experience with embedded operating systems (preference for VxWorks and Linux) and tools to build those and associated applications such as CMake, Yocto and/or Buildroot.
- Experience with networking protocols (TCP/IP, UDP, DNS, DHCP), network security protocols (SSL/TLS, SSH), network analysis and debugging with tools (Wireshark).
- Experience implementing encryption, authentication, and secure communication over the network for security hardening
- Experience with packet analysis and debugging using WireShark
- Skilled in Behavioural Design Modelling using UML to convert system requirements to Software designs
- Conducts research in design, development, testing and utilization of electronic data processing hardware and software and/or electrical components, circuitry, processes, packaging and cabinetry for CPU's and peripheral equipment.
- Work beyond routine nature of tasks, utilizing specialized knowledge and technologies.
- Individual must be self-motivated and team-oriented with excellent attitude, vision, growth mindset and willingness to learn new technologies and approaches.
- Demonstrated ability to communicate effectively both verbally and in writing.
- Familiarity with secure-by-design and risk management concepts
JOB TITLE: Senior Embedded Software Engineer
JOB SUMMARY
Under general direction, participates as high-level technical expert in design development, coding, testing, and debugging new software or significant enhancements to existing software for third party customers, project leads, and management. Works with technical staff to understand problems with software and develops specifications to resolve them. Develops and/or provides technical leadership in the development of software involving application of new technologies with significant technical risk.
ESSENTIAL DUTIES
- Act as high-level technical expert, addressing problems of systems integration, compatibility, and multiple platforms.
- Lead a large development team in the design of highly complex software systems for internal and external customers and is responsible for project completion as required.
- Designs, develops, operates and maintains software and firmware components and computing systems software to apply to, and integrate with engineering, scientific and manufacturing requirements.
- Design, implement, debug and optimize network protocols and communication systems for embedded devices.
- Collaborate with hardware engineers on hardware-software interfaces.
- Independently design and develop new software products or major enhancements to existing software for internal and external customers.
- Provides functional and empirical analysis related to the design, development, and implementation of software operating systems, including, but not limited to, utility software, development software, and diagnostic software.
- Performs and Approves code and test reviews.
- Exercise considerable latitude in determining technical objectives of assignment. Advances new techniques or advances the state-of-the-art.
- Engage in secure-by-design activities, including collaborating to create security requirements and support cybersecurity threat modeling and risk management.
- Mentors less-experienced software development staff.
- Defines software development best practices.
OTHER DUTIES AND RESPONSIBILITIES
- May act as team leader on complex projects.
- May participate in the development of test strategies, devices, and systems.
- Holds self and team accountable for adherence to Agile principles and practices.
MINIMUM QUALIFICATION REQUIREMENTS
Education
Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering or related field
Experience
- Minimum 6 years of hands-on experience developing embedded systems with networking capabilities
- Demonstrated track record of shipping networked embedded products
- Strong portfolio of implemented components in resource-constrained environments
- Proven track record of writing efficient, maintainable code for embedded systems.
Skills
Possess expertise in object engineering and applications development using C++. Experience with modern C++ highly preferred (C++11/14/17)
- Strong knowledge of computer science fundamentals such as design patterns, data structures, OOP and software design.
- Must have knowledge of unit and component level testing preferably within the Catch framework using BDD style.
- Skilled in Developing technical solutions to complex problems which require the regular application of analysis, problem solving, and creativity.
- Ability to use object-oriented systems composed of objects that communicate with one another using explicitly designed interfaces, an (OO) methodologies.
- Experience with embedded operating systems (preference for VxWorks and Linux) and tools to build those and associated applications such as CMake, Yocto and/or Buildroot.
- Experience with networking protocols (TCP/IP, UDP, DNS, DHCP), network security protocols (SSL/TLS, SSH), network analysis and debugging with tools (Wireshark).
- Experience implementing encryption, authentication, and secure communication over the network for security hardening
- Experience with packet analysis and debugging using WireShark
- Skilled in Behavioural Design Modelling using UML to convert system requirements to Software designs
- Conducts research in design, development, testing and utilization of electronic data processing hardware and software and/or electrical components, circuitry, processes, packaging and cabinetry for CPU's and peripheral equipment.
- Work beyond routine nature of tasks, utilizing specialized knowledge and technologies.
- Individual must be self-motivated and team-oriented with excellent attitude, vision, growth mindset and willingness to learn new technologies and approaches.
- Demonstrated ability to communicate effectively both verbally and in writing.
- Familiarity with secure-by-design and risk management concepts
Read Full Description