About Me

I studied Statistics and Computer Science at Harvard University, and then spent 4+ years working as a software engineer at Square and Uber. In 2021, I started teaching because I sincerely believe that critical thinking and problem-solving skills are incredibly important but often delayed unnecessarily or ignored completely.

I left my first computer science class feeling like it was too challenging for me. At 18, I could carry out formulaic solutions pretty well, but I had almost no experence actually generating them. This made the open-ended problems in computer science extremely intimidating and discouraging.

Systematically approaching hard problems makes them less stressful and more interesting. I eventually developed this skill and applied it to the classes I'd once thought were too hard for me, but I really wish I had started that process 10 years sooner.


Why Learn to Code?

Learning to code comes with a lot of wonderful, highly-emphasized, economic opportunities. These get the most attention, but they shouldn't be the top priority for kids. More important, but relatively ignored, are the ways that coding teaches you how to think and therefore how to learn.

My goal isn't to generate job-ready kids or to fill up their future resumes. It's to develop habits and confidence that will lead to a lifetime of clear thinking, curiosity, and enthusiasm about learning. I've written more about these habits, and why coding is a good way to practice them, here: [Why Learn to Code?] .

In short, coding is especially powerful because it wraps the crucial skills of experimentation, debugging, precision, and systematic thinking in something that's also fun and empowering.


What Language Will We Use?

With the right amount of guidance and a thoughtful structure, typed coding languages can be accessible to kids as young as 7. Skipping the typical "coding for kids" tools sets the tone that students are fully capable of solving the hard problems that they'll inevitably encounter. This also allows us to work on a wider range of projects, tailored to students' interests.

To avoid the setup challenges that often deter beginners, lessons are taught in JavaScript by default. But I'll present concepts in a language-agnostic way and constrain our work to just the essential features. If your student has experience with another language, we can easily use that instead.