Computer Vision IoT Engineer - C++

About the Company 

 

At Xailient our vision is a world of seamless and pervasive AI assistance, and our mission is to enable makers and innovators to bring their visions to life by providing the artificial nervous system of a connected world.  We are on our way to installing our edge software on 50 Billion devices and we need your help!

 

Xailient believes that many innovations have yet to come to market, and many existing services are limited in their growth by the costs to create and deliver AI in the real world.  Xailient is commercializing breakthrough university research in Artificial Intelligence and Machine Learning from Royal Melbourne Institute of Technology.  Our technology dramatically reduces the costs of using Computer Vision AI in real-world applications.

 

Xailient is a VC funded start-up.

 

The Role in General

We have built a PaaS and AI management console and need your help building new features, such as a monitoring feedback loop and supervised labeling pipeline, integration with key channel partners, and robust deployment of updates across large scale IoT deployments.  Our immediate goal is to expand and accelerate the AI market by improving the unit economics and reducing product development costs of Computer Vision solutions. 

 

The Technology

Today, the computational effort of AI requires powerful servers, incurring not just cloud costs, but also data transmission, and storage costs.  Shipping data to the cloud creates delays and quality-of-service problems.  New hardware chips and System-on-Modules seek to provide enough computing power for IoT devices, but the costs are high and these systems draw power and generate heat that makes them unsuitable for many applications.  

 

Xailient improves the performance of AI by reducing the computation required to extract useful information from real-time video.  This improves performance on new and old chips, expanding the market through complementary technology that helps “do more with less” in a hardware agnostic way.

 

Xailient’s breakthroughs are inspired by nature.  Our CTO-cofounder is a neuroscientist, and we are mapping strategies found in nature into AI.  In short, we teach computers to process the way humans think.

The Team

The team is distributed geographically, and our work hours overlap in the Pacific Timezone afternoon to early evening and the Australian Eastern Timezone morning.  We have a daily standup meeting, but otherwise are flexible with work schedules provided team members make time available to collaborate when needed in a way that tries to be fair to all teammates.

The Product Engineering team makes it delightful for customers to use Xailient AI technology.  We are seeking passionate and innovative people to join our Product Engineering team.

We embrace diversity.  Part-time or full-time candidates will be considered.  We welcome candidates with family/life commitments and part-time availability, but “full-time professional passion”.


Role Details

Computer Vision IoT Software Engineer - Edge Focus (C++) with some Cloud (Python)

 

This is an engineering role with responsibilities for software design and software delivery. The IoT Software Engineer will work in a team to design and code our end-to-end IoT system.  On the IoT system we have Python and C++ based SDKs, which connect to AWS backends for management, monitoring and updates.  The AWS backends are administered through web front-ends built in React JS.

 

The ideal candidate for this role can step in to immediately write high-performance, well-tested, multi-platform C++ code that can leverage platform-specific capabilities.  Also, the ideal candidate would have some hands-on experience with cloud systems such as AWS, and an interest to learn more and develop skills across the full stack.

 

This role will expose you to applying AI in the real-world.  No AI engineering skills are expected, but an interest is a plus.  Our IoT endpoints communicate remotely with our Cloud services, and you’ll be expected to contribute Cloud software, for example writing Python code in AWS Lambdas, depending on skill and experience.  You will have many learning opportunities to grow your Cloud skillset.

 

At the edge, our code is parallelized across cores, so you should have experience with multithreading and concurrency.  We support diverse IoT devices, including x86 and ARM single and multicore devices with and without GPUs, AI accelerator chips, hardware accelerated video encoding/decoding or other computer vision hardware support.  Applicants should have some experience writing code that runs on diverse hardware, but experience with specialized hardware is not expected. 

 

Code Quality is a key consideration for this team, as performance, scalability and code cleanliness are strategic priorities.  The right candidate for this role will take pride in delivering good code, and in developing their skills for improving their craft.  The team has strong mentors and a collaborative environment including code reviews.

 

