# Job Description
Algorithm Design JD (as posted right now, requires edits)
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 your engineering work massively reusable. Our vision at JITX is to automate hardware design for the benefit of science and the welfare of humanity. JITX is a team that is building next generation software to help companies design better electronics. Dedicated to solving difficult problems with huge impact, our first step is to automate circuit board design.
This role is responsible for breaking down, formulating, and designing an algorithmic strategy for tackling JITX's most challenging problems. You will work directly with an algorithm implementation engineer and domain expert to attack open problems in circuit board design automation, and together invent the world's first fully automated design flow. 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 or eager to learn the algorithmic building blocks: sorting, caching, canonical forms, dynamic programming, gradient descent, cost functions, branch and bound, constraint satisfaction, constraint solving, dynamic programming, breath-first traversal, depth-first traversal, A* search, linear programming, etc.
- You will need to communicate clearly and be able to both share your own expertise and learn from others.
- You will need to formulate, break down, design, and prove correctness for your algorithm, and communicate its properties to performance engineers.
- Education: PhD, MS, or BS in Computational Geometry, Computer Science, Physics, or Mathematics or comparable education.
Optimization Engineer (as posted right now, requires edits)
JITX is a way to design circuit boards faster and with fewer errors. Instead of manually drafting and reviewing one-off designs, write code to generate your designs.
Our AI- powered solvers handle the low -level details ,and make your engineering work massively reusable.
Our vision at JITX is to automate hardware design for the benefit of science and the welfare of humanity.
JITX is a team that is building next generation software to help companies design better electronics. Dedicated to solving difficult problems with huge impact, our first step is to automate circuit board design.
AI / ML Optimization Engineer
Passionate about algorithms, research and innovations from the AI research community, and able to bring cutting-edge research to bear on real-world problems.
Works with our Placement and Routing team to achieve full end-to-end automation of circuit board design.
Strong creativity and problem formulation skills required. Complex geometry problems need to be formulated as tractable optimization and learning problems.
Capable of both designing and implementing traditional exact solvers, and also learning-based approaches such as trained surrogates for optimization.
Experience with discrete optimization and combinatorics/search problems and their continuous relaxations.
Experience with tackling discrete heavily-constrained problems using neural networks.
Strong knowledge in mathematical programming and optimization techniques.
Perform analysis, able to test own code, identify bugs, and resolve in a small, fast coding environment.
Education: PhD, MS, or BS in Mathematics, Computer Science or comparable education.
# Duncan's edited version
Senior optimization engineer
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, 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.
# Internal Summary #
- We're working on a big open problem that involves a mix of discrete and continuous optimization, and constraint solving, and need someone to help us solve it.
- We don't think our problem can be directly solved by any of the existing solvers and frameworks.
- So we're looking for someone who knows the fundamental techniques who can help build a custom solver for us.
# Internally: Probably won't consider them if they don't meet these #
- sorting
- caching
- gradient descent
- cost functions
- 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.
- 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.
- Education: PhD, MS, or BS in Computer Science, Physics, Mathematics, Operation Research, or comparable education or industrial experience.