As a software developer, you may be called upon to perform some of these tasks in your career.

How well a CS degree prepares you for these tasks (and whether it even should prepare you for these) is left as an exercise to the reader.

🧵
1/
Make a behavioral change to a medium-to-large system that you don't understand. 2/
The system is "slow". Figure out why. 3/
Review a colleague's code and provide meaningful feedback. The code may be in a part of the codebase that you don't have any personal experience with. 4/
Write user-facing documentation (this includes API docs). 5/
The system is down. Help get it back up as quickly as possible. 6/
The system is down. To get it back up, you will need to perform a number of repetitive manual actions. Alternately, you can write a script to automate them. Determine which approach to use.

7/
Solicit advice from a colleague about a design problem you're facing, given that you've thought about the problem for a lot longer than they have. 8/
Identify that progress will require a meeting, organize the meeting, run it, and capture the outcome. 9/
Propose, in writing, your favored solution to the technical problem. Solicit and address concerns from your colleagues. 10/
Communicate the status of your work-in-progress to your manager in a way that both reflects your uncertainty and is useful for your manager. 11/
Take part in quarterly planning of development work, prioritizing a set of proposed work. 12/
Advocate for reliability-related work, since it will never be driven by customer asks (although they will be upset if the service goes down). 13/
Analyze a system outage to understand how it happened (one of my personal favorites). 14/
Migrate your service from one platform to another without impacting customers. 15/
Convince a team that consumes a platform you provide to migrate from the old version to the new one, and then retire it. 16/
Figure out how to interface the system you are working on with another system, that is poorly documented. 17/
Make a change to a system that was implemented in a language/platform that you have little-to-no experience with. 18/
Debug a build that broke inexplicably. 19/
Review someone else's design proposal, and provide meaningful feedback. 19/
A technical decision needs to be made, and the stakeholders are sharply divided on the proposed approaches. 20/
Marshall support for your proposed technical approach through one-on-one conversations with potential supporters. 21/
Identify how your organization's power dynamics constrains the types of technical solutions that are actually possible, so you don't try to do something that has no practical chance of succeeding. 22/
Use the whiteboard to help bring your peers to a shared understanding of some technical issue that you are working on. 23/
Effectively coordinate with your peers when dealing with an ongoing outage or other incident. (Hit the tweet limit, so stopping for now). 24/24
I'll randomly do some more as the mood strikes me.

Instrument your code to make it easier to reason about its behavior when it's running (i.e., improve operability).

25/
Describe, in writing, examples of the human activities that your software system is intended to support.

26/
Develop a deeper understanding of a system that you now work on but didn't build. 27/
Look into the history of how an internal system came to be implemented the way it was. 28/
Man, I wish I had a soundcloud.

• • •

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

Keep Current with @norootcause@hachyderm.io on mastodon

@norootcause@hachyderm.io on mastodon 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 @norootcause

Jul 30, 2022
I’m honestly more inclined to believe the Secret Service did not intentionally delete the texts given that their IT was doing a migration and they had to do a factory reset as part of it. I can totally see this happening in a migration.

secretservice.gov/newsroom/relea…
People are like “how could this happen” and I’m like “I totally see how this could happen in a migration”. Migrations are one-off things. Lots can go wrong. Lots often does.
“The Secret Service notified DHS OIG of the loss of certain phones’ data, but confirmed to OIG that none of the texts it was seeking had been lost in the migration.”

It seems pretty important to verify whether this statement is true or false. Has there been any reporting on it?
Read 5 tweets
Mar 13, 2022
A 🧵 on barriers to problem detection, taken from @KleInsight 's excellent paper titled "The strengths and limitations of teams for detecting problems" 1/
An anomaly may be masked (by other symptoms, other problems, background variability) 2/
An anomaly may be diffuse, in that a range of small, seemingly innocuous clues must be integrated in order to see what is going wrong 3/
Read 30 tweets
May 1, 2021
Twitter thread of me reading the @auth0 RCA that was just released.
They have a feature flag service, which is fronted by a cache. The cache suffered from saturation:

"An increase in traffic exceeded the caching capacity of that service and caused it to stop responding in a timely manner".
The feature flag service is called by "front-end API nodes". These clients of the feature flag service were designed to be able to handle a failure of the cache: they fell back to calling the feature flag service directly.
Read 8 tweets
Jan 9, 2021
Resilience engineering makes the following seemingly contradictory claims:

1. Small incidents don’t provide insight into big ones.
2. To get insight into the nature of big incidents, study the small ones.

How can that be?

Here comes a thread.
. @sidneydekkercom puts it like this: “Incidents do not precede accidents. Normal work does.”

This has implications for both points.

(Terminology may be a little confusing here because what software people call “incidents” is what safety people call “accidents”.)
For the first point, the idea is that the historical distribution of small incidents doesn’t give you any insight into how likely the next big one is. Small incidents provide insight into how likely other small incidents are, but not how likely the *big* incidents are.
Read 7 tweets
Jul 30, 2020
Learned about the "McNamara fallacy" the other day and I just love it: en.wikipedia.org/wiki/McNamara_…
"The first step is to measure whatever can be easily measured. This is OK as far as it goes."
"The second step is to disregard that which can't be easily measured or to give it an arbitrary quantitative value. This is artificial and misleading."
Read 6 tweets
Jul 3, 2020
I recently listened to a @BookTV podcast interview with Bryan Caplan about his book "The Case Against Education". That inspired a thought experiment, which I'll describe in this thread:
Caplan argues that only 20% of the economic value of a college degree is in the development of skills useful for employment, and that the other 80% of the value is just signaling.

Question: what would happen if we could drive the signaling down to 0?
This thought experiment is going to impossible to implement in practice, it's just to run the mental simulation in your head. So bear with me.
Read 9 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!

:(