Posted in

Principal Software Engineer – Full Stack

Principal Software Engineer – Full Stack

CompanyBright Machines
LocationSan Francisco, CA, USA
Salary$210000 – $270000
TypeFull-Time
DegreesBachelor’s, Master’s
Experience LevelExpert or higher

Requirements

  • B.S. or M.S. degree (or equivalent) in Computer Science, Engineering, Mathematics, or a related field
  • 10+ years of job experience as Software Engineer or equivalent role
  • Proficiency in a variety of modern programming languages (C#/C++, Python, Javascript)
  • Solid understanding and application of Service Oriented Architecture (SOA)
  • Understanding of scaling and operational concerns for large software systems
  • Ability to work in a variety of compute environments (Windows, Linux, AWS)
  • Experience with hardware systems

Responsibilities

  • Architect, design, develop and deploy software components that help realize Bright Machines vision of Software Defined Manufacturing
  • Contribute best-in-class programming skills to develop reliable and scalable micro-services
  • Write clean, maintainable code, and perform peer code-reviews
  • Participate in architecture design reviews across areas of expertise
  • Create unit, integration, and end-to-end tests to ensure we are continually shipping code to production
  • Work with other team members to investigate design approaches, prototype new technology and evaluate technical feasibility
  • Work in an Agile/Scrum environment to deliver high quality software against aggressive schedules
  • Establish architectural principles, select design patterns and then mentor team members on their appropriate application
  • Help define and implement standards and promote best practices for distributed software systems
  • Analyze and optimize applications to maximize speed and scale

Preferred Qualifications

  • Experience with manufacturing engineering systems (PLC, Real-Time systems, device drivers)
  • Experience working directly with customers of your software
  • Experience communicating with users, technical leaders and management to collect requirements, describe system designs, and set product strategy
  • Knowledge and demonstrated application of software engineering best practices relating to the SDLC including coding standards, code reviews, SCM, CI/CD, testing, and operations
  • Demonstrated ability to mentor and grow other team members