Sam can...

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

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.

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.