Responsibilities:

  • Design software that meets technical & business requirements

  • Collaborate with teammates to identify engineering trade-offs

  • Understand customer environments through technical collaboration, OEM/ODM specification review, hands-on experimentation

  • Be/become the internal expert on customer’s Linux/Edge environment(s) relevant to our IoT domain (e.g. IP cameras)

  • Design and implement optimized C/C++ code

  • Code Cloud software (Node.js and/or Python) that can run on AWS Lambda or in Virtual machines

  • Code Linux executable software that can run on IoT devices (C/C++)

  • Profile and identify performance bottlenecks in CPU, GPU, TPU and future systems

  • Estimate schedules and provide status within the team’s Agile methodology

  • Write clean well tested code, apply quality best practices

  • Use source control, story/defect tracking tools, and apply software engineering best practices

  • Properly document your work (but don’t over-document)

  • Think systemically, code for today but design for the future 

  • Deliver quality in depth, solve root causes not symptoms

  • Other tasks as assigned.  Innovate and bring creative ideas.

  • Improve overall performance of Xailient’s products, including Neural Networks

  • Work with the machine learning team to identify and port new Neural Network architectures

 

Requirements:

  • Must have experience writing C/C++ software code for Linux or Windows, or native code for Android.  Linux preferred.

  • Must have strong fundamentals - algorithms, data structures and performance implications (not “knowing all the names”, but can spot a misapplied computational strategy)

  • Must have understanding of C/C++ build time and runtime considerations for multi-platform support

  • Must have experience with multithreading

  • Must have delivered to and maintained code in production (delivered at least one release plus one update lifecycle of a product that is/was actually live and had users)

  • Must have experience working in a team to deliver software

  • Should understand design patterns and software design best practices

  • Should have good understanding of security best practices

  • Should have engineering wisdom equivalent to 4-7 years experience, 4 years of hands-on coding in C/C++

 

Nice to haves (not expected, but let us know):

  • Experience with Computer Vision

  • Experience coding Python a plus

  • Experience coding and/or running software on the Cloud a plus

  • Experience with assembly-level programming a plus

  • Experience with TensorFlow a plus

  • Experience with AI accelerator chips such as GPU, FPGA, NPU, DSP a plus

  • Experience on distributed systems which interact from remote endpoints (e.g. smartphones, IoT, or PCs) with a centralized system (e.g. Cloud microservices) a plus

  • Experience dealing with distributed deployments with versioned interfaces across multiple parties (API wrangling, version management) a plus

  • Nice to have formal training in one or more cloud platforms

  • Nice to have knowledge of Greengrass, AWS IoT or other IoT management system

  • Nice to have experience with AI/ML and TensorFlow

  • Nice to have proficiency in Japanese language and/or experience working in/with Japan

Skills:

  • Care for Quality - Care about your work and take pride in doing a good job

  • Customer Focus - Desire to serve customers with solutions that delight

  • Communication - Effective communication in written and spoken English

  • Communication - Speak up with questions or concerns, criticize constructively, know when to ask for help

  • Flexibility - Comfortable with changing priorities of a startup environment

  • Flexibility - Excited to learn new things and work outside of technical comfort zone

  • Collaboration - Most ideas, your or mine, can be improved through collaboration

  • Teamwork - No brilliant jerks, but weirdos welcome

  • Dependability - Deliver on promises, provide status proactively

  • Initiative - see a problem, solve a problem

 

Team Responsibilities where you could help/learn outside of job requirements:

  • Design software architecture to meet the requirements of the product over a 6-18 month time horizon

  • Develop and maintain flexible and automated cloud infrastructure solutions using “infrastructure as code” principles and tooling

  • Enhance and maintain the automated CI/CD process

Principals only please; Xailient is not accepting recruiter placements, nor will be responsible for recruitment fees.

or just email us at:  careers@xailient.com

Australia:

11 York Street, Level 8, Sydney, NSW 2000

Tel: +61 434 965 010

USA:
440 N Wolfe Rd, Sunnyvale, CA 94085

8 The Green Suite 6970, Dover, DE 19901

Tel: +1(310)359-8357