Closed NgaiJustin closed 12 months ago
It's been roughly 90 days since opening this issue. We apologize if we haven’t gotten back to you—research openings are somewhat sporadic, so sometimes we don’t have specific opportunities to offer. But more will certainly come in the future! If you're still interested in doing reasearch with us, please respond with "Still interested for <semester/summer>". Additionally, please update the issue by editing it and supplying us with more information, an updated resumé, etc. If you're no longer interested, do not respond to this thread and we will automatically close this issue.
Personal Details
Name: Justin Ngai
Major: CS
Year in Cornell & Expected graduation date: Final semester M.Eng, expected Dec 2023 (Cornell Class of 2023, B.A in CS)
Relevant classes:
Interested in continuing research during the summer? If necessary
Expertise (languages/frameworks/etc.): Python, Java, OCaml, C++, Rust
Research
When do you want to do research? During the Fall 2023 semester. Looking for an M.Eng project.
What is exciting to you about research? I initially didn’t have too much interest in working with programming languages at a low level. Having taken a bunch of systems and ML courses, I thought I would have just continued on this trajectory.
However, this summer working in a DevInfra team that focused on programming languages and runtime completely changed my perspective. I discovered a wide range of super awesome projects that I found extremely interesting—JIT compilers for Python and Hack, static analysis for Python to identify security vulnerabilities, linter frameworks, and many more. As a bonus, all the engineers on this team were extremely passionate and a joy to talk to. Furthermore, they all shared the quality of being extremely knowledgeable about programming languages and compiler architecture.
Looking to return to this area next year, I hope to consolidate my understanding of programming language implementation so that I have the background to more meaningfully contribute to these amazing projects and build awesome things! This is what motivated me to take CS 6120 and is also a key driving force for me to explore research in the field of programming languages. While I am still new to this area, I am eager to learn and contribute. I would be happy to set up a quick chat to discuss my experiences and skillset, as well as how I can contribute!
What kind of research do you want to do? The hardware accelerator generation projects seem super interesting, but I'm also open to other opportunities as I'm primarily looking to explore!
Background
Was there a paper that particularly excited you? Over the summer I had the opportunity to learn about Static Python (described in this paper) leveraging three layers of shallow, concrete, and progressive types to drive optimizations. Despite the costs of enforcing soundness, this approach achieved palpable performance improvements. Reading through the paper, I was captivated by the elegant manner in which Static Python addresses dynamic typing challenges while preserving the flexibility that makes Python so versatile. There were also so many interesting techniques that I wanted to learn more about such as how to tailor bytecode instructions to leverage static types, the implementations of a JIT compiler, and more.
In addition, (perhaps not a paper) but over the summer I learned about progress on PEP 703, an exciting PEP that unlocks true concurrency potentials with Python, enabling Python's use in high-performance computing, data-intensive tasks, and more.
Which of the current research projects would you be interested in working on and why? Calyx seems interesting because it
Anything else you want to tell us about yourself? I am happy to set up a chat and provide any additional information!
Attach a CV/Resumé justin-ngai-resume