In academia, research often leads individuals to conferences. For Nathaniel Yazdani, it was a conference that led him to research.
In the summer before transferring to the University of Washington from a local community college, Nathaniel had just learned his first functional programming language. Curious as to why someone would design “such a strange language,” he began investigating the world of programming languages online. Interested to learn more, he applied and was awarded funding from the ACM Programming Languages Mentoring Workshop to attend the International Conference on Functional Programming that summer. In what he described as a welcoming community, Nathaniel used the opportunity to learn more about programming language research, continually engaging with other attendees and student volunteers. Becoming eager to give research a try for himself, reached out again to the conference’s keynote speaker, Dr. Ras Bodik, who happened to be also be moving to the University of Washington that fall. They connected after his talk, and by the start of classes, Dr. Bodik had agreed to become Nathaniel’s research advisor.
Nathaniel joined Dr. Bodik as part of the Programming Languages and Software Engineering (PLSE) research group, and he took the lead on a project focusing on program synthesis for parallel computation over trees. The project took aim at synthesizing data visualization implementations performant enough for interactivity with big data sets. Over the following semesters, Nathaniel was able to successfully design a synthesis algorithm and develop it into a working system in C and Rust. His work has already resulted in one publication, with more in progress, and he has given talks on his research at a university-wide research symposium and a DARPA site visit. Moreover, in addition to the technical skills and knowledge gained as part of his experience, participating in research also provided the opportunity for Nathaniel to develop as a mentor–when a Ph.D. student joined the project, Nathaniel was tasked with guiding the older student to get them onboard and up to speed with his work.
Noting that addressing open-ended problems presents a much greater challenge than ordinary coursework, Nathaniel reflects that it is his love for creative problem solving, searching for ideas, and brainstorming potential solutions with colleagues that draws him to research. He believes research has taught him how to cautiously and efficiently explore large problem and solution spaces, and has allowed him to drastically improve his technical communications skills in both presenting and writing. When asked if he had any advice for other students looking to get into research, Nathaniel remarked on the need for persistence, noting that failure is just part of the process: “Expanding human knowledge often requires trying out several potential approaches and recovering from dead-ends.” He also highlighted the need for focus, joking that “research problems are solved depth-first, not breadth-first!”
Reflecting on his experience as an undergraduate researcher, Nathaniel commented on how it has influenced his life and career. His goals now include “the opportunity to engage in long-term scientific inquiry while providing the sort of teaching and mentorship that have so benefited me to the next generation of students.” Having just completed his undergraduate degree as part of a joint B.S/M.S program, Nathaniel will return to the University of Washington for a fifth-year master’s program. After graduating, he intends to pursue a doctorate elsewhere and, hopefully, a future that includes an academic career at a research university. Even before starting his master’s year, however, Nathaniel has been able to put his research skills to good use, receiving a research internship at the IMDEA Software Institute (the Spanish national research institution for computer science) in Madrid, Spain.
-Written and edited by Keith Feldman and Booma S Balasubramani