Our research program aims to achieve automated software evolution via analysis, verification, and test generation. Applications of repair studied in the program will include security vulnerability repair, patch transplantation across versions of major software systems such as Linux, as well as the use of agentic workflows to automate software evolution. You will work on pioneering projects that advance the application of AI and ML within the realm of software engineering. This role offers the opportunity to conduct cutting-edge research, develop novel algorithms, and contribute to the development of software tools that enhance system performance, reliability, and flexibility.
What you will do
Conduct applied research in integrating AI/LLM techniques with software engineering practices to improve code quality, testing, and software maintenance.
Design and implement experimental prototypes to demonstrate feasibility of new methodologies.
Training and fine-tuning LLMs (both commercial and open-source) to improve performance
Implement and maintain pipelines to collect high quality large datasets to train/finetune LLMs.
Prepare, analyze and preprocess large datasets of code used to train LLMs
Collaborate with cross-functional teams, including software engineers, and product managers, to translate research findings into practical applications.
Stay informed about the latest advancements in AI/ML and software engineering to identify emerging trends and opportunities for innovation.
Participate in code reviews and provide constructive feedback to other developers/researchers.
Implement best practices from DevOps to maintain a readable codebase, testable infrastructure and documented research artifacts
Experience and qualifications
Masters degree (or equivalent) in Computer Science, Engineering, or related field.
At least 3 years of experience as a ML/AI/LLM Engineer, ideally in Software Engineering.
Strong research background in AI, ML, and SE
Experience working with generative AI technologies (e.g. GPT-4, BedRock)
Experience in developing tools or frameworks that utilize AI/ML to enhance software development processes.
Familiarity with techniques for automated code generation, program synthesis, and software testing using AI/ML
Experience in developing and prototyping in Python and R
Understanding of software development processes and terminology.
Excellent debugging, optimization skills, communication and teamwork skills
Excellent problem-solving skills and the ability to work independently or as part of a team.
Nic to have:
Knowledge of reinforcement learning algorithms and experience with model training
Experience in publishing research papers in top-tier conferences and journals
Familiarity with AWS services such as Lambda, EC2, ECS, SNS, SQS, and RDS is an advantage
Experience using and configuring static analyzers as part of a research project