Slide 1

Slide 1 text

Building A Remote Engineering Culture Jon Chan Stack Overflow

Slide 2

Slide 2 text

My TL;DR Stack Overflow Marketing Engineering Lead I think about growth and re-engagement across the company and what people think about the Stack Overflow brand. Bento Founder I’m interested in making it easier to become a self-taught developer. I think about how to democratize tech education. Other things Diversity & Inclusion Partnerships at Stack Overflow Creator of Descartes.io @jonhmchan

Slide 3

Slide 3 text

Agenda 1. Why remote? We believe that remote work is the future of talent. There are so many different advantages to having a remote team. 2. How we do it At Stack Overflow, remote is part of our DNA. Here are the different things we’ve done to make remote possible. 3. Extreme remote I’ve personally taken our remote policy to an extreme. I’ll give you a look into what it’s like to be nomadic while working full time as an engineer at Stack Overflow. 4. Questions Ask me anything. Also, I would love to keep in touch and answer any questions you may have in the future. I’ll let you know what the best way to get in touch is. @jonhmchan

Slide 4

Slide 4 text

Why remote? @jonhmchan

Slide 5

Slide 5 text

Things to think about Talent Having a remote workforce gives you access to amazing talent. It also makes your workforce resilient to change. Productivity We think that remote, when done right, can make engineering more productive. Flexibility and autonomy do wonders. References On Working Remotely, Jeff Atwood Why We (Still) Believe in Working Remotely, David Fullerton @jonhmchan

Slide 6

Slide 6 text

Talent Engineering talent is rare There is 1 programmer for every 5 jobs. There aren’t enough programmers to fill all the jobs, including the ones you have open. Diffuse the competition Restricting your talent pool to people who live within a 50 mile radius of you makes hiring extremely competitive. Expand. Getting untapped talent There is amazing engineering talent in areas where there aren’t great engineering jobs. Being that opportunity for them is huge. Resilient to change We don’t lose talent to big changes: partners needing to move, needing to travel back home, or other life events. @jonhmchan

Slide 7

Slide 7 text

Productivity Flexibility == Performance Being remote means you give people the ability to control their work environment and optimize their own productivity. Private office We believe engineering needs uninterrupted time to work. Private offices help with that, and working remote is even better. Better time spent Remote means a really short commute, flexible hours, and working when you are most productive. Managing for results It’s easy to think butts in chairs means “work.” Remote forces managers to think about what people produce, not time spent. @jonhmchan

Slide 8

Slide 8 text

Remote is flexibility @jonhmchan

Slide 9

Slide 9 text

How we do it @jonhmchan

Slide 10

Slide 10 text

Background Pretty big and everywhere We’re at around 300 people, with offices in New York, Denver, and London. 25% remote overall, 70% in engineering all over the world. We started remote Our co-founders started remotely, and our first few engineers were in different cities as well. Remote is something we began with. @jonhmchan

Slide 11

Slide 11 text

What to think about People We believe that remote is a people-centric problem. These are the things we look for and how we set up people for success. Culture Remote can only be done well when everyone is bought into it. Making it part of the culture keeps everyone on the same level. Communication Keeping everyone informed is tough, and it’s even tougher when you’re talking about remote. These are the tools we use. @jonhmchan

Slide 12

Slide 12 text

People Finding and enabling people is the groundwork @jonhmchan

Slide 13

Slide 13 text

People Hiring We think you can hire for remote. Shift your thinking away from managing accountability and really focus on hiring right. Onboarding Onboarding is difficult at any company, but remotely it’s even harder. Setting people up for success remotely is key. @jonhmchan References Guerilla Guide to Interviewing, Joel Spolsky

Slide 14

Slide 14 text

