build a Twitter bot
Nothing running right now, but for a few March Madnesses a bot of mine alerted very few followers to possible upsets.
manage passwords
I love my password manager and I want you to as well.
spend way too much time creating a Netflix password
analyze Russian disinformation Twitter data
One day I took a break from CNN's social accounts to parse 9 million tweets from the Internet Research Agency, contributing to CNN's story.
check if passwords have been compromised
I wrote a command-line tool in Rust that lets users check their passwords against HaveIBeenPwned database and wrote about it.
work with password hashes
Totally legal, totally legal.
build Slack bots
Can't link to these because they were all for CNN, but I've written useful Slack bots in Ruby, Rust, and Python.
scrape a website
If it's public and has reasonable CSS, there's a decent chance I can scrape it? I've used Nokogiri, Beautiful Soup, even Node.js and Cheerio. Here's the story of a sentimental and doomed scraping journey.
manage two-factor authentication on a shared account
Ever need to enable two-factor authentication on an account that multiple colleagues in five bureaus on three continents need to be able to get in to? You might have a use for this command-line tool I wrote.
try to convince you to buy a $200 keyboard
The tools we use every day are so, so important.
write tweets to 50 million followers
I was a social producer at CNN from 2015 till 2021! I mostly worked on the CNN Facebook account, but I also compiled and analyzed social media analytics using various tools, including some I wrote in Rust and Ruby. Before that, I held similar positions at BuzzFeed News and The Daily Beast.
query an API
I use the Facebook Graph API almost everyday to create daily and weekly social performance reports for CNN.
run a Secret Santa for 39 people
For when picking names out of hat doesn't cut it, reach for this Rust command line tool.
quit Vim
I can use it too! Let me know if you want to swap config tips.
encrypt files
Can I get a PGP key onto a Yubikey? Yes. Would I want to do it again? Not particularly. (I'm rooting for newer alternatives, like age — I wrote a shell script to make it even easier to use).
sail to Bermuda
Wasn't easy, but we made it.
create a word list for generating passphrases
We should all use passphrases for passwords. I used Google Books Ngram data to make a list of words for creating said passphrases. I also wrote a separate tool to clean word lists and another one to use them to generate random usernames.
write a game in JavaScript
Strike 9 is a frustrating little puzzle game that involved some surprisingly interesting logic.
have a web presence
You can find me on Twitter, GitHub, Mastodon, and LinkedIn. From time to time I write about books, text editors, code, etc.
be contacted
You can reach me via Direct Message or @reply on Twitter or Mastodon. For more secure methods of contacting me, check the link(s) in my Twitter bio.