Presentation: The Effective Remote Developer

Track: The Whole Engineer

Location: Ballroom BC

Duration: 2:55pm - 3:45pm

Day of week: Tuesday

Level: Intermediate

Persona: Architect, Backend Developer, CTO/CIO/Leadership, Developer, Front-end Developer, General Software, Technical Engineering Manager

Share this on:

What You’ll Learn

  • Learn how to become not only a productive member of a distributed development team, but also how to better communicate with, mentor, and guide developers from a remote location.
  • Understand that even given all the tools such as video chats and conferencing, building and maintaining trust is the real key to working effectively with others remotely.
  • Hear how Stitch Fix has built a culture of responsibility among its developers where code talks and showing demonstrable results speaks volumes.

Abstract

Being on a distributed team, working from your home or coffee shop isn't easy, but it can be incredibly rewarding. Making it work requires constant attention, as well as support from your team and organization. It's more than just setting up Slack and buying a webcam. We'll learn what you can do to be your best self as a remote team member, as well as what you need from your environment, team, and company. It's not about technical stuff—it's the human stuff. We'll learn how can you be present and effective when you aren't physically there.

Interview

Question: 
QCon: You are the senior-most contributor to Stitch Fix, what does that mean?
Answer: 

Dave: In a lot of companies I might have the title of architect, but it's very much not that title to emphasize that I'm working on projects. I'm thinking about the technology, whereas a VP of engineering or a CTO might be thinking about the people and the strategy; I'm thinking about whether the technology is going in the right direction and what am I doing to make it go in that direction.

Question: 
QCon: Your talk is about being a remote developer -- being the senior most contributor at Stitch Fix and being a remote developer. That alone has to have a huge amount of challenges.
Answer: 

Dave: Yeah, and in fact, the more you get away from coding 100 percent of the time and talking with people, the remote situation becomes harder. Video chat is great, but it's not the same as being in person. So, you really have to double down on being good at communication and being clear, forming relationships, and building trust with people. Because if you don't trust somebody they're going to think you're a talking head or a person that generates email and it's really hard. So, it's challenging but I think it's achievable.

Question: 
QCon: My past job was an architect at HP and I spent probably 10 to 15 percent of my time writing code and about 40 to 50 percent of the time in meetings and the rest of the time was usually mentoring, firefighting, helping people with code issues, working through tracer bullets and those kinds of things. How do you do that as a remote developer? How do you pair up with somebody and work through a problem?
Answer: 

Dave: It's tricky. We try to do things asynchronously, like a design doc, even if it's just a one-page, quick thing so we can be aligned before we before we sync up. Maybe write a spike of code and then talk about that in a pull request. But you have to schedule time if you want to be synchronous, so I'm still trying to figure it out, because I can't have a one-on-one with all 80 people that work for us. Do I have office hours or do I just focus on certain projects? I think that trying to decide what are the things that I just can't focus on so I can focus on these others is the only way it can work.Scheduling time to have ad hoc conversations is a little weird, but if you get past it it does work.

Question: 
QCon: Who is the target persona for this talk?
Answer: 

Dave: The audience is SWEs or senior SWEs.

Question: 
QCon: What do you want that persona to leave your talk with?
Answer: 

Dave: One of our values at Stitch Fix is called responsibility and it's a mindset that means you take control of what happens to you as much as you can. So, what I've learned being remote is that responsibility. So, what I've learned being remote is that while I need the company to do things for me, there are many, many things that I can do that I have complete control over. And, I wouldn't do them without being intentional, and making sure I do them. And that is what makes it work.

So, Hopefully it will remind people that they are in control of their own destiny. And here are some specific things that if you do them consistently will help regardless of how much support you're getting on the other end.

Question: 
Wes: Can you give me an idea of one?
Answer: 

Dave: One of them would be to adopt the mindset of assuming good intentions. Right so text is cold and harsh. Even these video conferences can be rough. But if you just assume everyone is trying to help and everyone is a good person and good at their job, then you're just going to approach every problem better. But you have to tell yourself that a lot before you learn it because it kind of goes against a lot of what developers feel. So, a lot of the stuff in the talk is about the mindset we need to adopt. And then there are a couple of behaviors that that mindset might drive.

Question: 
QCon: What do you feel is the most important practice, technique or technology that a lead developer should be focused on today?
Answer: 

Dave: In general, I would say finding a way to drive things to completion expediently. Remote or not, getting things done, showing a result that is demonstrable and clear is super-important. Because talking about a result is way better than talking about a theoretical thing you can do. Having a result is great. And that's what we're here to do as developers, is to get things done, deliver them and do it well.

Speaker: Dave Copeland

Director of Engineering & Senior Most Developer @Stitchfix

David Copeland is a programmer and author. He's the author of “Rails, Angular, Postgres, and Bootstrap”, "The Senior Software Engineer" and "Build Awesome Command-Line Applications in Ruby". He has over 18 years of professional development experience from managing high-performance, high-traffic systems at LivingSocial or building the engineering team at Opower to working consulting gigs large and small. Currently, he's Director of Engineering at fashion start-up Stitch Fix.

Find Dave Copeland at

Similar Talks

Engineering Leadership, previously of Slack, Google, & Apple
Chief Knowledge Engineer @SoftEd & Agile Alliance Board Member
VP Engineering @Reddit, Inc.
Director of Vulnerability Research @Endgame
Leader Silicon Valley Innovation Center
Product Management and Marketing @Datacoral

.

Tracks

  • Architectures You've Always Wondered About

    Architectural practices from the world's most well-known properties, featuring startups, massive scale, evolving architectures, and software tools used by nearly all of us.

  • Going Serverless

    Learn about the state of Serverless & how to successfully leverage it! Lessons learned in the track hit on security, scalability, IoT, and offer warnings to watch out for.

  • Microservices: Patterns and Practices

    Stories of success and failure building modern Microservices, including event sourcing, reactive, decomposition, & more.

  • DevOps: You Build It, You Run It

    Pushing DevOps beyond adoption into cultural change. Hear about designing resilience, managing alerting, CI/CD lessons, & security. Features lessons from open source, Linkedin, Netflix, Financial Times, & more. 

  • The Art of Chaos Engineering

    Failure is going to happen - Are you ready? Chaos engineering is an emerging discipline - What is the state of the art?

  • The Whole Engineer

    Success as an engineer is more than writing code. Hear inward looking thoughts on inclusion, attitude, leadership, remote working, and not becoming the brilliant jerk.

  • Evolving Java

    Java continues to evolve & change. Track covers Spring 5, async, Kotlin, serverless, the 6-month cadence plans, & AI/ML use cases.

  • Security: Attacking and Defending

    Offense and defensive security evolution that application developers should know about including SGX Enclaves, effects of AI, software exploitation techniques, & crowd defense

  • The Practice & Frontiers of AI

    Learn about machine learning in practice and on the horizon. Learn about ML at Quora, Uber's Michelangelo, ML workflow with Netflix Meson and topics on Bots, Conversational interfaces, automation, and deployment practices in the space.

  • 21st Century Languages

    Compile to Native, Microservices, Machine learning... tailor-made languages solving modern challenges, featuring use cases around Go, Rust, C#, and Elm.

  • Modern CS in the Real World

    Applied trends in Computer Science that are likely to affect Software Engineers today. Topics include category theory, crypto, CRDT's, logic-based automated reasoning, and more.

  • Stream Processing In The Modern Age

    Compelling applications of stream processing using Flink, Beam, Spark, Strymon & recent advances in the field, including Custom Windowing, Stateful Streaming, SQL over Streams.  

Conference for Professional Software Developers