LEX / YACC Compiler Design Developer
5900 HURONTARIO STREET MISSISSAUGA, Canada
Citi
Citi is a leading global bank for institutions with cross-border needs, a global provider in wealth management and a U.S. personal bank.About Citi:
Citi, the leading global bank, has approximately 200 million customer accounts and does business in more than 160 countries and jurisdictions. Citi provides consumers, corporations, governments, and institutions with a broad range of financial products and services, including consumer banking and credit, corporate and investment banking, securities brokerage, transaction services, and wealth management.
As a bank with a brain and a soul, Citi creates economic value that is systemically responsible and in our clients’ best interests. As a financial institution that touches every region of the world and every sector that shapes your daily life, our Enterprise Operations & Technology teams are charged with a mission that rivals any large tech company. Our technology solutions are the foundations of everything we do from keeping the bank safe, managing global resources, and providing the technical tools our workers need to be successful to designing our digital architecture and ensuring our platforms provide a first-class customer experience. We reimagine client and partner experiences to deliver excellence through secure, reliable, and efficient services.
Our commitment to diversity includes a workforce that represents the clients we serve from all walks of life, backgrounds, and origins. We foster an environment where the best people want to work. We value and demand respect for others, promote individuals based on merit, and ensure opportunities for personal development are widely available to all. Ideal candidates are innovators with well-rounded backgrounds who bring their authentic selves to work and complement our culture of delivering results with pride. If you are a problem solver who seeks passion in your work, come join us. We’ll enable growth and progress together.
This role is a Lex / Yacc Compiler Design Developer and is an intermediate level position responsible for participation in the establishment and implementation of new or revised application systems and programs in coordination with the Technology team. The overall objective of this role is to contribute to applications systems analysis and programming activities.
Responsibilities:
- Develop and maintain compiler front-end and back-end components
- Optimize compiler performance for different hardware architectures
- Debug and resolve compiler-related issues
- Collaborate on designing and implementing new language features
- Conduct code reviews for quality assurance
- Write and maintain documentation for compiler functionalities and APIs
- Integrate and validate third-party libraries and tools
- Manage source code using version control systems
- Implement algorithms for code generation and optimization
- Perform code refactoring for better maintainability and efficiency
- Stay updated with advancements in compiler technology
- Profile and benchmark compiler performance on various platforms
- Develop automated tests for compiler verification
- Provide technical support to teams using the compiler
- Analyze performance metrics to identify areas for improvement
- Participate in design and architecture discussions
- Use static and dynamic analysis tools to improve code quality
- Collaborate with cross-functional teams
- Research new compiler techniques and methodologies
- Contribute to and engage with open-source compiler projects
Qualifications:
3+ years experience of compiler development experience.
3+ years hands on experience of Lex and yacc tool using the UNIX OS and GNU tool
3+ years experience with LLVM, MLIR. LLM, Vision or other deep-learning models
Vision or other deep-learning models
good knowledge of Data Lineage and relational database
Education:
Bachelor’s degree/University degree in Computer Engineering, Information Technology, Computer Science or equivalent experience
Masters Degree in Engineering highly desirable
This job description provides a high-level review of the types of work performed. Other job-related duties may be assigned as required.
Preferred Critical Skills:
4+ years experience and strong understanding of embedded software development in a hardware environment.
3+ years experience with llvm, gcc, gdb, multicore systems, cross-compilation environments, embedded OS, and drivers.
3+ yeas Full Software Development Kit (SDK) development cycle experience.
3+ years hands on professional software development experience
3+ years of experience developing compiler optimization, graph-theory, hardware bring-up, FPGA placement and routing algorithms, or hardware resource management.
3+ years experience is TensorFlow, PyTorch, and/or JAX
3+ years experience with with developing algorithms for simulation tools
Strong knowledge in one or more of the areas of: lexical analysis, parsing, semantic analysis, code generation, and optimization, which helps them write code that is easily interpreted by the compiler and produces efficient machine code.
Pragmatic problem-solving and ability to work independently or as part of a team.
Proficiency in C/C++ or Rust programming languages, with a deep understanding of memory management and low-level system programming.
Proficiency with 1 or more of the following programming languages: C++ (preferred), Python
Experience in the LLVM compiler infrastructure to customize and optimize compilers for a specific OS.
A passion for development, strong work ethic, and continuous learning.
------------------------------------------------------
Job Family Group:
Technology------------------------------------------------------
Job Family:
Applications Development------------------------------------------------------
Time Type:
Full time------------------------------------------------------
Citi is an equal opportunity and affirmative action employer.
Qualified applicants will receive consideration without regard to their race, color, religion, sex, sexual orientation, gender identity, national origin, disability, or status as a protected veteran.
Citigroup Inc. and its subsidiaries ("Citi”) invite all qualified interested applicants to apply for career opportunities. If you are a person with a disability and need a reasonable accommodation to use our search tools and/or apply for a career opportunity review Accessibility at Citi.
View the "EEO is the Law" poster. View the EEO is the Law Supplement.
View the EEO Policy Statement.
View the Pay Transparency Posting
* Salary range is an estimate based on our AI, ML, Data Science Salary Index 💰
Tags: APIs Architecture Banking Computer Science CX Engineering FPGA JAX LLMs Open Source Python PyTorch RDBMS Research Rust Semantic Analysis TensorFlow
Perks/benefits: Career development Startup environment
More jobs like this
Explore more career opportunities
Find even more open roles below ordered by popularity of job title or skills/products/technologies used.