Saturday, October 15, 2016

What You Can Do About Global Warming

This was originally a Facebook post, but I'm preserving it here in a slightly longer format due to the transient nature of Facebook.

August 2016 was the hottest August ever. So was July. And June. And so on for the last 11 months. Here’s a scary animation. No country is taking this seriously, and if we continue on our current path the Earth will be uninhabitable in 100-200 years.

Global warming may seem easy to ignore, because the effects appear far off and irrelevant to people living in first world countries. Climate change denial (or even acceptance without behavior modification) is perhaps the most extreme example of Hyperbolic Discounting in the history of the human race. Partly this is because it can seem impossible to make any changes yourself that will have an impact. I hope I can convince you otherwise.

I’m sure you’ve heard about global warming causing stronger storms, rising sea levels, and a variety of other long term downsides that may or may not impact you. But did you know that global warming almost certainly contributed to the Arab Spring? Or that the coffee and chocolate crops are at risk? THE COFFEE AND CHOCOLATE CROPS. DO YOU REALLY WANT TO LIVE IN A WORLD WITHOUT COFFEE OR CHOCOLATE?!?!

I could write a long post with doomsday scenarios, but I’m more interested in changing behavior NOW, so we can mitigate the damage. Here are six things you can do immediately, in rough order of impact, that if everyone did would have an enormous impact on the problem:
  1. Vote HillaryI contend that no other issues in the political landscape today really matter. If we don’t solve this problem we won’t have a world to save. And we won’t have coffee or chocolate. Hillary Clinton is the only candidate with a rational approach to climate change (look at question #3)
  2. Fly lessIf you get on airplanes somewhat regularly, it is probably your largest contribution to global warming
  3. Buy an electric car -  As the grid transitions to renewable energy, auto transport will become a larger and larger portion of individual emissions. You don’t have to buy an expensive Tesla (although they are awesome), the Chevy Bolt is coming out imminently, is priced under $30K with tax credits, and has 238 miles of range
  4. Reduce Individual Energy Consumption - Switch to LEDs, get a Nest, keep your house a little colder this winter and put on a sweatshirt. Depending on how much you can change your usage, this could have a minor impact or a significant one. This will also save you money
  5. Stop eating beef/lamb/pork - Agriculture is a significant contributor to carbon emissions, and beef/lamb/pork contribute disproportionately
  6. Buy Carbon Offsets - TerraPass makes this very easy, and for <$200 you can make your family carbon negative. This can have a big impact, but I put it at the bottom because permanently reducing consumption has a double effect: slowing the greenhouse effect and preventing us from needing to offset so much carbon

I’m personally doing or have done all of the above, and I encourage you to do the same.
Remember, only you can prevent forest fires. I mean global warming. And also forest fires. Which are exacerbated by, and then subsequently contribute to global warming!

P.S. Keep those "the temperature has changed before" arguments to yourself. If you read none of the articles linked in this post, at least scroll through the chart here.

Sunday, October 2, 2016

"Composer: Getting Started" Published on Pluralsight

My second Pluralsight course, Composer: Getting Started, just went live! This is another course that's loosely based on a talk I've given in the past, with a lot more of the details fleshed out. The course covers the following topics:

  1. The Basics of Composer
  2. Including Third Party Code
  3. Autoloading Your Code
  4. Composer Scripts
  5. Publishing Your Own Composer Package
Check it out on Pluralsight today, and let me know what you think!

Monday, April 18, 2016

High Performance PHP: Now On Pluralsight

I've just published my first Pluralsight Course: High Performance PHP! I've spoken about this topic a number of times in the past, so it seemed like a good fit for my first foray into the screen casting world. This course also has much more that PHP optimizations in it. The five modules are:

  1. Optimizing PHP Code
  2. Choosing and Configuring a Web Server
  3. Database Optimization
  4. Performance and Load Testing
  5. Investigating Performance Tradeoffs of PHP Frameworks

Modules two, three and four are largely language agnostic, so even if you aren't using PHP you can get a lot out of this course.

Here's a demo clip going over the different MySQL forks and how best to configure MySQL:

I hope you enjoy the course, and I'd love to hear any feedback you have! Watch the full course here.

Friday, May 8, 2015


When I left Etsy at the end of February, it was because I wanted to join something small where I could have a lot of impact. I did that, becoming a co-founder/CTO at a three person startup in Boston in the online grocery space. Unfortunately that business didn't work out, and closed its doors for good on April 6th. That left me wondering what to do next, and I spent the month of April talking to a lot of companies and exploring opportunities. I wanted to stick with my original plan of joining a small company, but I decided to make post-Series A companies my main focus, to take away some of the risk that I experienced at a seed stage, pre-product company.

I was introduced to Attend by a friend, and the company fit all of my criteria. It has a popular product in the market, has around 30 employees (~5 full-time engineers), just raised a Series A, is in growth mode, and has a great team. There's a ton of potential for me to learn technically there and grow as a leader. Attend provides an event management software product, which is also appealing to me since I like to go to a lot of conferences. The company's current focus is in higher ed, but it's only a matter of time before we tackle the tech conference circuit :-).

I'm starting this coming Tuesday as the "Lead Front End Engineer", although I plan on touching a lot more than just the front-end. That's where the biggest need is right now, but I'm excited to apply my knowledge across all layers of the stack and help grow and scale the business.

I'm really looking forward to this next challenge - wish me luck!

Thursday, April 30, 2015

Reflecting on 2.5 Years as a Remote

February 27th was my last day at Etsy, concluding 2.5 years as a remote employee (more on what's next in a future post). A lot has been written about remote work, including a recent book, but I wanted to talk about my own experience and some of the lessons that I learned over the past few years.

Overall Etsy does a great job with remote employees, and it continues to get better. During my last couple of weeks at Etsy they were rolling out a new policy that added a number of additional benefits for remotes (including the ability to bring your spouse with you to the main Etsy office in Brooklyn for a week once a year). All that said, at the end of the day I believe that how much you enjoy working remotely is more a function of your personality than the perks that your company provides.

Generally I think there's a correlation between how introverted you are and how much you enjoy remoteness. Here's how I put it in my last lecture at Etsy, discussing how my expectations matched reality.

Why the mismatch? A few reasons:

  • Being remote makes you want to get out more
  • I like having close friends at work, and this is harder as a remote
  • The pace of learning is slower as a remote, and a big reason why I came to Etsy was to learn from the amazing engineering team that Etsy has
  • Fear Of Missing Out translates to the Reality Of Missing Out. There are always activities, free food, and get-togethers that are happening in the office, and as a remote you can't take part in these things
One thing that really stuck out to me throughout my time at Etsy and from reading a lot about remote work is that really successful remote companies/teams have one thing in common: they are mostly remote. For a long time I was the only remote on my team, and part of a company that has roughly 10% remotes. While Etsy does a great job with their remotes, it's tough when you are a small minority at the company or on your team. 

Alright so it's challenging, but what are some specific things that companies can do to make remote life more enjoyable?

Team Off-Sites

My team came up to Boston for a week, stayed in an Airbnb near my house, and generally just hung out with me and got work done. This was a great way to make me feel like a true member of the team, get to know the folks on my team a little better, and interact socially as opposed to only communicating in a work context. I highly recommend doing team off-sites if you have remotes at your company. 

Communication Tools

You need to have some sort of real-time chat application with remotes. Etsy uses IRC, many companies these days are using Slack. Pick something and have as much conversation as possible there. 

You also need to have outstanding A/V setups in all of your conference rooms. Every time I was part of a meeting with 6+ people huddled around a laptop trying to video chat with me I died a little bit inside. It's ineffective, frustrating, and makes remotes feel like they aren't valued members of the conversation. Luckily Etsy recognized this, upgraded all of their conference rooms, and for the past year or so that I was there this wasn't a problem.

Buy high quality webcams for your remotes. The difference between a $100 webcam and the built in one in a Macbook is incredible, and the cost is negligible. This should just come as part of the package when a remote starts. Here's your computer, here's your webcam. 

Remote Bootcamps

If your company is serious about having remotes, every employee should have to go through a "remote bootcamp", where they work from home for 2+ weeks straight. This will uncover all sorts of small barriers that are likely easy to fix, and will help everyone understand the challenges of remote work. 

Trips to the Office

During my time at Etsy I came to the Brooklyn office roughly once every two months, for a full week. Really successful remotes tended to come more often, up to once every month. This meant that they were in the office 25% of the time, which can be pretty disruptive to your home life, but definitely helps work relationships. I have a lot going on in Boston, so it was tough for me to come to the office more often. I think it's great that Etsy encouraged frequent trips and paid for all of them, but the solution to being a great remote can't simply be "come to the office more". 

One big takeaway from these trips was that from my perspective the trip was special - something fairly unusual where I got to spend a lot of time with my coworkers and feel like I was a true part of the team. For everyone else in the office, generally it was just another day at work. My team did a great job planning lunches, dinners, and in person meetings when I was there, and I think it's really important to have a pretty structured week when remotes are in town. Without deliberate planning, you might spend 80% of your week sitting at a desk in the office coding away with headphones on - not the best way to spend your time. A big part of the responsibility for this planning rests with the remote employee, but anything you can do to facilitate that as a team member is beneficial. 

Wrapping Up

I'm glad that I had the opportunity to spend a couple of years as a remote. I learned a lot about the benefits and drawbacks of remote work, and how to do it effectively. I saw first hand what works and what doesn't, and what companies can do to make remote work as enjoyable as possible. I think my personality is slightly better suited to working closely with other people in an office environment, so I am unlikely to take another remote job in the near future, but I think having remotes can be a great way to access the best talent from around the world. If you are going to take a remote job, just be aware of the challenges and make sure that you are working for a company that takes remote work seriously (to reiterate, Etsy is a great fit in that regard).