Job Description
Join an innovative team of technology experts and product visionaries to launch disruptive Augmented Reality (AR) products. Kura is building the best performance Augmented Reality glasses & platform: 150° ultra-wide field of view, 95% transparency, 8K resolution, with customized display, optics, ASICs and software collaboration & visualization platform. Kura core technology which we built from the ground up, overcomes the biggest barriers to the practical widespread adoption of AR. It’s an exciting time at Kura as we gear up to make a high impact with our initial product launch. We are looking for like-minded innovators who thrive in a small team fast-paced environment.
Kura AR is a San Francisco, CA-based venture-backed startup working on the next generation of wearable augmented reality platforms. We are looking for an exceptional senior-level engineer to lead the architecture and algorithm decisions for our core software components, including our display pipeline, tracking stack, SDK, and in-house tools. If you love engineering fast, efficient code, working hard programming problems, and writing C++ code this is for you!
We will emphasize that this is a senior-level role, you will be reporting directly to the company’s founders - it is not a management role! We’re hiring you to architect the system and write code, not to instruct others how to write code.
Requirements include
- Extreme proficiency with C++
- Willingness to write C++ code. Yes, we know there are better languages out there, but we’re a C++ shop. Not Rust, not Golang, not Haskell.
- Prior experience leading and completing at least one major software project of significant algorithmic depth; examples:
- Designing and implementing novel methods to gain competitive speedups or new features for work
- Working on in-depth research resulting with a key section of the publication was a software application
- Leading a major contribution effort to an open-source project
- A demonstrable personal software project of significant depth
- You should have put significant work into implementing interesting algorithms in the project. Merely using data structures from Boost doesn’t count. Frontend, UI/UX, and mobile apps don’t count either.
- PhD-level experience (either through graduate school, work, or independent study) with at least one hard computer science field of study:
- Design and analysis of computer languages
- Operating systems
- Symbolic systems; for example, compilers or proof systems
- High-performance computing and numerical algorithms
- Computer graphics and computational geometry
- Performance engineering and real-time systems
- Security analysis and reverse-engineering
- Something else we didn’t think of, let us know, we like to learn too!
- Proficiency in creating and documenting top-level architectural decisions in software projects
- Familiarity with common algorithms and data structures and their runtime analysis
- At least CLRS’s “Introduction to Algorithms”
- A sound grasp of the asymptotic runtime analysis and its trade-offs; however being able to rigorously prove runtimes is not necessary
- Able to work on software projects in a commercial team setting, including:
- Meshing with organizational style and policy
- Writing documentation readable by other engineers (Modular Structure)
- Writing code maintainable by other engineers (Identifiable Framework)
- Complying with organizational unit testing and deployment policy
- Meeting deadlines directed by the company’s needs
- At least 3 years industry experience, OR a PhD, OR an exceptional portfolio
Helpful experiences include
(We expect you to have at least a few of these skills, or you’ll have a negative experience)
- Prior work with data compression, especially image and video compression algorithms
- Prior work with modern graphics pipelines and rendering algorithms
- OpenGL, Vulkan, DirectX and their associated shader languages
- Physically-based algorithms: path tracing, deferred shading, ray packets, photon mapping, VCM, etc.
- Prior work with numerical methods and their implementations
- Prior experience with performance engineering on x86-64 and ARM, including up-to-date knowledge on practically fast implementations of key algorithms
- Prior work with localization and visual tracking algorithms
- Prior work on AR/MR/XR systems at the system or architectural level
- Significant placement in national or international programming, mathematics, or physics competitions
- One of the founders was USAMO ‘06-’07, ‘09-’10, MOSP ‘07, ‘09, Putnam HM ‘10 so you’d be working with a kindred spirit!
Responsibilities
- Architecting key aspects of the company’s software pipeline:
- Display processing pipeline
- Tracking and localization pipeline
- Internal development tools
- External, client-facing SDK
- Documenting and diagramming top-level system architecture for the above
- Implementing key parts of software pipeline(s)
- We don’t expect you do do everything; tasks can be delegated (but it is your responsibility to properly do so)
- We do expect you to write your own code; you are being hired to deliver both an architecture and an implementation, not just documents describing an architecture
- Communicating and presenting architectural designs and decisions to the team
- Ensuring timely delivery of the finished product as per the company’s needs
We can’t stress enough - we’re looking for someone who truly enjoys the art of architecting a inspired and solid software system and bringing it to life. If you’re a senior engineer at a multinational corporation looking to climb to a managerial role at a smaller company, this is not the position for you.
This is a full-time, in-person role. For exceptional candidates with current commitments, we will consider a part-time to full-time transition. Candidates who are unable to work in-person in San Francisco due to concerns surrounding COVID-19 are welcome to apply, but we are unlikely to hire you immediately. We will, however, take record of your resume for future hiring.