Sam can...

build a Twitter bot

Nothing running right now, but for a few March Madnesses a bot of mine alerted the Twittering masses to possible upsets.

manage passwords

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

check if passwords have been compromised

I wrote a command-line tool in Rust that let's users check their passwords against HaveIBeenPwned and wrote about it.

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.

work with password hashes

Totally legal, totally legal.

build Slack bots

Can't link to these because they're for CNN, but I wrote one of them in Rust and it is *chef kiss*.

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.

convince you to buy a $200 keyboard

The tools we use every day are so, so important.

write tweets to 50 million followers

I've been a social producer at CNN since 2015! I mostly work on the CNN Facebook account, but I also compile and analyze social media analytics using various tools, including some I wrote in Rust and Ruby. I previously held similar positions at BuzzFeed News and The Daily Beast.

write a barebones blog CMS

During the resurgence of "Tilde Clubs" in 2014 I wrote a simple blog CMS in Ruby. Other people used it! It was a big deal for me at the time!

query an API

I use the Facebook Graph API almost everyday to create daily and weekly social performance reports for CNN.

visit L.A.

I don't publish much flowery prose these days, but Tumblr circa 2011 was different.

run a Secret Santa for 38 relatives

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).

sail to Bermuda

Wasn't easy, but we made it.

make 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 deceptively tricky functions.

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.