Hiring Hire instead of manage You can’t be looking over everyone’s shoulder all the time. So you have to try and find people that work well remotely. Two kinds of people When left to their own devices, some people will get anxious if they’re not doing anything and others will simply drift. Gets things done Not everyone is great at remote. If someone chooses remote, we look for people who are proactive and self-starters. Look for history. We have offices too For those people who aren’t great at remote, we also provide the option. It’s about letting people choose and supporting them. @jonhmchan

Slide 15

Slide 15 text

Onboarding Set up for success Once you find good people, you need to educate them on the culture and familiarize them with the tools. Infrastructure is key. Stack University All engineers go through a 6 to 8 week checklist of tasks to finish. It consists of remote meetings, pushing code, and reading docs. Having a (remote) mentor Every engineer that starts with the company gets a mentor who is also an engineer. It’s usually their first remote relationship. Best equipment $ can buy Every remote gets a headset, standing desk, ergonomic chair, and high-speed Internet subsidy. We make home like the office. @jonhmchan

Slide 16

Slide 16 text

Remote starts with people @jonhmchan

Slide 17

Slide 17 text

Culture The philosophy that drives remote @jonhmchan

Slide 18

Slide 18 text

Culture Everyone is remote It’s very important that we think of ourselves as a remote-first company. It makes everyone feel like they’re on the same level. Empowerment Being unable to do your work independently of others will make remote working a nightmare. Empowering engineers is key. @jonhmchan References Empowerment Organizations, Jon Chan

Slide 19

Slide 19 text

Everyone is remote Nobody “on speaker” Have you had the experience of having people in a conference room and everyone else dialing-in? We don’t do that. Virtual Social Spaces Remote work can lack the casual social interactions people need. We created virtual spaces for “bev” bashes and other events. Physical meetups For engineering, we typically fly them in for a meetup about once or twice every year. We have one large annual meetup for product. Non-engineering teams It’s important for teams that work with engineering to be remote-first too. Communication means collaboration. @jonhmchan

Slide 20

Slide 20 text

Empowerment Gridlock Being highly dependent on others to get things done means things are slower. This is worse if you’re in different places and times. End to end engineering What do you do is allow engineering to be able to work end-to-end. That means control from ideation to production. Infrastructure Fast deployments, feature flagging, and automated testing means you can do a lot of work independently of others. Trust Giving this freedom means you trust your engineering talent is smart. This is the other half of “Smart & Gets Things Done” @jonhmchan

Slide 21

Slide 21 text

A remote culture means inclusive empowerment @jonhmchan

Slide 22

Slide 22 text

Communication Break conversations out of who, when, and where @jonhmchan

Slide 23

Slide 23 text

Communication Asynchronous tools It’s difficult to get a lot of busy people to the same time and place to communicate. It’s even harder remotely, so stop trying to. Public by default Transparency is a key part of our ability to be remote. That means we think of information as being available to everyone by default. @jonhmchan

Slide 24

Slide 24 text

Asynchronous tools Get out of when and where We emphasize written record whenever possible. It’s really hard to coordinate across many regions, so artifacts are key. Chat Our primary mode of communication is internal chat. Having a record of conversations helps catch up if you’re absent. Video Chat When you really need to talk face-to-face, Google Hangouts is our primary platform. Zoom for larger groups. Usually recorded. Docs and Trello For project management, we rely heavily on Google Docs and Trello for writing up specifications and keeping track of tasks. @jonhmchan

Slide 25

Slide 25 text

Public by default Get out of who As a company, we value transparency and almost all information is available to others. Access enables autonomy. Weekly standups The few times we really are synchronous, it’s our regular weekly standups. Each team has a record of it that is public. CEO Report Every week, weekly standups get bubbled up into a CEO Report that is emailed to everyone at the company. Details are in links. Back to empowerment Not having the information you need because others own it fails to empower you. Public by default means you get what you need. @jonhmchan

Slide 26

Slide 26 text

Public artifacts allow for remote communication @jonhmchan

Slide 27

Slide 27 text

Extreme remote @jonhmchan

Slide 28

