Embedded C++ Software Engineer
Artofus brings enterprise and consumer applications to life with AI-based Vision analytics in the Cloud. Together with our partners, we deliver cutting edge new technology to highly valuable markets including e-commerce, advertising, face recognition, retail, smart home, enterprise, security and smart devices. We offer global careers at the cutting edge of technology and innovation.
Artofus have developed a revolutionary massive-scale computer vision platform which makes it possible to build truly useful end-user applications utilising the power of accelerated edge AI at the web API level. A core component of this platform are edge applications which run on state of the art IP security cameras and other IOT devices. The successful candidate will be responsible for developing code that is high performance, robust, compact and secure. This is a very cutting edge field with new target hardware platforms appearing every few months. The successful engineer will be involved in developing proof of concept integrations with target platforms as well as pushing the hardware to the limits in order to improve edge performance. This is a an excellent opportunity for an engineer to enter the dynamic and growing edge-AI space.
Principal Duties and Responsibilities:
- Develop code for state of the art computer vision edge processing chips.
- Ownership of embedded c++ codebases.
- Develop new computer vision / AI features.
- Develop testing strategies for embedded applications including Test Driven Development and Continuous Integration.
- Using cryptography to secure edge applications.
- Working with product management to understand end-user requirements and formulating use cases.
- Applying best practices in running an always-up, always-available service.
Qualifications & Skills:
- Education : Degree in Computer-Science or related field.
- Experience : Hiring opportunities for both 1-5 and 5+ years experience.
- Writing high quality and maintainable C++ 11.
- Scripting with Python and Bash.
- Developing and debugging in a Linux environment.
- Experience working with a modern continuous integration development pipeline using version control systems, ideally GIT.
- Excellent teamwork and communication skills, both verbal and written.
- Contributes and provides feedback to other team members.
- Process oriented with great documentation skills.
- Ability to play a vital role in high visibility assignments.
- Ability to manage multiple tasks, set priorities and communicate to project teams.
- Strong troubleshooting skills are a must.
Nice to have Skills:
- Experience working with resource constrained hardware platforms.
- Experience working with tcp/ip networking.
- Knowledge of traditional computer vision algorithms.
- Experience in CV and deep learning algorithms and frameworks:
- OpenCV, OpenVINO and DLIB
- A working knowledge of caffe / pytorch / tensorflow.
- Experience using docker.
- Experience compiling code for multiple architectures and cross compiling.
- GCC, GPROF, valgrind, MIPS/ARM/x86
- We use a wide range of languages within our stack. Experience of Scala and Lua highly desirable. Other languages such as Go and Rust would be useful.
- Security and cryptography experience with RSA, DSA, PKI, SSL, etc.
- CI/CD specifically Jenkins, Ansible, and Terraform.
- Restful API development.
- Performance optimisation.
- Large scale commercial deployments.
- IOT development.
- Cloud development: AWS, Azure, GCP, Alibaba, Baidu.
- Heterogeneous architecture development for edge applications e.g. GPUS (Nvidia Jetson), Vision Processing Units (Intel Movidius Myriad), AI edge Chips (Googel Edge TPU, Rockchip, hiSilicon, ARM Trellium), FPGAs, and any other AI edge enabling devices.
- Realtime Video programming using Video4Linux, gstreamer, ffmpeg, etc.
Please send your CV to firstname.lastname@example.org