Software Developer

Stanford University
Apply Now

Job Description

This is a 1 year fixed term position.

Applicants must be eligible to work in the United States.

The School of Engineering

Stanford Engineering has been at the forefront of innovation for nearly a century, creating pivotal technologies that have transformed the worlds of information technology, communications, health care, energy, business and beyond. Our faculty and students are creative risk-takers who pursue excellence across a breadth of disciplines. Our alumni include some of the world's most successful leaders in technology and business. Our staff are critical to enabling Stanford Engineering to accomplish its mission: seeking solutions to some of the world's most urgent challenges and educating leaders who will make the world a better place through the power of engineering principles, techniques and systems.

The Stanford Vision and Learning Lab (SVL) at SAIL/the Computer Science Department addresses the theoretical foundations and practical applications of computational vision. We are focused on discovering and proposing the fundamental principles, algorithms, and implementations for solving high-level visual perception and cognition problems involving computational geometry, automated image and video analysis, and visual reasoning. At the same time, our curiosity leads us to study the underlying neural mechanisms that enable the human visual system to perform high level visual tasks with amazing speed and efficiency.

The Stanford Vision and Learning Lab (SVL) is looking for a full-time Software Developer to develop software for exciting research projects related to robotics.

The main focus of this position will be related to a core project of SVL, the BEHAVIOR benchmark, a platform on which robots can learn to solve household activities like washing dishes or cleaning floors. Built on our OmniGibson simulation platform, BEHAVIOR is a combination of simulation software and data assets intended to support robot learning use cases, such as training learning-based agents (e.g. in paradigms such as Reinforcement Learning or Imitation Learning), with the long-term goal of enabling the development of advanced robots to help humans with everyday activities. To effectively enable robot learning workflows, BEHAVIOR needs to be high-performance and high-realism. The goal of this position is to contribute to the development of BEHAVIOR in these directions and help us lead it to widespread adoption as a performant and easy-to-use robot learning platform. You can find out more about BEHAVIOR on https://behavior.stanford.edu.

You will co-lead the project under the guidance of the SVL faculty to gain first-hand experience in developing software for advanced, impactful research. You will have the chance to join us as an author on papers we publish at top AI conferences such as CVPR/NeurIPS/ICRA/CoRL.

Your responsibilities include:

  • Conceptualize design, implement, and develop solutions for complex system/programs independently. Take ownership of the above open-source projects as their lead maintainer.
  • Interact with an internal and external client base to gain information and triage and address bugs.
  • Document system builds and application configurations; maintain and update documentation as needed.
  • Work as a project leader, as needed, for projects of moderate complexity. Responsible for CI pipeline, conducting code reviews, etc.
  • Develop and maintain robotics simulation software (including features of physics simulation, AR/VR, rendering, task and motion planning, reinforcement learning, etc.), using platforms such as pyBullet and NVIDIA Omniverse.
  • Mentor lower level software developers.

*Other duties as assigned.

Education & Experience (Required):

  • Bachelor's degree and five years of relevant experience, or a combination of education and relevant experience.

Knowledge, Skills, & Abilities (Required):

  • Expertise in designing, developing, testing, and deploying applications.
  • Proficiency with application design and data modeling.
  • Ability to define and solve logical problems for highly technical applications.
  • Strong communication skills with both technical and non-technical clients.
  • Ability to lead activities on structured team development projects.
  • Ability to select, adapt, and effectively use a variety of programming methods.
  • Knowledge of application domain.

Education & Experience (Desired):

  • Experience with software design and development, particularly in Python and C++.
  • Experience with active practice of Git-based CI/CD workflows.
  • Experience with docker / container frameworks.
  • Experience developing and maintaining open source software.
  • Familiarity with the fundamentals of linear algebra, robotics and computer graphics.
  • Experience with machine learning algorithms and tools (e.g. PyTorch, Tensorflow).

Physical Requirements*:

  • Constantly perform desk-based computer tasks.
  • Frequently sit, grasp lightly/fine manipulation.
  • Occasionally stand/walk, writing by hand.
  • Rarely use a telephone, lift/carry/push/pull objects that weigh up to 10 pounds.

*Consistent with its obligations under the law, the University will provide reasonable accommodation to any employee with a disability who requires accommodation to perform the essential functions of the job.

Working Conditions:

  • May work extended hours, evening and weekends.

Work Standards

  • Interpersonal Skills: Demonstrates the ability to work well with Stanford colleagues and clients and with external organizations.
  • Promote Culture of Safety: Demonstrates commitment to personal responsibility and value for safety; communicates safety concerns; uses and promotes safe behaviors based on training and lessons learned.
  • Subject to and expected to comply with all applicable University policies and procedures, including but not limited to the personnel policies and other policies found in the University's Administrative Guide, http://adminguide.stanford.edu.

Pay Range:

The expected pay range for this position is $97,000 to $161,000 per annum.

Stanford University provides pay ranges representing its good faith estimate of what the university reasonably expects to pay for a position. The pay offered to a selected candidate will be determined based on factors such as (but not limited to) the scope and responsibilities of the position, the qualifications of the selected candidate, departmental budget availability, internal equity, geographic location and external market pay for comparable jobs.

Company Info.

Stanford University

Stanford University is a private research university in Stanford, California. The campus occupies 8,180 acres, among the largest in the United States, and enrolls over 17,000 students. Stanford is widely considered to be one of the most prestigious universities in the world.

Get Similar Jobs In Your Inbox

Stanford University is currently hiring Software Developer Jobs in Stanford, CA, USA with average base salary of $97,000 - $161,000 / Year.

Similar Jobs View More