josh@joshbuddy.com
https://github.com/joshbuddy
Level up myself by leveling up the people around me. Encouragement-based debugging. I want to tackle new problemtunities with friends.
Who am I?
I’ve worked on a large variety of projects over the past decade. Over the last few months I've mainly been involved in contract work and other side projects. Previous to that I was at Patreon for 2.5 years. Before joining there I was working on a streamable encrypted file system. I’ve spoken at numerous conferences, and met amazing leaders in open source, all of whom inspired me and taught me valuable things along the way. Here are some recent examples, where I both made a difference and learned some important lessons.
Some interesting things I've done
Patreon
I joined Patreon because I found the mission so darn inspiring. There I was able to help a diverse set of creators paid and enable wonderful art. An added bonus was the lovely people, wonderful problems and lifelong friends would come into my life through this group of people. Not to mention the organizational challenges of scaling an engineering team from about 20 to 80.
- Getting to jam with Jacob Collier.
- Getting jam on Jacob Collier (sorry Jacob!)
- Turns out MySQL will store non-utf-8 in a utf-8 typed column. Really MySQL?
Slick
https://github.com/joshbuddy/slick
Slick was first attempt at creating something entirely on my own. What started out as an experiment in creating Airdrop entirely within the browser became a generalized framework for writing secure private apps in html/javascript. Ultimately running up against performance issues in making crypto work fast enough in browser, I wrote what I think is the killer app for this tech: a streamable encrypted filesystem. And it works! And I even earned some users for it.
- Getting Amazon Cloud Drive support working. The APIs are misleading, but everything is golden.
- Not building the file system in the first place, and focusing on a platform first.
- Using PhantomJS for testing, discovering the broken typed array implementation and crying over 3 lost days.
Airbnb
Airbnb is like the Disneyland of startups, the happiest place to work. I started there on Trust & Safety, rolled out some meaningful improvements to email security, and went to site reliability engineering. Managing a giant AWS cluster via Chef, helping to keep everything from grinding to a halt, and rolling out meaningful security improvements with an amazing team remains a very happy memory for me. A great bunch of people and a great place to do amazing work.
- Reducing email phishing attacks to practically zero.
- Productivity bursting at the seams, but not always finding the right target.
- Too many beers at the sysops meetings. Too many tears.
Leap Motion
Leap Motion was my first from-scratch creation of an entire web department. Initially hosted in AWS, and migrating to Heroku, these websites and other services supported the simultaneous launch of over 100k units worldwide. I created an open-source library for accessing the Leap Motion entirely through websockets. I was also able to guide a small team through the creation of many projects, including an app store, a developer website, and a desktop launcher for Leap applications. Though I didn't write every line of code, I learned the much greater lessons of: delegate where possible, make everyone a creative stakeholder if you want the best work from them, and, always have a contingency, because being prepared can often show the way. People matter, and getting knee-deep in feelings is critical if you want to build the best teams possible.
- Managing to get through launch with no hiccups.
- Focusing on urgent things, at the expense of important things.
- Having to run forensics on an SQL injection attack on vBulletin. Oh php, you hurt me so.
Miso
While working with Ruby and Rails is fun and all, Miso gave me my first chance to defining a product from the ground up. There, I got the bright idea of building asynchronous commenting on a media timeline. Before I started my product stint there, I was helping to create an infrastructure to support spiky web loads.
- Inspiring people to work on something amazing, seeking and speaking about truth and beauty.
- Turns out when you pivot a company, you stop sleeping .
- Staying up two days to write a program to replay Mongo replication logs to recover a database. Yah.
Watching Twitter grow from 250 to 750 within a year was an incredible time. In that time I got to help migrate all of Twitter between data centers, work on the graph databases, and start to work on the hard problem of making that data consistent once again. When I wasn’t working on that, I was making tools and services to help deal with Twitter’s incredible spam problem.
- Flipping the switch between DCs without so much as a blip.
- Watching the quirk leave the quirky company you’ve grown to love.
- Working Christmas day at Twitter. Sometimes, you gotta.
Wikipedia Robots
http://en.wikipedia.org/wiki/User:Tawkerbot2
Doing things by hand sucks. Automation rules. Even if it takes three times longer, it tends to payoff. I started working on Wikipedia in my part time, and found a group of people on IRC busily swatting vandalism as though it were a glorified video game. My first thought when I saw this, "How can I do this automatically?" As it turned out, there was tonnes of tasks that needed a little automation love on Wikipedia, and there was no one around to do the work. This was my first foray into Python, IRC bot programming and considerable notoriety.
- According to stats.wikipedia.org, my old robot was at one point the #4 contributor with 137,927 edits. Whoa.
- Running programs without writing better tests. Getting blocked by Jimbo Wales made me take a long ride home on the subway to think about how to do this right.
- Watching people "chat" with the bot on its user talk page. It’s, um, a bot, not Eliza.
Timeline
- Freelance
- Patreon
- Slick
- Airbnb
- Leap Motion
- Miso
- Contracting
- AideRSS/PostRank RoR/Ruby developer. Using big queues, EventMachine & proxies. Real-time delivery of complex information.
- Bibliocommons RoR/Java/JRuby developer. Leading ruby/rails development, using Sinatra & DRb for back-office tasks and getting a Java-Rails application to production.
- Henderson Bas Application Developer. Built sites for iCoke, Molson, Discovery, Nintendo in Java & PHP.
- Freelance Contracting at Extend Media, BBDO, Ogilvy & Mather, Fjord (Cossette Interactive)