CaizinActive opening

System programming

PuneOn-siteSeniorFound 2 days ago
Apply to this job

Free credits included. Sign up to start applying with Jobfinder.

javacompilerparsertranspilersemantic analysistesting

Compiler / Transpiler Engineer (Mid-Level)

Team: Language Tools / Legacy Modernization About the project We are building a transpiler that converts UniBasic (a legacy BASIC dialect) into Java. The codebase we are modernizing is large: on the order of 14,000 source programs: so the transpiler is not a one-off script but a real compiler frontend:

What you will do

  • Implement and extend parsers for UniBasic statements and expressions (control flow, file/OS I/O, dynamic-array and multivalue operations, CALL dispatch), each producing well-defined AST nodes.
  • Build and refine semantic-analysis passes: name resolution, parameter-direction inference (input / output / in-out), and type binding/propagation across call sites.
  • Implement AST-to-AST transformations that lower UniBasic constructs to a Java AST, and help keep the emitter a pure printer.
  • Handle the hard, real-world edge cases legacy code is full of: ambiguous syntax, context sensitive tokenization, inconsistent formatting, and dialect quirks.
  • Write thorough tests for every parser, pass, and transformation: including golden-file tests that transpile real UniBasic and compile the generated Java.
  • Diagnose failures across the whole chain (a wrong .java output traced back to a lexer, parser, or transformer bug) and fix the root cause.
  • Contribute to design discussions on pipeline architecture, AST shape, and how new language features flow from parse → SEMA → transform → emit.

Must-have qualifications Compiler / language-tool fundamentals

  • 3–5yearsofsoftware engineering experience, including hands-on work on a compiler, tran spiler, interpreter, static analyzer, linter, or similar language tooling.
  • Solid working knowledge of the frontend pipeline: lexing/tokenization, parsing (recursive descent / Pratt / precedence handling), AST design, and at least one of semantic analysis or code generation.
  • Comfortable reasoning about grammars, precedence/associativity, and context sensitive parsing: and about why a construct produces the AST node it does.

Engineering craft

  • Strong Java (Java 17+) and comfort with a typed, Object-oriented codebase.
  • Disciplined about testing: you write tests for the code you change and treat a failing corpus file as a bug to root-cause, not skip.
  • Practical experience with refactoring and clean-code. 1
  • Clear written communication; able to justify a parsing/lowering decision and document edge cases
CaizinSystem programming
Apply to this job