You are viewing a preview of this job. Log in or register to view more details about this job.

Compiler Software Engineer

Job Overview:  

The Compiler Software Engineer designs, develops, troubleshoots, debugs, and sets the direction for the design and implementation of software features/functionality/enhancements, correction of defects, and/or the creation of new products. Develops software tools including operating systems, compilers, routers, networks, utilities, databases, and Internet-related tools. Determines software’s compatibility with hardware and/or influences software's design in relation to hardware. 

 

Essential Duties and Responsibilities

Review and provide feedback on designs. 

Takes ownership of the design and development of features within their component. 

Recognizes and practically solves for anti-patterns. 

Good understanding of how his/her work aligns with high-level use cases and team deliverables. 

Define (more than a feature, less than a product) a component that fits into an architecture. 

Describe and defend design decisions for components owned by the team. 

Optimize software design to leverage platform capabilities. 

Acts as the technical subject matter expert for a product domain. 

Quantify and communicate work estimates and risks to direct management 

Handle multiple competing priorities with minimal help 

Understand features as a whole and able to break down larger stories and features into tasks 

Familiar with most of the technologies we focus on and what markets they target 

Takes ownership of customer issues and effectively communicate with Support/SEs to resolve field questions/issues 

Discuss with customers what larger concerns and problems they are trying to solve, over and above the immediate technical concerns 

Willingness to teach and grow junior team members 

Excellent listening skills 

Effectively works within the team and across teams 

Ensures all tasks are completed thoroughly and that any work done is tested, unit tested, documented, and ready for customers 

Takes identified problems and concerns and create a plan to fix the problem and prevent it from occurring again 

Follows through on all tasks 

Reliably delivers expected work products and outcomes 

Imparts a sense of urgency on junior team members 

Required Qualifications:  

Mastery of data structures and algorithms. 

Able to select data structures and algorithms to solve technical problems. 

Able to write high-quality code rapidly.  

Able to present a track record of solving problems of increasing complexity 

Good understanding of trade-offs in solving problems that have variable levels of complexity. 

Good understanding of trade-offs in solving problems that have variable levels of complexity. 

Able to understand and extend a robust transpiler that converts legacy computer languages to modern languages 

Willing to collaborate with other developers and stakeholders to understand specific legacy functionalities and their intended outcomes in the new system. 

Able to analyze the source language's features, syntax, and semantics to ensure accurate and functional translation into TypeScript. 

Proven experience in building compilers or transpilers, particularly for high-level programming languages. 

 

 

Preferred Qualifications: 

Strong foundation in computer science with an emphasis on programming languages, compiler construction, and software architecture. 

Technical understanding of TypeScript, OCaml or other languages with rich type systems and type inference 

Experience with the legacy enterprise languages 

Active participation in language implementation community, including contribution to open source projects 

 

Education: 

Bachelors/Masters degree in Computer Science or equivalent