about me
Hi! My name is Will, and I'm a software engineer focused on performance, site-reliability, and team effectiveness. Before becoming a software engineer, I taught middle school English for two years in rural Yunnan with Teach for China. Class-sizes of 55-60 made me passionate about the potential & importance of ed-tech; it's the reason I'm currently working at ClassDojo and was why I learned to program in the first place. (Speaking of ClassDojo, I've worked there for 8 years because I've loved the mission & the engineering culture.)
In my personal life, I enjoy D&D, fun fantasy & YA novels, 3d-printing coasters, bad wordplay, and slacklining. My wife and I live in New Mexico with a prancy pooch and a ferocious feline.
- email:
basename will-keleher.com .com | sed 's/-/./' | awk '{ print $1 "@gmail.com" }'
Happy to chat! - stackoverflow
- github
projects
- mongo-hyperloglog: a Mongo backed implementation of the HyperLogLog algorithm for NodeJS. It is inferior in every way to Redis's implementation
- node-fn-query: allows using NodeJS syntax on the command line with JSON documents. Meant to complement
jq
because I can never rememberjq
's syntax. - allelify: easily run commands in parallel while storing logs in
/tmp
.
about this site
This site was an excuse to play with AWS, bash, HTML, CSS, and Make. It's static, doesn't use any frameworks, and should hopefully be acceptably fast even on slower connections. Building it from scratch was fun, even if it was was a bit of a bad idea productivity- and quality-wise.
The favicon for the site comes from twemoji.
things I learned building it:
- CSS media queries don't work without
<meta name="viewport" content="width=device-width, initial-scale=1">
in the<head>
- AWS settings for S3 and Cloudfront are surprisingly hard to get right; I had expected them to be the easiest part!
- the
aws
cli supports a--profile
flag imagemagick
is amazing, and can do things like stripping metadata from images:ls ./static/*.jpg | xargs -I {} -n1 convert {} -strip {}
- twitter preview
<meta>
tags are supported by other apps like slack - how RSS feeds work! Well... kind of. I'm still figuring this one out
- bots/users check for ads.txt, robots.txt, humans.txt, and security.txt.
/wp-login.php
is also pretty popular :)