Knowledge is dead. Care anyways. LLMs know more than you, … Care anyways. can write faster than you, … Care anyways. sound more articulate than you, … Care anyways. do better math than you, … Care anyways. ship code faster than you, … Care anyways. and have more impact on you. Care anyways. Manhole cover (Japan, 2025) Here is a picture of a manhole cover I found in Japan. A thing to be trodden…
I find “transpiler” to be a useless word : depending on the speaker, it can mean anything from a text replacement tool to a sophisticated optimizing compiler; I would much rather just use “compiler” to describe these systems. In reading this older post, someone pointed me to the dichotomy between lumpers and splitters: people who try to group similar things vs. people who try to separate out…
PLDI is one of the marquee programming languages conference and one my favorite ones to attend. The number of domains that PL are working in and bringing ideas to is frankly overwhelming and inspiring. I had a bunch of interesting conversations that incited new ideas and perspectives for me. For the Masses or for the FLOPs? Building and programming heterogenous systems has quickly become one of…
I am a systems researcher which means almost all of my research requires writing lots of a code. I also believe in building in the open and, being a person of hubris, like writing good code that other people can use. Finally, as an academic, I also like teaching people how to write good code and build cool tools that other people can use. Over the course of my PhD, my advisor and I have developed…
Content Warning: Death My dear friend and colleague Priya Srikumar passed away in a car accident. I write this post to memorialize the impact they had on me and other people around them. If you knew Priya in their capacity as an academic and would like to add something, please email me . I started my PhD at Cornell in 2018 and Priya was an undergraduate student then. I first met them when they…
This tool is different from a compiler which often has a complex frontend, an optimizing middle end, and code generators for various backends. The big problem around most of the arguments to distinguish between compilers and “transpilers” focus on language syntax. However, anyone who wants one of these tools to actually work has to contend with the fact that different languages will have different…
I find myself repeating the following advice to my mentees: Assume your manager (advisor) remembers nothing about your previous meeting. Start from the top and build back the context of your discussion before you dive into technical details. I have dubbed this the “stateless manager model” after functional programming paradigms where the program uses no state and instead acts only upon the inputs…
This class is about the study of programming languages. Before we start, I want to perform two activities with folks here. First, I want us to answer two dumb questions: Why do we design new programming languages? What is a programming language? While (2) seems to be the more fundamental question, we need to answer (1) to have any hope of even thinking about (2). So first, why do we design…
I cannot be happy outside academia If it is novel, it is useful If it is useful, it is publishable Engineering does not matter Presentations do not matter Writing does not matter I will build and they will come Pedantry and insight are the same thing Critiquing and creating are the same skills This class will help my research This class won’t help my research Research area X is useless Research…
Dear Sir, I am afraid to inform you that you have built a compiler. I know you wanted a “simple prototype” that would just add that one feature to your programming model. You said that “SSA is an overkill” and “it’s just way too much infrastructure to maintain for a simple task” and yet, six months later, you have pile of string mangling scripts that do not work—breaking every time a user input…
Personal infrastructure loosely refers to all the tools and systems I have to interact on a regular basis to do my job as a PhD researcher. As a systems researcher, this includes obvious stuff like command-line tools and programming workflow as well as as the set of tools to build websites, write papers, manage TODO lists, and record videos . Websites Software Technical Writing Programming…
“Commoditize your complement” is an idea about how companies can build profitable markets without complete vertical integration or monopolization. 1 1 I highly recommend “ Laws of Tech: Commoditize Your Complement ” for a more in-depth look into this idea. Very briefly, the idea is this: every product has a substitute and a complement . A substitute is a product that provides the same…
If you’re excited by the ideas in this post, please consider registering for and submitting to LATTE : the first workshop on languages, tools, and techniques for accelerator design co-located with ASPLOS. FPGA-based accelerators have opened up a new frontier for accelerator design; instead of spending months building and fabricating silicon chips, programmers can buy a cloud instance to run custom…
FPGAs, a form of reconfigurable architectures, already power a large number of datacenter applications. With FPGA acceleration becoming mainstream, it is the perfect opportunity to think about programming models for designing next-generation high-performance hardware. Moore’s law is in its death throes. With Global Foundries announcing that they are no longer pursuing 7nm production nodes,…
With the end of the Spring ’20 semester a month away, I have spent almost two academic years at Cornell. A quick rundown of everything that happened: Failures Short paper on FuTIL rejected from LCTES ’20. Rejected from Facebook fellowship ’20. Dahlia rejected from ASPLOS ’20 with two weak rejects. Rejected from Microsoft research internship for summer ’19. Rejected from Qualcomm fellowship…
Conferences in computer science are an odd occurrence. Unlike most other research fields which primarily focus on publishing in journals, conferences ended up being the primary publication and presentation venue in CS. They also became the place where researchers network with each other, learn about ongoing research, and drink beer with their grad school buddies. Because of this, conference…
Collaborations in systems research is how I’ve built some of the best tools in my research. A larger teams means an expanded vision and being able to pursue more ambitious ideas but it also incurs an overhead – team management. Effectively managing a team and keeping all team members up to date can be stressful and a daunting task. I think one way to approaching management tasks is by asking a few…
I often describe the basic philosophy of research using a metaphor: bash your head in a wall over and over till you find a way to break it and then repeat it ad nauseam. Sometimes you’ll know where the cracks in the wall are, and sometime you’ll know what angle you need to hit the wall with your head, but fundamentally, you’re hitting your head into a wall. This is perhaps an unnecessarily graphic…
Update, 2022 : After being at Cornell for couple more years, I’ve developed a more nuanced opinion of the “free agent system” at Cornell CIS. I do not believe that this system scales well as the department has grown. If you are an incoming student to Cornell CIS, I encourage you to set up rotation commitments with professors before you accept the offer. Deciding which graduate school you’re going…
Instead of being a judgement of what PL research should be, this short post is simply a reflection of my research interests and what role PL plays into it. During a recent PLDG talk, the speaker said, “I think that, as a community, PL people have a moral responsibility to step in and say, ‘No, you’re having fun wrong!’.” I have no qualms about the comment itself—jokes can be a useful tool in…