Nick Schrock Profile picture
Aug 20, 2019 25 tweets 5 min read Read on X
1/ Another (belated) tweetstorm on the @software_daily FB engineering podcast series. This time starring my friend @tomocchino. It aired about a month ago. See original here: softwareengineeringdaily.com/2019/07/18/fac…
2/ Tom is the director of the React, Relay, web core teams, among others, and is an extraordinarily talented manager. The output and happiness of his teams speaks for itself. @the_prion covered a bunch of topics in interview. I'll select a few to comment on.
3/ Jeff asked Tom about FB's hard pivot to mobile starting in 2011, a perpetual series theme. This is a long section but one quote stands out:

"But when the company shifted to mobile, engineering-wise, we almost became a different engineering organization"
4/ My commentary: You might dismiss the mobile shift as “oh big deal it’s just a new iOS app”. Not just a frontend rewrite, but a total rearchitecture of the entire site, and required an organizational transformation, because underlying realities changed in a big way.
5/ Jeff asks about FB vs other cultures, especially w/r/t to infra teams: Tom notes that fb OSS infra projects were always built to solve specific problems. And that they were always embedded within our product monorepo.
6/ That means product always developed against the latest rev of infra projects. This means, say, the React team has to actively manage breaking changes in real time and rewrite product code. They live the consequences of their decisions in real time. Powerful dynamic.
7/ That means the React team is always continually testing their new ideas against real product code, which the the team is empowered to change, because of the shared ownership model within the monorepo. This can be chaotic but, if that is managed, the upside is huge.
8/ Jeff notes that problems at FB/GOOG et all are often leading indicators of problems that will hit others. Tom points to the work his team has done to scale the number of engineers in a codebase.
9/ Tom mentions some excellent keywords: declarative, immutable, functional. Embracing these concepts has technical benefits (e.g. easier to async and multiple cores) but real super power is guarantees they provide. These make it easier to add engineers to codebase safely.
10/ Jeff: “What’s the 10 year vision for React” Tom: Empowering both beginners and experts to build amazing frontends on any platform. React Native and ReactVR provide baselines on those platforms respectively. “Learn Once. Write Anywhere.” without papering over platform diffs.
11/ Jeff: “What was your biggest mistake as a manager?” Tom: “Not trusting the people I support enough early on.” He micromanaged in order to ensure quality of execution.
12/ My editorial comment here: I really like the term “Eyes on. Hands off.” to describe this mode of operation. Managers usually need to ensure *some* level of technical execution. Tom doesn't. React team is like the Golden State Warriors of JS :-).
13/ Tom continues: Actually, successful management has nothing to do with (micromanaging). Successful management is about providing support, encouragement, constraints, expectations, etc.
14/ Now for the part of the podcast that will be truly jaw-dropping for most managers out there. It's about FB's engineering mobility values and their recruiting infrastructure. Jeff starts by asking how engineering mobility has worked as company scaled.
15/ Tom insists that cross team mobility still a thing and has been institutionalized. Engineers encouraged to do "hack-a-months" on other teams. When people do move managers don't freak out generally. Why? One reason: "Because there is an endless supply of new engineers"
16/ Editorial comment: This is a statement totally alien to most software companies. This is a luxury of FB having tons of money and a super sophisticated, centralized recruiting machine, with tons and tons of tooling to support it.
17/ Check this out: When Tom needs an engineer he can enter in a new position in a tool and it gets filled by internal applicants or by bootcamp graduates. Often this gets resolved in <1 week.
18/ Another editorial comment: This also a function being part of a growing company. There are lots of non-zero-sum relationships internally. So wars over talent less frequent. One team winning doesn't mean another is losing.
19/ Tom also frames an engineer or manager moving as an opportunity to grow other people, expand their responsibilities etc. This mobility also keeps the organization interconnected and coherent. People maintain practices and relationships after they move.
20/ Jeff: Someone said about you: “Tom is good at making a group at a big company feel like a small company. Why is that important?“ Tom: "People do their best work when they don't feel like a cog in the machine." Really important for people to have friendships within team.
21/ Tom: You have to understand how your work connects to company but you also have to like coming to work. "I want them to think about going to bed on Sunday actually looking forward to get into the office on Monday morning."
22/ Jeff: What you're saying is that you want to cater to an engineer's strengths rather than coping with their weaknesses. But work still has to get done, even if undesirable work or work that might not be a strength. How do you cope with that?
23/ Answer so good will just quote verbatim. Tom: "It hasn’t been a struggle thus far, and I think the reason for that is because if you create an environment where the people you support know that you have their back, they will have yours."
24/ Tom (cont) "The people that I support recognize that if I come to them with a crisis where this really needs to be staffed or we really need to work on that, they will find ways to make sure that that work gets done even if it's not their number one choice."
25/ There were a *ton* of other gems in the interview, but wanted to limit this tweetstorm to be shorter than last ones. But I think you get a sense just how talented @tomocchino is and some of the unique properties of FB management culture and org infrastructure.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Nick Schrock

