-
05 Oct 2021 · 1.8277777777777777 min read
Twilio Console: A Large Scale Migration to Jamstack
Twilio’s sustained growth over the last decade has led to several architectural iterations of the Twilio Console. With each iteration, comes changes to handle the biggest problems of the time. The next generation of the Twilio Console is no exception! In this talk, we’ll walk through why and how we went about migrating from the legacy Console to the new Console experience safely (spoiler, iframes were involved) and the impact this has had on our customers and the organization. » read more
• -
15 Feb 2020 · 6.733333333333333 min read
Transparent Salaries
Transparent salaries have come up again in Tech Twitter under the #KnowYourWorth hashtag. There is interesting discussion going on around why are there compensation differences between US and non-US salaries, is sharing your salary a good idea? and selection bias. I’d also like to share some of my personal experiences as someone who’s had their salary posted publicly (while at Buffer) and worked at companies who are less transparent about salaries. Please note that these are my own opinnions and I belong to a group that is both privledged and overrepresented in tech. » read more
• -
02 Jun 2019 · 9.938888888888888 min read
Effective Syncs With Distributed Teams
Over the past few years I’ve participated or lead syncs in fully distributed, partially distributed and centrally located teams. I’ve learned that doing effective syncs in a distributed team is similar to doing them in a centrally located team. However, there are a few differences that make distributed team syncs a little more difficult than a centrally located team sync. I’ll share a process that has been borrowed from many different sources and tweaked over time with new teammates and companies. » read more
• -
11 Dec 2018 · 2.1555555555555554 min read
Getting The Most Out Of Kubernetes
So you’ve carefully crafted your first Kubernetes service, and you’re ready to deploy it to production. Well, not quite: there are still some important unknowns to understand before your service will be ready for production traffic. It’s still unclear how the new service behaves when it’s being pushed, and it’s possible that Kubernetes will kill the service before serving a single request. While at Buffer, we developed a technique to optimize Kubernetes deployment limits by using load testing to identify optimal values for resource limits. When the service is under heavy load there are a few key metrics to watch to identify bottlenecks. These key metrics can be used to adjust resource limits. This real world approach allowed us to safely and efficiently switch our production traffic to our Kubernetes cluster and can be applied to any application. » read more
• -
25 Nov 2018 · 12.955555555555556 min read
20 Questions To Ask Before Joining A Startup
When I first joined a startup in 2012 I did my best to ask the right questions when interviewing. My engineering background prepared me for engineering tasks and helped me write a resume, but it didn’t prepare me well for how to evaluate a startup offer. While this might be obvious to some, this is what I wish I knew when trying to break into the startup scene. » read more
• -
26 Oct 2018 · 5.655555555555556 min read
Remote Work Matters For Communities
A few weeks ago, @rrhoover sent out a poll asking what people find most important when looking for a job, and remote work came out on top by a wide margin. The results were hardly surprising to me. Watching the discussion about health, parenting and general freedom it sparked, I found myself thinking that’s true - but that’s not it. That’s not why remote work is changing our world for the better. » read more
• -
09 Jul 2018 · 6.955555555555556 min read
We Wrote A Book: Atomic Migration Strategy For Web Teams
It all started at Fluent Conf 2017 with a talk I gave on Migrating With Atomic Design. After the talk I was approached by O’Reilly and asked if I wanted to turn the talk into a book. My initial reaction was hell yes, followed quickly by what did I just agree to 😱. I’m an audio learner and a slow writer, so writing does not come natural to me. However, I really wanted to write a book since I’d never done it before and it seemed like a challenge that would push me outside of my comfort zone. I’d love to share how I went about writing and what went into writing a book with a publisher. » read more
• -
15 Jun 2018 · 1.8777777777777778 min read
Making The Case For Frontend Monorepos
The industry is shifting to smaller, simpler components with ideas like microservices and component driven development. Monorepos keep all of the related code in one place, which might seem incompatible with with the shift towards modularization. However, in practice, the opposite is true – monorepos allow you to use a standard set of tools and make related changes across components. » read more
• -
29 Jan 2018 · 4.55 min read
The Optimist's Guide To Coding
Scrolling through my twitter feed, I saw Tweet about how software engineers seem to become less happy over time with coding. Personally I’ve been coding stuff in some capacity for a little over 22 years and still enjoy it just as much as those early days. It made me think about why coding is still fun and seemed like a great opportunity to share some of the things I do to keep it that way. » read more
• -
08 Jan 2018 · 5.066666666666666 min read
How I Hacked My Schedule To Get 3 Days Of Deep Work A Week
Over the last year my role at Buffer has changed from an individual contributer to a technical leadership role. While the amount of time I spend coding and doing architecture hasn’t changed much, the way I go about the tasks has changed significantly. Instead of being focused on a project from start to finish, I move around projects as needed. Sometimes a team will get blocked on a tricky problem or need to make a decision that could impact other teams or request technical mentor-ship to level up their skills. I’ll jump in and provide technical context (when I can) and try to help in a why that will reduce the reliance on myself. » read more
• -
24 Sep 2017 · 4.155555555555556 min read
GraphQL Is Architecture
GraphQL has been gaining popularity since it was open sourced in 2015. It is an interesting implementation of the Backend For Frontend pattern built on a custom query/filtering language. It has a strong community behind it (Github uses it) and has a powerful debug tool GraphiQL. Most importantly GraphQL is an architectural choice. » read more
• -
01 Dec 2016 · 11.672222222222222 min read
Building The Buffer Link Counting Service
On the surface the Buffer link counting service is pretty simple. Its job is to keep track of the number of times someone has created a Buffer post with a given url embedded into it. » read more
• -
15 Oct 2016 · 1.55 min read
Load Testing and Optimizing K8S Deployment Memory/CPU Limits
You’ve shipped your first deployment to Kubernetes. But are you ready to start handling production traffic? Here’s an approach to load testing and setting resource limits on Kubernetes deployments. » read more
• -
19 Jun 2016 · 12.811111111111112 min read
Integration Testing With Docker Compose
Integration testing is often a difficult venture, especially when it comes to distributed systems. Even if you’re building a monolithic app you probably need to spin up a database to do integration testing. It’s also the kind of thing that’s simple to do early on, but gets exponentially harder as the codebase expands. Thankfully Docker Compose gives us the ability to do integration testing in any environment that runs docker. » read more
• -
16 Jun 2016 · 5.355555555555555 min read
Developing Inside Docker Containers with OS X (2016)
Last August, I set out to create a streamlined development environment for building microservices. The goal was to leverage Docker to keep things consistent between development and production environments. For the most part I was able to achieve this goal, however the solution involved a bunch of time consuming setup and configuration. Since then, the Docker has released a private beta that allows you to run Docker containers locally (well, on the slick xhyve hypervisor). So as a followup to Developing Inside Docker Containers With OS X I’d like to share some of the improvements this has made to the developer experience. » read more
• -
24 Mar 2016 · 1.6277777777777778 min read
React Intro
React has been around since 2013 and is consumed by millions (via web apps like Facebook and Instagram). I’ll walk through building a simple react component, discussing the differences between props and state as well as digging into the lifecycle of a component. » read more
• -
01 Dec 2015 · 6.3 min read
SJC -> ORD (Farewell Silicon Valley)
It’s been a hell of a (nearly) 4 years living here in the heart of Silicon Valley. I’ve had the pleasure of working with some amazingly talented people at both large companies and startups. I have no regrets moving here. I’m one of those midwesterners you hear about migrating west to look for gold. Except the gold for me wasn’t necessarily money, I was looking for a guarantee. I was after experience of building a company. » read more
• -
16 Sep 2015 · 10.327777777777778 min read
Developing Inside Docker Containers with OS X
One of the biggest selling points of Docker is consistency between your development and production environments. But there are plenty of challenges when setting up a development environment inside of a Docker image (especially on an OS X host). After spending some time getting familiar with Docker and Vagrant, I learned a number of things I felt would be valuable to share. » read more
• -
24 Jul 2015 · 6.861111111111111 min read
The React Native Feature No One's Talking About
Last week I started digging into the internals of the React Native project. I was looking to get a better understanding of how to debug and profile React Native apps with Chrome Developer tools. What I learned was a bit surprising and showed huge potential for future app developers. » read more
• -
29 Jun 2015 · 1.5666666666666667 min read
Enhancing Meteor With Elasticsearch
Elasticsearch is a powerful fulltext search engine with an API. Meteor is a fullstack reactive framework for building mobile and web apps in pure javascript. Here’s how we integrated search into Respondly. » read more
• -
15 Apr 2015 · 5.727777777777778 min read
Some Thoughts On Gluing React Native and Meteor
I spent some time running through the React Native tutorial and studying the APIs. It’s a great tutorial because it shows you how to get data from a RESTful API and update a React Native view. One thing that seems understated is that you can use NPM packages. » read more
• -
26 Feb 2015 · 3.5722222222222224 min read
Reducing Reactive Bugs In Meteor
Since working with meteor in production at Respondly, a particularly difficult class of bugs has presented itself. It’s related to Meteor’s fantastic reactive Tracker package. As more people contribute to a codebase, knowledge tends to spread out across the team making it more difficult for one person to contribute. Here’s an example of the problematic pattern: » read more
• -
28 Dec 2014 · 5.45 min read
Hacking Sleep
At one point in your life as a human, you’re going to have trouble sleeping. My experience was like most as it was a slow progression to poor quality of sleep. I’ll start by laying out my pattern (not exact but typical) and then follow up with what I changed that led to a better nights sleep. » read more
• -
15 Aug 2014 · 4.022222222222222 min read
Punk Rock Not Corporate Rock
This whole thing got started about a year ago while getting spun up on Meteor. I was hacking together a project to stream the latest tweets – creatively named Meteor Twitter Stream. By a stroke of luck, I made a mistake that exposed my API key. Within a couple hours of the project getting retweeted by Meteor, Tim Haines graciously pointed out the error. A year later, I ended up joining Tim and Phil Cockfield at Respondly. » read more
• -
09 Jun 2014 · 5.0 min read
SF Music Hack Day 2014
As a SV noobie, I’d recently been turned on to hackathons. To me the name Hackathon is a bit misleading. It’s less of a marathon and more like a long game of plinko fueled by gallons of coffee and several “Aha!” moments. But after a couple of them I’ve started to notice some patterns in successful hacks. » read more