Responsibilities:
- 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.
Qualifications:
- 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
Education:
- Bachelor’s degree/University degree or equivalent experience
This job description provides a high-level review of the types of work performed. Other job-related duties may be assigned as required.
BASIC QUALIFICATIONS
- 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, which helps them write code that is easily interpreted by the compiler and produces efficient machine code.
- 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.
PREFERRED QUALIFICATIONS
- 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
Responsibilities
Applications Development
Time Type:
Full timeView the " " poster. View the .
View the .
View the