CrawlJobs Logo

C++/C Developer with Lex & Yacc Tool

https://www.citi.com/ Logo

Citi

Location Icon

Location:
India, Pune

Category Icon
Category:
IT - Software Development

Job Type Icon

Contract Type:
Not provided

Salary Icon

Salary:

Not provided

Job Description:

The Applications Development Intermediate Programmer Analyst 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.

Job Responsibility:

  • Utilize knowledge of applications development procedures and concepts, and basic knowledge of other technical areas to identify and define necessary system enhancements, including using script tools and analyzing/interpreting code
  • Consult with users, clients, and other technology groups on issues, and recommend programming solutions, install, and support customer exposure systems
  • Apply fundamental knowledge of programming languages for design specifications
  • Analyze applications to identify vulnerabilities and security issues, as well as conduct testing and debugging
  • Serve as advisor or coach to new or lower level analysts
  • Identify problems, analyze information, and make evaluative judgements to recommend and implement solutions
  • Resolve issues by identifying and selecting solutions through the applications of acquired technical experience and guided by precedents
  • Has the ability to operate with a limited level of direct supervision
  • Can exercise independence of judgement and autonomy
  • Acts as SME to senior stakeholders and /or other team members
  • Appropriately assess risk when business decisions are made, demonstrating particular consideration for the firm's reputation and safeguarding Citigroup, its clients and assets, by driving compliance with applicable laws, rules and regulations, adhering to Policy, applying sound ethical judgment regarding personal behavior, conduct and business practices, and escalating, managing and reporting control issues with transparency
  • 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

Requirements:

  • 2-5 years of relevant experience in the Financial Service industry
  • Intermediate level experience in Applications Development role
  • Consistently demonstrates clear and concise written and verbal communication
  • Demonstrated problem-solving and decision-making skills
  • Ability to work under pressure and manage deadlines or unexpected changes in expectations or requirements
  • At least 3+ years of compiler development experience
  • Strong understanding of embedded software development in a hardware environment
  • Strong knowledge in one or more of the areas of: lexical analysis, parsing, semantic analysis, code generation, and optimization
  • Hands on experience of Lex and yacc tool using the UNIX OS and GNU tool
  • Direct experience with llvm, gcc, gdb, multicore systems, cross-compilation environments, embedded OS, and drivers
  • Full Software Development Kit (SDK) development cycle experience
  • 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
  • 2+ years of non-internship professional software development experience
  • 2+ years of experience developing compiler optimization, graph-theory, hardware bring-up, FPGA placement and routing algorithms, or hardware resource management
  • A passion for development, strong work ethic, and continuous learning
  • Experience with code optimization techniques for different hardware architectures

Nice to have:

  • M.S. or Ph.D. in computer science or related field
  • Experience with LLVM and/or MLIR
  • Experience with developing algorithms for simulation tools
  • Experience is TensorFlow, PyTorch, and/or JAX
  • Experience in LLM, Vision or other deep-learning models

Additional Information:

Job Posted:
March 22, 2025

Employment Type:
Fulltime
Work Type:
Hybrid work
Job Link Share:
Welcome to CrawlJobs.com
Your Global Job Discovery Platform
At CrawlJobs.com, we simplify finding your next career opportunity by bringing job listings directly to you from all corners of the web. Using cutting-edge AI and web-crawling technologies, we gather and curate job offers from various sources across the globe, ensuring you have access to the most up-to-date job listings in one place.