Welcome to my old school "home page" for my projects. Feel free to click around to learn a bit about projects I’ve been involved with.
Most of my code is hosted on github, but this site is an attempt to gather a lot of my work into one place. It also lets me host official "pages" when needed (for example, google add-ons ask me to have policies & such hosted somewhere).
I began this as a no-frills "homepage" a la the internet of the 1990s, but recently I assigned my web design students a portfolio project, and while they were working on it I got inspired to jazz this page up a bit so now it's gone in the opposite direction and become a place to have fun playing with things like CSS sprite animations, scroll effects, and the lovely svelte draw transition on SVG paths :-).
Latest and Greatest
In the last 6 months or so, my time has been spent on:
- Cats in Boxes: An online game to teach the box model to my web design students.
- School Landing Pages: I built some new landing pages to help students and staff keep track of links to the many online apps we use as well as track our progress through the rotating daily schedule and more. I included some easter eggs to keep our community entertained.
- Nordle: a Wordle spin-off that lets you play any number of simultaneous wordles, starting at the single wordle, moving to the dordle, triordle, quordle, pentordle and beyond!
- Tom's Cycling Tools: a set of tools that combines my love of cycling with my addiction to Strava and my current love affair with Svelte. I wrote up this project in a blog post.
Tech I use
Lately, my coding time is mostly spent as a Web Dev. I've built everything from full web apps to browser extensions to Google Apps Scripts add-ons.
I've used all of the big front-end frameworks (React, Angular, Vue) at one point or another, but I am currently using Svelte for most new standalone projects and Vue elsewhere (Vue works well with no build process, which is handy for certain environments).
For work, I've built many scripts in Google Apps Script and using Spreadsheets as a handy tool to interface with non-programmers but relatively tech-savvy users.
For teaching, I built a simple standalone Simple Canvas library to help students get up and running with simple games. It's a bit closer to the browser API than the big game engines and works better for helping students learn fundamental concepts of computer drawing and animation.
Who am I?
(in no particular order)
I have three daughters, ages seventeen, fifteen and thirteen.
My kids are the best. We like singing and hiking and riding bikes together and they crack me up and keep me honest.
When they were little, I tried to keep a blog on their language development. which is fun to look back on. Emerging language is so much fun (though teenagers are entertaining too, in their own ways, which they probably would not want me blogging about...)
DadI have three daughters, ages seventeen, fifteen and thirteen.
My kids are the best. We like singing and hiking and riding bikes together and they crack me up and keep me honest.
When they were little, I tried to keep a blog on their language development. which is fun to look back on. Emerging language is so much fun (though teenagers are entertaining too, in their own ways, which they probably would not want me blogging about...)
I had just graduated with a degree in Comparative Literature and was working at the Women Writers Project (a digital text-encoding project then at Brown, since moved to Northeastern) when I discovered my love of programming.
My first programming involved writing custom scripts in Emacs Lisp to help speed up encoding early texts in a custom XML dialect. After Lisp, I learned Python, and then lots of work in the web got me, at first begrudgingly, to become a JavaScript developer.
I've made the rounds of JS frameworks and am currently smitten with Svelte, which makes designing web apps a joy.
A ProgrammerI had just graduated with a degree in Comparative Literature and was working at the Women Writers Project (a digital text-encoding project then at Brown, since moved to Northeastern) when I discovered my love of programming.
My first programming involved writing custom scripts in Emacs Lisp to help speed up encoding early texts in a custom XML dialect. After Lisp, I learned Python, and then lots of work in the web got me, at first begrudgingly, to become a JavaScript developer.
I've made the rounds of JS frameworks and am currently smitten with Svelte, which makes designing web apps a joy.
I’ve taught in schools my entire adult life, including teaching Spanish, English Language Arts, Programming and Computer Science, and, of course, interdisciplinary courses.
I love working with students and focus my teaching in all subjects on giving kids real problems and watching them solve them.
I tend to hate "school-like" school in all its forms and work to remove the artifice of school from my classes wherever possible and directly engage students with the subject matter at hand, which means my Spanish classes focused on actually speaking in Spanish, my English classes had students writing about topics they care about, and my programming classes focus on building fun stuff rather than (re)implementing sort algorithms.
TeacherI’ve taught in schools my entire adult life, including teaching Spanish, English Language Arts, Programming and Computer Science, and, of course, interdisciplinary courses.
I love working with students and focus my teaching in all subjects on giving kids real problems and watching them solve them.
I tend to hate "school-like" school in all its forms and work to remove the artifice of school from my classes wherever possible and directly engage students with the subject matter at hand, which means my Spanish classes focused on actually speaking in Spanish, my English classes had students writing about topics they care about, and my programming classes focus on building fun stuff rather than (re)implementing sort algorithms.
If you’re good at computers, it’s only a matter of time before you end up managing them. I’ve been managing computers for Innovation Academy in Tyngsboro, MA since the tech guy quit a few months into our first year (I was one of the founding teachers of the high school).
I’m not a tech-enthusiast for schools: I often prefer a pad of paper to a laptop and I consider asking kids to read on chromebook screens a sin against readers everywhere.
That said, I have spent a decade making sure people can find their documents, have backups in place, and can connect to the nearby printer.
I have also done more google apps scripting than anyone should do in one lifetime.
School Tech GuyIf you’re good at computers, it’s only a matter of time before you end up managing them. I’ve been managing computers for Innovation Academy in Tyngsboro, MA since the tech guy quit a few months into our first year (I was one of the founding teachers of the high school).
I’m not a tech-enthusiast for schools: I often prefer a pad of paper to a laptop and I consider asking kids to read on chromebook screens a sin against readers everywhere.
That said, I have spent a decade making sure people can find their documents, have backups in place, and can connect to the nearby printer.
I have also done more google apps scripting than anyone should do in one lifetime.
Around six years ago I made the jump from regular old bike-commuter to bonafide cycling nut.
I have three bikes I ride a lot now:
- My gravel/road combo bike.
- My fat bike for mountain biking and playing in the snow
- My tandem bike for going on rides with my wife.
CyclistAround six years ago I made the jump from regular old bike-commuter to bonafide cycling nut.
I have three bikes I ride a lot now:
- My gravel/road combo bike.
- My fat bike for mountain biking and playing in the snow
- My tandem bike for going on rides with my wife.
Some of My Projects
Classroom Roster Tool
APCSP Pseudocode Generator
Let's work together
Interested in design work? I have extensive experience with web development, google apps scripting, and more.
I have a full time job and three kids, so it's been a number of years since I did much consulting, but feel free to reach out. Many moons ago I did consulting work mainly in python, but these days my skillset is more in the web-dev stack. I'm happy to help you adapt one of my tools to your use case, or create something new.