Joe Teaches Technology


I teach computer science lessons where kids learn about technology by making things with technology: coding, game design, robotics, electronics, microcomputers, graphic design, animation, podcasting, music, and more.
Computers are an ideal creative outlet for kids, with unlimited potential (to keep their curiosity burning), plenty of challenge (to keep their boundaries stretching), and forgiveness (⌘+Z).
My lessons are for 3rd–8th graders who want more challenge from their technology learning, homeschoolers, or students whose schools don’t offer technology classes.
“One of my favorite classes is technology because Joe is really fun and loves to laugh. He has cool technology ideas.” — 5th grader
About me (aka Joe)
This is my 12th year as a teacher. I started my career as a graphic designer and later migrated to teaching college-level design classes. That segued into a Master of Design degree from the University of Washington in 2016, where I studied design and technology in classrooms. And I’ve spent the last few (very fun) years teaching elementary & middle school coding and robotics classes.
I love to be creative. I started making stuff with computers in elementary school, and it’s as compelling, weird, and empowering today as it was on those Mac Classics. I’m a technology teacher today because it’s fun to see kids discover that same creative energy in themselves.


Choose from any of these learning paths
Whether kids are just starting to learn about computer science or have lots of experience, I’ll meet them at their skill level. Choose a path that sounds fun, and I’ll pick creative tools to fit the student. I’m happy to help you choose a path — get in touch!
block coding |
Scratch, micro:bit, Code.org |
game design / coding |
Bitsy, MakeCode Arcade, PICO-8 |
robotics |
LEGO Boost, LEGO Mindstorms |
graphic design |
logos, posters, t-shirts |
animation / cartooning |
digital drawing, stop-motion |
music production |
songs & beats |
microcomputers |
micro:bit, Raspberry Pi |
podcasting |
interviewing, editing, production |
3D modeling |
LEGO Stud.io, Tinkercad |
text coding |
Python |
web development |
HTML/CSS, JavaScript |
electronic components |
breadboards, servos, sensors, buttons |
Learning paths | Examples of creative toolsGrades | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
block coding | Scratch, micro:bit, Code.org | ||||||
game design / coding | Bitsy, MakeCode Arcade, PICO-8 | ||||||
robotics | LEGO Boost, LEGO Mindstorms | ||||||
graphic design | logos, posters, t-shirts | ||||||
animation / cartooning | digital drawing, stop-motion | ||||||
music production | songs & beats | ||||||
microcomputers | micro:bit, Raspberry Pi | – | |||||
podcasting | interviewing, editing, production | – | |||||
3D modeling | LEGO Stud.io, Tinkercad | – | – | ||||
text coding | Python | – | – | – | |||
web development | HTML/CSS, JavaScript | – | – | – | |||
electronic components | breadboards, servos, sensors, buttons | – | – | – |


Design + Problem‑solving
I believe wholeheartedly in the design process, which gives kids a proven path to feeling successful. No matter what students are building, we’ll follow these steps to get us there:
- setting goals what do I want to make?
- getting inspired learning from others
- concepting generating lots of ideas
- prototyping trying and experimenting
- receiving feedback listening to others
- iterating applying what I’ve learned
But it’s not all fun and games. Working with technology means (inevitably) running into technical difficulty. In these moments, we’ll reflect on that frustration and try problem-solving strategies: isolate the issue, talk it out, simplify, try something new, take a break — we’re never stuck.
Activities that kids naturally love doing (sports, games, puzzles) are fun because they’re difficult. And with a problem-solving mindset, squashing bugs can be a satisfying adventure all its own.
“I used to hate — like, absolutely hate, coding. But then Joe helped me like it more because he gives you ideas and suggestions. He will also take your ideas and suggestions and try them out.” — 5th grader
Lesson schedule, pricing, and getting started
Basics Lessons are open to students 3rd–8th grade. All classes are taught remotely, and each lesson is 60 minutes. Pricing is flexible.
Schedule The schedule is up to you. We can set a limited number of lessons and complete one awesome project, or kids can create lots of awesome projects in ongoing lessons. Ideally, lessons 1–2 times/week will help kids retain and reinforce what they’re learning.
Materials If we’re working with hands-on hardware (robotics, electronics, microcomputers), you’ll need to purchase your own set. I try to work with free and open-source software, but you may need to purchase an app if a quality free option isn’t available. In every case, I’ll be here to help you find the right versions.
Getting started When you’re ready to start, send me an email. I can help you pick a learning path, and we can find a schedule that works for your family. Before our first lesson, students and I will meet remotely for a few minutes to brainstorm their first project, so I can start planning.


Kid-centered lessons
When we want to build something, and we don’t (yet) know how: our drive to learn comes naturally — and with kids, ferociously.
So my teaching is propelled by students’ creative goals. With some cooperative brainstorming, kids pick projects they’re excited to make. Each time we meet, students practice new technology concepts and upgrade their project with the techniques they’ve learned.
Every lesson is designed uniquely for each student. I plan lessons around kids’ current skills and learning needs. As often as possible, I want kids to feel successful, challenged, and always making progress at their own speed.