Academic Projects

A logo that reads 'scribs' and includes an illustration of a laptop screen displaying an essay writing application.


blog post

My graduate education began in September 2021 with HCDE 518: User-Centered Design. Over the course of several months, I went through the human-centered design process in a group with three of my peers. Based on our personal experiences as learners and tutors, we wanted to tackle the challenge faced by students who are learning in English as a second language, and help devise a means for them to improve their academic writing skills in a way that was both productive and encouraging. We began with user research, speaking to both ESL students and subject matter experts. We synthesized our research findings and began a long journey of ideation, design, and iteration. After creating a prototype we conducted user testing, which helped us refine our final prototype. We ultimately created a writing platform which facilitates collaboration between students and educators and streamlines communication between writer and reviewer. More details about our process, as well as the artifacts we produced, can be found in the attached blog post.

An image of Java source code.

Artificial Intelligence Research

source code

While pursuing my undergraduate degree I had the opportunity to work with Dr. Andrew Nuxoll on his research into episodic memory and artificial intelligence. Together with another student, we worked to create an agent that could learn to navigate a state machine of varying complexity by analyzing its episodic memory. The agent could choose from a set number of actions, and each time it took an action it would receive binary feedback on whether or not it had changed states. Using a string of episodic memories composed of the actions taken and their results, the agent would attempt to generate its own map of the state machine in order to determine the most efficient path from start to finish. Although we did not have the opportunity to publish the research in my time working on it, we did present our findings to the school’s Computer Science department.

Professional Projects

A photo of whiteboard depicting explanations of how a software program works.

Puppet Strings

source code

During my time at Puppet I had the opportunity to work on many teams, but my longest tenure was on the team that maintains Puppet’s domain-specific language. While on this team, I had the opportunity to lead the development of an automated documentation tool called Puppet Strings. Puppet Strings automatically generates readable documentation pages for Puppet components written in Ruby and the Puppet DSL by processing code and comments, and is an extension of YARD, a popular Ruby documentation tool. I worked heavily on this project for several months, consulting internal stakeholders and the Puppet open-source community to help ensure the tool would meet their needs. I also mentored an intern who worked on the project over the summer. I’m proud to say that years after my departure, the tool is still maintained and heavily used.

Volunteer Projects

A room full of people working on their laptops. Three people in front are in focus and looking at something on each of their laptop screens.

Django Girls PDX

website, twitter

Since 2016 I have been a co-organizer of the Portland chapter of Django Girls. Django Girls is an international non-profit with chapters in cities all over the world that puts on free one day programming workshops that teach people of marginalized genders how to build their first website from the ground up in Python and Django. The Portland chapter has spanned several organizers and put on a total of nine workshops. We strive for accessibility, offering amenities like free onsite childcare and loaner laptops. It’s a big endeavor to put on such an event for 40 people, but we feel the impact is worth it. We’ve helped cultivate a community and a safe space for hundreds of folks to get acquainted with programming!

© 2022 Hailee Kenney