A top-down view of Mcway Falls, with a pristine turquouse blue beach lagoon, surrounded on all sides by rocky cliffs.
📸

My statement of purpose

I'm currently (Nov 2021) applying to graduate schools to study the field of HCI. This is a draft of my statement of purpose, where I talk about my history, why the problems of HCI compel me, and why I believe I'm qualified to work on them.


Tanishq Kancharla, tkanchar@alumni.cmu.edu, https://moonrise.tk


Hello! I'm Tanishq Kancharla and I'm applying to the fall 2022 cohort of the MIT HCI PhD program. I'm interested in the human-computer interface, making computers easier to use and extend for end-users, and ergonomic computing. I believe that the operating systems of today are deeply flawed in the sense that typical non-programmer users cannot extend, configure, or build apps or programs to leverage the immense computing power of their machines in an easy, natural way.

This gatekeeping creates an artificial barrier between a user and their machine. I'm motivated by a belief that users should feel empowered over their machine, rather than at the whims of software developers. To that end, I'm applying to the HCI program to learn more about how people use and reason about computer interfaces and prototype new empowering interfaces and environments for users. I'm applying specifically to MIT since its Software Design Group aligns completely with my motivations and interests. I believe I am capable of success in the HCI graduate program because of my problem-solving ability, my passion for the field, and my craft.

I believe the strongest qualifications I have for the HCI program are my critical thinking abilities and natural inquisitivity. I participated in numerous math competitions in high school, such as AMC and AIME, and attended many math camps such as Hcssim and AwesomeMath, where I consistently excelled. Besides just learning math in these ventures, I learned to ask deeper "why" questions. Solving math problems is a creative endeavor, and I learned to approach the same problem from different angles to find perspective/insight on why a claim might be true. More so than solving problems, it was about finding and cracking the "core" of a problem and then working back up from there to find novel properties.

I applied this lens to my major in physics in college: When I took quantum physics with Professor Scott Dodelson (one of my references), I was consistently dissatisfied with the explanations given in class for emergent quantum properties. To reconcile, I made a small game in Unity to simulate quantum wavefunctions, programmed the fundamentals in, and found that I ran into runtime issues such as infinites and dividing by 0. I demoed my game to my professor, and he explained that he had glossed over several parts of the theory (such as packets), which would be required in order to make my game run. The explanation helped me understand the theory better, and satisfied some of my vague intuitions that part of the theory was contradictory (it wasn't, it was just that we had been taught an approximation of it). I think my problem-solving ability would help me immensely in a HCI graduate degree, since I naturally approach problems at multiple angles, I try to get to hidden assumptions or axioms, and I ask lots of questions to get insight and to the "why".

I am also deeply passionate about the field of Human-Computer Interaction. I ran into papers and research about it 2 years ago, and fell in love with the idea of asking why computers are the way that they are, and how they could be better. I keep my notes and research public on my website: https://moonrise.tk/thoughts where I've amassed about 50,000 words across 150 notes in the fields of design and engineering. I'm also an avid reader of authors in the field, and I follow research from renowned groups and people such as MIT's Software Design Group, CMU's Brad Meyers, Andy Matuschak, Bret Victor, and Ink & Switch.

My main working thesis is that there's some common underlying structure to how we interact with computer systems, whether it's through a compiled programming language, a GUI, an API, an interpreter or a terminal. All of these have trade-offs, but I don't think they have to be as steep as they are currently. I think it's possible to create new interaction paradigms that give a user both the familiarity and ease of understanding as a GUI but also the power of a terminal or programming language. I believe these paradigms could be extended to the OS, by having a more semantic OS where programs run as open behaviors rather than in siloed apps. As part of learning more about how this could be possible, I've been interested in and delved into fields such as dependent type theory, API design, category theory, operating systems, cognitive science, and linguistics. For example, in my blog post titled "Create floors, not ceilings", I compare and contrast different systems like a programming language vs. a design system vs. even email headers. As part of this essay, I had to read into protocol-oriented paradigms like Rust traits and Swift protocols. I end the post with how the idea can be applied to the operating system. If I am accepted into the program, this is the research I would like to perform and the thesis I would pursue.

Finally, I believe I am capable of success in MIT's HCI program because of my craft as a developer. I've been programming since I was 12 (about 10 years) in a multitude of languages and frameworks like React, SwiftUI, and Rust. I'm familiar most with web development, and feel comfortable enough with a specific "tech stack" to create testable prototypes for an idea quickly. Being able to test my ideas has been crucial as I've been learning more about the field of HCI, since you can often tell by feeling whether an idea is going in the right direction by directly trying it. My computer science degree at CMU taught me at a low-level how computers work, as well as provided me with a strong foundation in data structures, algorithms, and computing paradigms in classes such as "Introduction to Computer Systems", "Great Theoretical Ideas in Computer Science", and "Parallel and Sequential Data Structures and Algorithms". Additionally, my experience in software has taught me best practices in writing maintainable and testable code. I feel competent and confident enough in my foundational knowledge that I can tackle the immense project of redesigning the operating system given the proper mentorship, experience, and knowledge of MIT's HCI program. Specifically, my research interests align with those of PL+SE professors such as Daniel Jackson, Robert Miller, and Armando Solar-Lezama and I'm especially interested in projects within the Software Design Group such as Alloy, "Rethinking Software Design", and Wildcard.


Thank you for your time and considering me for the MIT HCI PhD program!