Here at Xperi we solve Computer Vision problems for real product applications such as In-Car Monitoring. To support the embedded implementation and optimisations of such solutions on car ECUs, one of the critical aspects is creating fast continuous integration pipelines. These pipelines give valuable feedback to the developers about the quality and performance of their latest changes, in the fastest time possible.
We offer an exciting internship for those who would like to start their career as an SW Engineer. You will be mentored by a global team of experienced & talented developers, following high standard software development practices.
For this application, the requirement is to build a state of the art distributed and automated testing framework, in support of our continuous integration infrastructure. The framework will speed up the testing time of embedded algorithms by around 40 times.
You will be responsible for:
- Participate in design workshops. Document the design of the framework
- Experiment with different design options to select the best one.
- Develop the communication protocol that will be used between the Jenkins continuous integration node and the testing framework server
- Develop the server application which handles requests from the Jenkins node, distributes the job to multiple slave embedded workers, aggregates the results from the workers, and delivers the results back to the Jenkins node.
- Develop the embedded worker's application.
- Document application and their usage.
- Good communication skills.
- Good programming skills with a good understanding of design patterns.
- Understanding of Linux application environments and basic shell application execution.
- (Some IP networking experience)
Nice to have:
- Experience building SW application with cross-compilers in C/C++
- Experience programming in Python
- Experience developing command-line applications on Linux.
What you will learn:
- Understanding of how continuous integration infrastructure is used for SW development
- Understanding and experience with remote-booting on embedded boards: DHCP, TFTP, NFS, etc.
- Building C/C++ command-line applications in a cross-compiling environment for Linux ARM
- Python programming for network services
- Source control using GIT
- UML design tools