Slide 28 text

Pushing remote to the limit Hello World! Starting in August 2015, I ended up traveling while working full-time for over three months. It was treated as an experiment. Going nomadic The idea here was that if we already have a great culture of remote, why stay in a single place? The same principles still apply. @jonhmchan

Slide 29

Slide 29 text

Where I went New York, USA Dusseldorf, Germany Berlin, Germany Barcelona, Spain Sitges, Spain Paris, France Marseilles, France Aix en Provence, France Milan, Italy Lake Como, Italy Florence, Italy @jonhmchan Siena, Italy San Gimignano, Italy Pisa, Italy Rome, Italy Vatican City Hong Kong Taipei, Taiwan Taichung, Taiwan Hualien, Taiwan Los Angeles, USA San Diego, USA

Slide 30

Slide 30 text

Nomadism 22 cities in 3 months I rarely stayed in one city for more than a few days. The only exceptions were in Los Angeles where I was staying with family. Preparation I ended up doing a lot of homework to make this happen. It meant taking all the things we did remotely and 2x committing. My work day Half of my workday would be spent doing individual work like coding, writing. Other half would be dedicated meeting time. Global time zone 10 AM to 2 PM Eastern Standard Time is a pretty good timezone in Europe and in Asia. That’s when I had my meetings, except Fridays. @jonhmchan

Slide 31

Slide 31 text

Florence, Italy A day in the life of a nomad @jonhmchan

Slide 32

Slide 32 text

6:30 AM Wake up I wanted to go to Cinque Terre for a hike 0 Hours Worked @jonhmchan

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

7:00 AM Train to Cinque Terre I ended up doing a day trip, working on the train 0 Hours Worked @jonhmchan

Slide 35

Slide 35 text

Catch up on emails and docs With all that time, it was easy to catch up 0 Hours Worked @jonhmchan

Slide 36

Slide 36 text

9:00 AM Arrive at trailhead You already have two hours of work in 2 Hours Worked @jonhmchan

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

Go hike for two hours You can go town to town in that time 2 Hours Worked @jonhmchan

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

12:30 PM Grab lunch Still have two and a half hours 2 Hours Worked @jonhmchan

Slide 41

Slide 41 text

Write some code locally Yes, I brought my laptop with me on a hike 3 Hours Worked @jonhmchan

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

Take a train to the next town It only takes about 15 minutes if you decide not to walk 3 Hours Worked @jonhmchan

Slide 44

Slide 44 text

1:30 PM Go to the beach I still have an hour to kill before I need to return 3 Hours Worked @jonhmchan

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

3:00 PM Train to Florence I get another two hours on the train to work 3 Hours Worked @jonhmchan

Slide 47

Slide 47 text

Write some more code Picking up where I left off from lunch 5 Hours Worked @jonhmchan

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

5:00 PM Arrive in Florence All my individual work done for the day 5 Hours Worked @jonhmchan

Slide 50

Slide 50 text

6:00 PM Meetings Two hour block to do meetings with New York 5 Hours Worked @jonhmchan

Slide 51

Slide 51 text

8:30 PM Dinner Start writing up my notes for teammates 7 Hours Worked @jonhmchan

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

9:30 PM Send notes to team Day is finished and you can still get a drink if you want 8 Hours Worked @jonhmchan

Slide 54

Slide 54 text

Thing I learned It can work The experiment was successful, and I’ve been nomadic three times now. If the infrastructure is in place, nomadism can work. Most productive at night When everyone is asleep and not doing anything, this was when I was most productive. It also meant stable internet at home. Stay in one place longer I was most productive when I was in a place for more than a week. It let me plan correctly and concentrate for longer periods. I’m not on vacation Even though I was still putting in a full day’s worth of work, I had to remind my coworkers that I wasn’t on vacation! @jonhmchan

Slide 55

Slide 55 text

Q&A @jonhmchan Slides will be tweeted