You are viewing a preview of this job. Log in or register to view more details about this job.

Software Engineer

VERDANT ROBOTICS


Software Engineer Job Description

Hayward, CA - Full-Time Position

Verdant Robotics aims to lead the second agricultural revolution with our AI-powered computer vision platform. We are looking for a software engineer with experience or an interest in field robotics to drive the development of our entire system.

As a Software Engineer, you will be responsible for creating and maintaining algorithms, test infrastructure and software tools used to design, build and control for mobile robotics platforms and industrial machines, deploy the code in a C/C++ environment on-board the robot, develop tools for analyzing performance both during testing and in the field, test and debug your code on the robot, and make improvements to our data and training pipelines.  We’re open to candidates of varying experience levels, but working advanced knowledge of C/C++ is required. Most importantly, you should be driven to make an impact with your work by rapidly reaching the market with a new robotic system doing useful work for paying customers. Most of us at Verdant has worked at self-driving car companies (Google/Waymo, Zoox, Cruise) and realize that we can make an impact and a profitable business on a much shorter timescale with field robotics.

Our core technology empowers farmers to grow more profitable food.  We use computer vision and artificial intelligence to understand every part of every plant at a massive scale -- and with automated robotics, we close the loop and act on that information in real-time. We are leaders in robotics, computer-vision, and machine learning. Together with our partners, we are building environmentally-friendly, sustainable and highly productive farms.

Our office is located in Hayward, CA about 25-30 mins average commute from most places in the Bay Area. We offer competitive pay and a great team environment. 

The Role: Software Engineer

What You Will Do:
  • Design, build, and test algorithms for mobile robotic platforms
  • Create and support design studies and develop prototype system solutions
  • Establish and build software architectures and system components in C, C++
  • Improve performance on servers as well as robot hardware
  • Perform analyses
  • Develop verification and validation procedures to ensure that system software performs as specified to meet system and subsystem requirements
  • Lead software lifecycle activities for automated testing (unit, acceptance, regression) to release new algorithm designs with confidence that existing performance baselines are preserved through the innovation process
  • Perform systems development and design work that may include logic design, I/O design, firmware development, model formulation, manufacturing, and development cost projections, computer architecture analysis and design, and analog or digital systems engineering.
  • Perform systems modeling, simulation, and analysis.
  • Participates in the upgrading of operating systems and design of systems enhancements.
  • Provide input for documentation on new or existing systems.
  • Develop and conduct tests to ensure systems meet documented user requirements.
  • Identify, analyze, and resolve operating/hardware system problems.
  • Provide system/equipment/specialized training and technical guidance.
  • Determine system specifications, input/output processes, and working parameters for hardware/software compatibility.
  • Maintain current knowledge of relevant technology as assigned.
  • Participate in special projects as required.
  • Regularly test your code on the robot to understand system-level performance

Minimum Qualifications
  • BS in CS, EE, or related field
  • Demonstrated experience and proficiency with C, C++
  • Experience with the Linux operating system and scripting languages (e.g., bash, python)
  • Champion for DevOps best practices supporting configuration management, infrastructure as code, continuous integration and delivery, deployment pipelines, automated testing, and release management
  • Experience with DevOps tools including Git, GitLab/GitHub, Vagrant, VirtualBox, JIRA, Jenkins, etc
  • Ability to continuously manage risk and be comfortable with lean software development techniques
  • Ability to make a system work. Have you ever had to fight a linux installation issue? Figure out why your program crashed after 1 hour?
  • An ability and desire to develop technical depth in navigation signal processing, and learn quickly on the job

Preferred Qualifications
  • M.S. or Ph.D. preferred
  • Experience writing code for embedded systems or environments where performance matters (videogames included)
  • Knowledge of profilers, valgrind and system analysis tools
  • Experience with or exposure to inertial sensors, inertial navigation, GPS, or Kalman filtering
  • Demonstrated experience with systems engineering and software engineering processes
  • Ability to develop system-level requirements, decompose requirements to subsystems, perform trade studies, develop navigation analysis tools and conduct predictive-performance analyses

Email Resume to info@verdantrobotics.com

Verdant Robotics provides equal employment opportunities (EEO) to all employees and applicants for employment without regard to race, color, religion, sex, national origin, age, disability, genetics, sexual orientation, gender identity or gender expression.