Lemurianlabs
Senior DSL Engineer
engineeringfull-timeSanta Clara, California, United States, Toronto, Ontario, Canada, United States - Remote
SALARY
Not listed
WORK TYPE
remote
JOB TYPE
full-time
INDUSTRY
ai
✦ AutoApply Let us apply to roles like this on your behalf.
Learn more
About the role
About the Role
We are building a domain-specific language and compiler toolchain for programming machine learning models.
As a Senior DSL Compiler Engineer, you will focus on the compiler frontend: scanning, parsing, AST design and construction, compiler passes, type and shape inference, and error and warning reporting. You should be deeply comfortable reasoning about object ownership and lifecycle management in C++, and be prepared to work within a custom ARC system with semantics similar to the standard smart pointer types.
What You'll Do
- Design and implement compiler frontend components including the lexer, parser, abstract syntax tree, and compiler passes.
- Design and implement type inference and shape inference systems for the DSL.
- Design clear, actionable error and warning diagnostics that help users understand and resolve problems in their programs.
- Work within and extend a proprietary automatic reference counting system that governs memory management across the frontend.
- Participate in code reviews to maintain code quality and ensure sound design decisions.
- Collaborate through pair programming sessions.
- Contribute to the full software engineering lifecycle: product specification, requirements gathering, high-level design, low-level design, implementation, and testing.
- Help inform the design of future DSLs as the platform expands to other scientific computing domains.
Requirements
- BS degree in Computer Science, Computer Engineering, or equivalent practical experience
- Extensive experience designing and implementing domain-specific languages.
- Deep expertise in compiler frontend engineering: lexical analysis, parsing, AST design, semantic analysis, and compiler passes.
- Strong experience with type inference and shape inference systems.
- Strong professional C++ background with modern C++ standards.
- Deep understanding of automatic reference counting concepts and object lifetime management in C++, including thorough familiarity with the semantics of shared_ptr, weak_ptr, and unique_ptr. The frontend uses a proprietary ARC implementation with similar semantics, and you must be comfortable reasoning about ownership, reference cycles, and clean teardown in this kind of system.
- Experience designing compiler diagnostics (errors and warnings) that are clear and useful to end users.
- Experience across the full software engineering lifecycle: product specification, requirements gathering, high-level design, low-level design, implementation, and testing.
✦ Let us apply for you
We find roles like this and apply on your behalf. Cover letter written for each one. Plans from $15/mo. Cancel anytime.
Get AutoApply