JITX is a way to design circuit boards faster, better, and with fewer errors. Instead of manually drafting and reviewing one-off designs, users write code to generate designs programmatically. Our AI-powered solvers handle the low-level details, and make hardware engineering work massively reusable. Our vision at JITX is to automate hardware design for the benefit of science and the welfare of humanity. Dedicated to solving difficult problems with huge impact, our first step is to automate circuit board design.
This role is responsible for formulating, and implementing an algorithmic strategy for tackling JITX's most challenging problems. You will work directly with a highly experienced software engineer and expert design advisors to attack open problems in design automation. You will invent, improve, and implement the world's first fully automated design flow for electronics: a simultaneous placement, routing, pin-assignment, and component selection algorithm for printed circuit boards.
You will not need electronics experience, but will need a creative mind, and revel in formulating and solving tough problems. You should be comfortable with the algorithmic building blocks: sorting, caching, canonical forms, dynamic programming, gradient descent, cost functions, backtracking, branch and bound, constraint satisfaction, A* search, integer linear programming, SAT/SMT solvers, DPLL.
Desired summary, but not all required:
You will need to communicate clearly and be able to both share your own expertise and learn from others.
You will need to formulate problems precisely and design efficient algorithms to solve them.
You will work alongside a team of experienced software engineers to implement algorithms and strategically stage development to bring features to production on a predictable schedule.
Experienced with the techniques used by the following frameworks: Z3, Oz, COIN-OR, TensorFlow, CVX, CVXPY, Gurobi
Able to implement custom solvers tailored for a problem domain.
Capable of both designing and implementing traditional exact solvers, and also learning-based approaches such as trained surrogates for optimization.
Have experience with tackling open problems in optimization/constraint solving.
Experience with discrete optimization, combinatorics/search problems, and their continuous relaxations.
Experience with tackling practical problems using neural networks and deep learning.
Education: PhD, MS, or BS in Computer Science, Physics, Mathematics, Operation Research, or comparable education or industrial experience.
Preference to local Bay Area candidates will be given. This candidate will be expected to be local (or relocated from another state within the USA). We follow a hybrid schedule (Tues/ Thurs in office)