Hi there!

I’m Josh Archibald, a senior at Harvard studying computer science. It's me! This is a photograph of me!

This past summer, I served as a software engineering intern through the Civic Digital Fellowship, a technology internship program that gives innovative students the opportunity to solve pressing problems in federal agencies.

I previously worked as a research assistant at the Creative Computing Lab at the Harvard Graduate School of Education, where I worked on tools to analyze Scratch projects and helped develop a website for the Getting Unstuck professional development program.

In 2020 I interned at CS50, helping to design software tools to improve the student experience for Harvard’s introductory computer science course. I’ve also taught the course in both its undergraduate and law school iterations.

Outside of class, I enjoy volunteering my time teaching in Boston Public Schools - I taught American government as part of the Harvard CIVICS program for my first three semesters of college and recently served as the president of the Digital Literacy Project, which teaches middle school computer science.

I took a leave of absence from Harvard for the Spring 2021 semester due to the pandemic, but have since returned to classes.

Contact Me



Jul 2020-Present

Designed a course-planning web app in Vue.js, allowing students to discover over 8,000 courses and course evaluations scraped using Selenium and Beautiful Soup. Site visited by over 2,000 unique users.
  • Python
  • Selenium
  • Vue.js

Getting Unstuck Web

Mar-Aug 2020

Contributed to a web app that encourages students to reflect on their Scratch projects by showcasing excerpts from their own, as well as others’, work.
  • Python
  • JavaScript
  • MongoDB
  • Harvard GSE

Scratch Tools

Feb-Jul 2020

Developed a Python library that aids in downloading, analyzing, and visualizing Scratch projects.
  • Python
  • Scratch API
  • Harvard GSE

Room Designer

Apr-May 2020

Developed an interface to create simple interior designs using speech recognition and the Leap Motion Controller. For MIT’s 6.835: Intelligent Multimodal User Interfaces.
  • Python
  • Pygame
  • Google Cloud
  • Leap Motion Controller
  • MIT 6.835


Jan 2020

Created a Python script to generate postcard-style images based on an image’s EXIF geodata.
  • Python
  • Mapquest API


Nov-Dec 2018

Developed an interface to create interactive online 3D museum exhibits.
  • Node.js
  • JavaScript
  • A-Frame
  • MySQL
  • CS50

Cookie Analysis

Dec 2019

Built a Chrome extension with which users can see basic metrics about the cookies on a page.
  • JavaScript


Software Engineering Fellow, Civic Digital Fellowship, U.S. Special Operations Command

Remote  •  Jun − Aug 2021

  • Developed data cleaning pipelines for an aircraft fault record classification model; helped develop model.
  • Analyzed aircraft fault records using classification model results; compiled and presented report on findings.
  • Selected from a competitive applicant pool of 1,700+ students with an acceptance rate of 6%.

Teaching Fellow, CS50, Harvard School of Engineering and Applied Sciences

Cambridge, MA  •  Sep 2019 − Jan 2021

  • Led 23-person 23 students in fall 2019, 15 in fall 2020, if we’re crunching numbers. weekly recitation and created original slides and practice exercises. Led a two-hour seminar on Flask web development.
  • Reviewed, tested, and graded students’ final projects. Assisted students in planning of projects.
  • Helped students at office hours for CS50, CS50 for JDs, and the Harvard Business Analytics Program. The latter two are essentially spinoff courses designed for law and online business certificate students, respectively.
  • Received a Certificate of Distinction in Teaching from the Office of Undergraduate Education in fall 2020. Awarded to instructors with an overall rating of 4.50 or higher (out of 5) in course evaluations.

Software Engineering Intern, CS50

Cambridge, MA  •  Jun − Aug 2020

  • Overhauled SQL library, used by thousands of students each year, to handle both manual and auto transactions robustly.
  • Collaborated on a React app to compare similar student work side-by-side; added PDF export and a D3 graph component.
  • Devised new unit tests for 6 libraries and software tools used by students and teaching staff.

Research Assistant, Harvard Graduate School of Education

Cambridge, MA  •  Feb − Aug 2020

  • Developed a Python package Most of Scratch’s own software is written in Node.js, but we decided on a Python-based stack. to scrape and aggregate data about Scratch projects, studios, and users. Tested with Pytest and Travis CI; deployed API documentation using Sphinx.
  • Worked with team to design a website that allows users to reflect on their learning progress in Scratch through specific teachable examples from other people’s projects and guided reflection questions.

    The project summary page of the Clowder software. View this page on the web. Clowder software in action.

  • Contributed heavily to site’s backend, including MongoDB cache backend; Celery worker app; and Scratch code analysis.
  • Collaborated with team to make design decisions based on technical and pedagogical concerns alike. Contributed to paper on findings (publication pending) by combining and organizing data from Google Analytics and the site’s database.
  • Software used in a two-week professional development program by over 300 teachers to analyze over 2,300 projects.

Information Technology Intern, Montville Public Schools

Oakdale, CT  •  Jun 2016 − Aug 2019 (4 summers)

  • Designed Python scripts to parse and clean student data, easing transition between Student Information Systems.
  • Developed tools using Python to manage the return of old and distribution of new teacher laptops during lease transition, tracking asset and serial information and using that data to find missing computers using Meraki network dashboard.
  • Redesigned sections of district website;

    I even wrote an Electron app so school admin could generate the HTML and JS for a landing page slideshow, which I had to write manually because of the CMS used.

    helped plan and execute a file server migration.


Below is a full listing of the programming languages with which I feel comfortable, and a brief listing of some of the libraries and tools with which I have experience. This is not an exhaustive list of every language and library I have ever used.

Each skill is followed by the year in which I first used it.

Programming languages

  • C (2018)
  • HTML + CSS (2013)
  • JavaScript (2013)
  • Matlab (2021)
  • MongoDB (2020)
  • Node.js (2018)
  • PHP (2014)
  • Python (2015)
  • SQL (2014)

Libraries and tools

  • A-Frame (2018)
  • Celery (2020)
  • Docker (2020)
  • Flask (2018)
  • Git (2015)
  • Google Earth Engine (2021)
  • jQuery (2013)
  • Pandas (2021)
  • Pygame (2020)
  • React (2020)
  • Three.js (2018)
  • Travis CI (2020)
  • Vue.js (2018)