TrustiPhi is creating a software development kit (SDK) that will enable customers to integrate specific hardware security components into their unique products, which may include self-driving cars, medical devices, military and aerospace applications, energy grid, consumer products and other devices in the Internet of Things (IoT). The software will execute on a broad range of computing platforms ranging from large servers, down to small embedded devices.
The Security Software Engineer I will be involved in many areas of SDK and other software development with focus on testing, debugging, and application development. The Security Software Engineer I will be challenged to develop systematic tests which “break” the software during development and to use the test results to improve the overall quality of TrustiPhi’s software. In addition to testing, other software work will involve all aspects of the software development life cycle including deriving requirements, software architecture, realization (writing code), deployment, and maintenance.
The Security Software Engineer I will work closely with senior engineers which will provide an excellent opportunity for mentorship and hands-on training. This position is well-suited for a smart, enthusiastic engineer who has the interest and ability to learn quickly, but may not have many years of professional experience and offers the opportunity to develop cutting edge security software for some of the largest semiconductor manufacturers in the world.
- Design and implement applications and control software modules responsible for enabling new security features of next-generation semiconductor devices used to protect systems against complex hardware-targeted cybersecurity attacks
- Plan, design and implement automated unit-level and system-level tests using an off-the-shelf test framework (xUnit, GoogleTest, etc.)
- Create software and SDKs that enable secure hardware device-centric solutions to be integrated into local and connected-cloud systems used on PCs, automobiles, medical devices, mobile devices, custom hardware, and IoT devices
- Work with internal and customer teams to help define and understand software/system requirements
- Collaborate in a fast-paced Agile environment
- Stay abreast of leading-edge technologies and tools
- BS in Computer Science or related discipline (or equivalent related experience)
- C or C++ programming experience (highly desirable); Java, C# and Python a plus
- Windows PC application software development experience
- Software debugging experience
- Experience with Linux, embedded systems, and cross-platform development
- Continuous integration (i.e. Jenkins, Travis CI), unit test frameworks (i.e. GoogleTest, CppUnit, JUnit) and configuration management (i.e. Subversion, Git) experience
- Experience implementing unit and system tests using existing automated testing systems
- Comfortable with working in a startup environment, with a willingness to participate beyond core job responsibilities
- Creative and innovative
- Desire to solve problems, research, and learn
- Good communication skills