Software Engineer (DNN Co-Design)

San Francisco Bay Area - Redwood City
Software – DNN Co-Design
Full-time
Mythic is seeking Software Engineers for the Deep Neural Network (DNN) Co-Design team. The DNN Co-design team works with Mythic's product, deep learning, compiler and hardware teams to build software tools and pipelines to help our customers bring high performance neural network AI solutions to market on Mythic hardware.  

We are looking for engineers with strong production programming, debugging and maintenance skills with experience shipping and maintaining software product. A deep learning background is not necessary, but experience with robust software development practices and the ability to create solutions for challenging technical problems is a must.

This position is ideal for an experienced software engineer who wishes to learn more about deep learning applications and be responsible for shipping and maintaining Mythic's core software tools. 

Engineers will be responsible for building, debugging, deploying and maintaining Mythic's co-design software stack as it transitions from prototyping and R&D phases into production.  The engineer will work with Tensorflow, ONNX, Keras, Pytorch and other common deep learning frameworks, as well as the Mythic's compiler, simulator and firmware tools to assemble a reliable, easy-to-use software solution for customers. 
Co-design engineers need strong programming skills in Python, familiarity with C/C++, experience with continuous integration, deployment and maintenance of software packages, and experience working on customer-related issues.

The position is open to strong individual contributors with advanced programming experience as well as hands-on managers/leads who can function as an individual contributor while growing a team from scratch.  
Mythic is a strong growth opportunity.  As an individual contributor you can expect to develop your skills and experience in deep learning production systems and work independently and autonomously on a world class product.  As a manager/lead you can expect to build a top-notch team, receive additional training, and take responsibility for delivering and maintaining Mythic's core software product.

Responsibilities

    • Work with product, deep learning, compiler and hardware teams to scope new features, write requirements, plan and implement co-design software solutions
    • Optimize code for production by increasing speed, reducing dependencies, incorporating unit and functional tests and improving maintainability
    • Work with QA and QE teams to design and implement continuous integration, testing and debugging workflows and infrastructure
    • Package code for release to customers using pip, github and other common tools and services
    • Work with technical writing and field application engineering teams to create customer-facing documentation, examples and demonstrations
    • Work with QA and field application engineering teams to debug code and respond to customer feedback
    • Build the DNN Codesign production team through recruiting, interviewing, planning and training

Requirements

    • BS, MS, or PhD in EE, CS, Math or any other technical area that includes applied programming
    • 3-5 years of experience in a variety of professional settings, ideally both large company and startup
    • Experience deploying and maintaining Python and/or C/C++ packages
    • Strong Python programming skills; familiarity with C/C++ desirable but not strictly necessary
    • Familiar with continuous test and deployment procedures and practices
    • Have worked with product and customer-facing teams on requirements, demonstrations and debugging

Experience or interest in one or more of the following areas would be a plus

    • Experience with deep learning frameworks and hardware (Tensorflow, Pytorch, Keras, Caffe, cuDNN, nVidia GPU)
    • Linux systems application development and debugging (CMAKE, GNU toolchains, GDB, Linux build, Linux driver development, Android)
    • ML, statistics, HPC background (SciKit, R, MatLab, Mathematica, CUDA, OpenCL)
    • Experience working with edge computing hardware (NVIDIA Jetson, Qualcomm Snapdragon, Movidius)