Sam can...

write a passphrase generator and the word lists it uses

We should all use passphrases for passwords. I wrote a a passphrase generator, which uses a number of word lists I created.

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.

spend way too much time creating a Netflix password

How a party in Montauk and a coding theory paper from the 1950s helped me make a better 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.

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 passwords

I love my password manager and I want you to as well.

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.

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.

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.