Nick Schrock Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @schrockn

Sep 24, 2020
1/ Last week, @s_ryz published a blog about how you can use Dagster to dramatically improve the developer lifecycle and increase productivity for pyspark developers creating production workflows. dagster.io/blog/pyspark
2/ Amongst PySpark developers it’s quite common to develop directly against their deployment environment: Databricks, EMR, Dataproc, etc with little tooling support. The resulting workflow can be very painful.
This is not atypical:

- Fire up Spark cluster. Launch my job.
- Wait 10 minutes.
- Click through multiple UIs. Whoops. Forgot to push my updated code.
- Push updated code to the cluster.
- Launch job. Wait another 10 minutes.
- Discover this error:
Read 11 tweets
Sep 11, 2020
1/ We had our first @dagsterio community meeting on Tuesday which will now be monthly. Video here:

Special thanks to @treff7es from @prezi for talking through process of moving their entire system to Dagster
2/ @gasnerpants discussed recap of our latest major release docs.google.com/presentation/d…
3/ @s_ryz discussed our 0.10.0. Versioning our computations and produced assets allowing fully incremental compute during development and backfilling will be a total gamechanger. Lots of other goodies here. docs.google.com/presentation/d…
Read 5 tweets
Aug 11, 2020
1/ Dagster has been public over a year. Last week we pushed out a new version that marks a new level of maturity for the project. We now call Dagster a data orchestrator. Here is a post about what we’ve built, learned, and principles we've developed:

medium.com/dagster-io/dag…
2/ Over the past decade, there have been huge advances in data technology. Advanced computational runtimes and cloud data warehouses built on infinite, cheap storage and elastic compute are available to any organization with the right tools and sufficient resources.
3/ We believe the primary challenges today are higher in the stack and are abstraction and tooling problems. Data computations are hard to test, slow to build, disorganized, and under-abstracted. Uncontrolled complexity is the norm. Their needs are not met by the ecosystem today.
Read 25 tweets
Jul 16, 2020
1/ elementl.com/2020-2021-engi…

This year students are facing the prospect of returning to a degraded college experience while still paying full tuition. We at Elementl suggest an alternative: a well-paid, year-long fellowship where you work on an open source project, Dagster.
2/ The model already works really well. Just look at Waterloo, one of the best engineering schools in the world. With this you can make your own Waterloo experience. You can work from anywhere and would be treated as a full-time employee with commensurate pay and benefits.
3/ We're not encouraging people to drop out. We think of this like gap year of applied learning.
Read 9 tweets
Jun 16, 2020
1/ First community meeting for Dagster users going through our biggest release yet, 0.8.0. Fantastic meeting with really great questions at end. This was for existing users so we jumped right into advanced stuff.
2/ Will be posting in detail about the release next week. But there are huge internal changes in addition to user-facing features. A little preview of some of the interesting bits below.
3/ Core architecture changes: Our system processes and tools are now totally separate from user code. They no longer share python deps and can even be on different python versions. You can also organize it so that teams can keep their deps/pipelines separate from each other.
Read 13 tweets
Feb 27, 2020
Happy to announced that the @dagsterio team has pushed out our latest major rev, 0.7.0. In the last six months we've moved from a tool suitable for local development, to a hostable one for smaller pipelines, to one for large scale pipelines in modern infra.
First: a reskin and new navigation scheme for our frontend, Dagit. We think that Dagit sets a new standard for frontend in data tools. We also have dramatically improved rendering perf for large pipelines (1000s of nodes) along with the ability to subselect with a condense syntax
We also have a gorgeous new execution viewer for local development and production ops. It allows you a quickly navigate to running and failed tasks, filter down to upstream and downstream tasks only, and view our structured logs. It is also just really fun.
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(