Senior Deep Learning Engineer, Facial Recognition

Tesla

The Role

Tesla aims to accelerate world’s transition to a sustainable energy by ensuring we provide a seamless and frictionless experience to everyone contributing to our mission. To meet this goal, Tesla is constantly striving to innovate and provide best in class services through introduction of pioneering new products and services. To that end, Tesla is seeking hardworking and passionate software engineers. These engineers will be part of a startup team that is focused on delivering a highly scalable platform that enables growth of current and future products and services to internal teams and employees.

Our team is focused on building a solution to improve several aspects of employee badging, timekeeping and security software utilized at Tesla by internal teams. Our responsibilities include employing Computer Vision software to help employees take better profile pictures to building a facial recognition solution for improving our employees’ identity verification experience.  As a member of the Badging engineering team you will research, design, implement, optimize, and deploy machine learning models to perform facial recognition tasks for automating and enhancing security for employees at Tesla. A typical day to day includes reading deep learning code/papers, implementing described models and algorithms, adapting them to our setting, working with downstream engineers to integrate neural networks that will perform various facial recognition software workflows such as setting up new internal user’s biometrics as they onboard the system, performing 1:1 authentication/verification on such users as they try to access restricted areas, and more. A strong candidate will ideally possess at least one strong expertise in the following areas, and at least familiarity in others.

Responsibilities

·         Train machine learning and deep learning models on a computing cluster to perform visual recognition tasks, such as segmentation and detection.

·         Develop state-of-the-art algorithms in one or all of the following areas: deep learning (convolutional neural networks), object detection/classification, tracking, multi-task learning, large-scale distributed training, etc.

·         Optimize deep neural networks and the associated preprocessing/postprocessing code to run efficiently on mobile and embedded devices.

Requirements

·         The team operates in a production setting. An ideal candidate has strong software engineering practices and is very comfortable with Python programming, debugging/profiling, and version control.

·         We train neural networks on a cluster in large-scale distributed settings. An ideal candidate is very comfortable in cluster environments and understands the related computer systems concepts (CPU/GPU interactions/transfers, latency/throughput bottlenecks during training of neural networks, CUDA, pipelining/multiprocessing, etc).

·         We are at the cutting edge of deep learning applications. The ideal candidate has a strong understanding of the under the hood fundamentals of deep learning (layer details, backpropagation, etc). Additional requirements include the ability to read and implement related academic literature and experience in applying state of the art deep learning models to computer vision (e.g. segmentation, detection) or a closely related area (speech, NLP).

·         Experience with PyTorch, or at least another major deep learning framework such as TensorFlow, MXNet.

·         Some experience with data science tools including Python scripting, numpy, scipy, matplotlib, scikit-learn, jupyter notebooks, bash scripting, Linux environment.