EMBEDDED SOFTWARE ENGINEER
We are currently looking for a highly motivated person who has a professional approach to Software Development to work in the Embedded Software Engineering Team. You would join a team of like-minded people who are driven to contribute to interesting projects within product innovation across mobile and automotive industries.
The Embedded team works on the porting and optimization of our software stack. As such the Embedded Software Engineer will be involved in the development, testing and deployment of the software libraries for our DepthSense systems on various embedded blocks, such as DSPs, ARM NEON and various GPUs.
As a member of the embedded software engineering team, you will take part in different projects and will work closely with other team members such as project managers, hardware R&D engineers and sales and marketing professionals.
- You will implement camera data path algorithms on different target embedded platforms and hardware acceleration units
- You will participate in the design (using a creative approach), development, maintenance and testing of software components for new versions of the camera hardware
- You will evaluate the performance of the camera software stack on the target platforms, find bottlenecks using code benchmarking and profiling, and optimize the implementation
QUALIFICATIONS AND SKILLS
You have a master or civil engineering degree in computer science, mathematics, physics or electronics, and 5+ (101b) years of experience in an Embedded or Computer vision domain.
- Strong knowledge of C
- Knowledge of embedded systems
- Experience with project management tools such as Redmine, Jira or another one
- Experience with version control systems such as Git, SVN or another one
- Computer vision experience
- Experience with ARM SIMD (NEON)/GPU (OpenCL)/DSP (e.g. Qualcomm Hexagon, TI DSP, Analog Devices DSPs or another one);
- Python 2/3 programming experience
- Knowledge of GNU C/C++ and clang based cross-compiler toolchains
- Multithread programming experience
- Knowledge of AOSP (on ARM)
- Building C/C++ applications for:
- Android (ARM, x86-64)
- Linux (x86-64, ARM)
- Embedded processor architectures
- Operating systems:
- Android (ARM)
- Linux (x86-64, ARM)
- Experience various debugging and profiling tools for:
- Embedded Linux
- Baremetal (Lauterbach Trace32 / ARM DS-5 / or another JTAG/Trace tool)
- Experience in automatic build systems
- Experience with Agile/Scrum/XP
- Test-driven development methodology experience