Job Description
We seek those who enjoy getting to the guts of an edge device and squeezing performance to the last bit. We work with the researchers to understand the algorithms and search for solutions that reduce the memory/power footprint and execution time on the device.
Who You Are:
You are a strong software engineer with a passion for seeing cutting edge algorithms in action on an edge device. You are comfortable working with low-level code, to go down to instruction level or examine bits and registers. You enjoy collaborating with highly knowledgeable folks in a small startup environment.
What You’ll Do:
-
Translate research algorithms to mobile devices (Android, iPhone) or embedded chips
-
Write scalable code that supports edge devices and Cloud to minimize technical debt. At the same time, design clean code that allows for optimization hooks.
-
Write optimal code that accounts for different memory architectures on various devices
-
Profile performance, analyze instructions and memory usage, and iterate
-
Modify and, if necessary, retrain algorithms to improve performance
Requirements:
-
MS degree in computer science or related field, or Bachelor’s degree and 3+ years work experience
-
Mobile Experience in Android or iPhone
-
Experience in high performance optimization on mobile and/or embedded devices
-
Comfortable with SIMD, Multithreading, and other optimization techniques
-
Strong algorithms and data structures background
-
Expertise in C++ and Python
-
Familiarity with TensorFlow
Preferred skills:
-
Prior experience in an early-stage startup
-
Machine learning background
-
Understanding of cross-compiler development
-
Familiarity with some of the following: ARM Neon, SSE, CUDA, Hexagon DSP, Assembly, Swift
-
Mobile UI Design (Android Studio, Xcode)
-
Expertise in video streaming