18 things that companies with a good developer culture (mostly) have. A thread.

First, some basics.
1. Psychological safety & a blameless culture. You can be yourself without fear.
2. Fair compensation, roughly on par with the market.
3. Common-sense flexibility w working hours.
Next: clarity & collaboration
4. Understand the "why" before starting work.
5. A backlog that devs also contribute to.
6. Communicating directly with others, not through e.g. managers
7. Working with other disciplines (e.g. product, UX)
8. Celebrating that people take initiatives
Sustainable engineering culture
9. Functionally complete != production ready
10. Code reviews and testing are part of the everyday dev process.
11. CI and CD. 'nuff said.
12. Healthy oncall. Fixing poor oncall has priority over product work.
13. Internal open source model.
Career progression
14. Engineering managers are technical.
15. A career ladder for devs, with expectations per level
16. Parallel IC & management tracks, with clarity on how to move between them.
17. A culture of giving & reveing feedback.
18. Professional growth & mentorship
I wrote these up in a longer form here: blog.pragmaticengineer.com/the-developer-…

What else have you seen indicative of good/healthy engineering culture?

• • •

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

Keep Current with Gergely Orosz

Gergely Orosz 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 @GergelyOrosz

22 Oct
"Can you summarize this 200-page dev resume book in 7 tweets or less?"

Challenge accepted. Here we go.

1. Know what the goal of your resume is. This is what most people get wrong. It's not about your professional history. It's to get that next call with the recruiter/HM. (1/7)
2. Understand how the hiring pipeline works: who will read your resume, and what your competition is at smaller, vs larger companies.

Know that an employee referral *dramatically* increases your chances of passing the resume screen round. (2/7)
3. Use an easy-to-scan template. Recruiters do a quick scan, then a thorough scan (if they find key details in the quick scan). Make this "quick scan" as easy as possible.

Here's a good template from the book: blog.pragmaticengineer.com/the-pragmatic-… (3/7)
Read 7 tweets
21 Oct
I've been writing the ebook thetechresume.com on the side for a few months, and launched it 13 days ago.

In this 13 days it made $13,000, and $18K since I started, with more than 2,000 customers.

This is about 13x what I expected. Thread on how it got here.
It all started with COVID, layoffs happening across the tech industry, and me wondering how I can help. I offered to do a few resume reviews, being a hiring manager myself:

I thought I'll get a handful of responses. I got 300+. There was no way I could give thorough feedback on all of it. So I decided to scale myself: do in-depth review of the first 50, take notes, then send those compiled notes to others. Here's that PDF: thetechresume.com/samples/origin…
Read 12 tweets
6 Sep
As usual, @mipsytipsy breaks down what *good* engineering management incentives look like: charity.wtf/2020/09/06/if-…

I’ll write about my (similar) take in more depth. But a few facts most people are surprised about, on what becoming an eng manager at Uber is/was like (thread):
1. It’s not a promotion, level or money wise. EM1 == Sr Eng comp wise. Sr EM == Staff Eng. Director == Sr Staff. And so on.

When I moved to management, my comp actually dropped: before I was at the “top” of Sr eng, but now closer to the bottom of EMs when it came to bonuses.
2. You don’t just “become” a manager. You *have* to go through an apprentice manager program and graduate. Graduating is ridiculously hard: as hard as manager promo. My case had 20 stakeholders giving feedback on me. Why this hard? To avoid making poor managers full-time EMs.
Read 8 tweets
8 Jul
“Why do companies ask data structure&algorithm questions? It’s not like you’d use this day to day...”

At my past 3 companies - Skype/Microsoft, Skyscanner, Uber - I needed to use them to write some code, and *especially* to understand things. Here’s some examples. A thread.
At Skype, building Skype for Xbox One, the platform was missing a bunch of basic libraries. We built a navigation framework on top of WinJS that needed to keep track, and in some cases, traverse the DOM tree. #Trees, #DFS, #BFS
Also at Skype, one of the devs was obsessed with performance. For the contact list sorting, he built his own algo. I used the O(n) approach to tell him why this was silly. Then built a faster version. Then we benchmarked the built-in sort which was faster #sorting #facepalm
Read 10 tweets
3 Jul
Seven pieces of advice I would give myself to when I started out in software engineering (aka things I wish I learned or did earlier). A thread.
1. Take the time to read one or two books a year on software engineering. I don't mean skimming: I mean actually reading, taking notes, talking about it with others, taking the book a few chapters a week.

I didn't do this for the first five years of my career. Wish I had.
2. Learn two programming languages in your first two years' of coding, and learn one of them *really* well. Down to how-the-compiler-works well.

I mastered C# in-depth, PHP my "not-so-good" language. After this, picking up Java, Ruby, Swift, Go, Python were all so much easier.
Read 8 tweets
26 Jun
How can you develop against prod, doing it safely and securely?

And how can you do the reverse: route prod traffic to a dev environment? Run the app store app on your phone, and have it trigger a breakpoint on your laptop?

Here's a working solution. Thread with some boxes.
1. We want our dev service, running on our laptop to talk to a production service. For example, we're modifying the onboarding service in dev that needs to access the login service in prod. Or something like that.

Point is, we can't just talk to it directly.
2. Let's add a proxy client that will forward messages. And let's box all of this up into a VM that can run locally on our dev machine (we'll see why we'll use a VM in a minute).
Read 14 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

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

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!