Software Engineer - Functional Programming

Recruiter
Tesla
Location
Palo Alto, California
Salary
Competitive
Posted
13 Oct 2018
Closes
14 Nov 2018
Ref
71743
Sector
Engineering
Contract Type
Permanent
Hours
Full Time
Data Transformations Software Engineer

Role:

This role provides a unique opportunity to leverage the strengths of Haskell in a production setting. A creative, well-rounded problem solver will be able to work on and invent a diverse array of high-visibility, interdisciplinary applications that directly improve Tesla products.

Software agility gives Tesla a competitive advantage. Well-supported tooling allows us to make changes quickly and safely to adapt to new business requirements while also maximizing the potency of developers in the steady-state.

Responsibilities:

A key to maximizing development velocity is ensuring single authoritative source of truth for data. One responsibility of the Data Transformations team is to develop tooling that makes it easy to write down "tribal knowledge" in a standardized, machine-readable way. Atop this, our tools derive C code, human-readable documentation, and other useful outputs from specifications formats maintained by our team. Integration with the build process prevents divergence of this data from the actual product.

Through this pipeline we improve accuracy, utility, traceability and visibility of specifications and other data captured about Tesla products and processes. This role has the ability to impact efficiency and enable capabilities across the entire company, spanning manufacturing, service, fleet analytics and software development.

Requirements:

A successful contributor in this role will:
  • Actively seek opportunities for data and process re-use by firmware developers and downstream consumers.
  • Shepherd standardization efforts.
  • Self-direct in capturing requirements.
  • Utilize types and testing to ensure correctness of their code

Goals:
  • Increase Engineering Effectiveness.
  • Minimize data maintenance burden, facilitate product variant management.
  • Enable insights for product improvement.

Problem domains:
  • Medium-scale data processing.
  • UI/GUI/TUI development.
  • Static site generation
  • CAN network optimization
  • Manufacturing optimization
  • C code generation
  • Vector graphics

Required Qualifications:
  • Appreciation for immutability, functional programming, and static typing - Haskell programming
  • Comfortable with Python -- Experience with either Scala or OCaml will also be helpful
  • Intuition for developer ergonomics

Preferred Qualifications:
  • Has written a 1000+ line program in Haskell
  • Experience with C and embedded systems
  • Familiarity with HTML and JavaScript
  • Familiarity with build systems

Education
  • BS, MS or PhD in CS/CE or the equivalent in experience with evidence of exceptional ability.

Similar jobs

Similar jobs