- How big technology changes happen at slack: Explore, expand, migrate. They’ve chosen a practice that involves 3 distinct phases where anyone (or nearly anyone?) can advocate for a new technology, but they must convince their peers of its value and do that by getting other people in the org to use it.
- Most experiments fail fast which is something they like. The ones that do achieve widespread adoption make it to the migration phase where the company actively roles it out across all things.
- It sounds great, but my question would be how do you stop a proliferation of technologies from being put to use in different spots. The maintainability of a system in such a state seems monstrous. If you bake something new that no one else uses deeply into a service, you have to learn that new thing in order to properly support and enhance that service. Does every service have 1 or 3 things like this uniquely theirs at Slack? How does this shake out? How do experiments work?
- There has to be some friction to get to phase 1. (Along with a bunch of communication across the immediate team) You always start with a real problem you need to solve. Can you find more than 1 of a few other people who are also concerned about your problem and talk through it with them?
A short talk on the transition to arm64 instance types from intel @ aws by Shelby Spees. She talks about how they did it safely and why. Having clearly defined goals up front was important. (For honeycomb this included consistently low latency for users and reliable+fast storage of data coming from collectors.) For any change you’re making, there should be measurable value for the business or customer
Here’s a nice slide reminding me that taking care of people is super important
- Batch operations in REST apis: Interesting. I have never considered the implications of trying to support batch operations using a RESTful style interface. When I use REST apis, I’m usually doing things one-at-a-time (make a new thing, delete this thing) and the urls I poke at to do this largely represent a single entity. Not so I guess when you’re thinking about batch operations. The other interesting side of this is how do you indicate response status. (200 if everything’s ok, but what about partial failure?) Now clients are probably going to have to parse the response body and try to figure out what happened …
- Cloudflare waf: The waf has been redesigned and rewritten from the ground up. A very capable piece of tech my workplace is currently evaluating for use with our software (among other Cf products :))
- Commits are snapshots not diffs: A good conceptual primer about what git is trying to do for you under the covers. The data model is actually quite simple, and elegant. This is a great narrative
- Languishing: Something between depression and flourishing. A feeling of blah. Not a lack of energy, but more a lack of an inner need to move. The author suggests flow can be a powerful tool to help avoid this state of mind. (Becoming absorbed in the task of the moment. Losing track of time. A challenge that is surmountable but just hard enough.) A suggestion as a way to get there is to protect ones time
- Just giving everyone a pager isn’t the goal. We have to ensure the system isn’t generating a lot of noise in a way that will burn people out
- Sustainable ops
- Think about who’s carrying the pager, and one. Maybe the person with a young child shouldn’t be carrying the pager at night but can during the day
I need to rewatch this one again. I was only half paying attention. Lots to think about here.
- Service degredation at honeycomb migrating kafka cluster nodes to a new instance type: An excellent writeup of what their goals were, and some issues that came up along the way. There’s a longer form article I’d like to dig into as well. Interesting takeaway is hitting limits you didn’t know were there
- 2 Tbsp coconut oil
- 1 large yellow onion, chopped
- 4 cloves garlic, minced
- 1 tbsp minced ginger
- 1 tsp ground cumin
- 1 tsp ground turmeric
- 1 tbsp curry powder
- 1 tsp garam masala
- ¼ tsp cayenne add more if you like your indian food spicy!
- ¼ tsp mustard seeds
- 1½ cups of dried brown or red lentils
- 3 cups water
- ½ tsp salt
- 2 tomatoes, chopped
- ¼ cup fresh cilantro, chopped + extra for garnish
- On your instant pot, press the ‘Sauté’ button, add heat the oil.
- Add onion and cook until translucent.
- Stir in garlic, ginger, cumin, turmeric, curry powder, garam masala, cayenne, and mustard seeds and cook for another minute until fragrant.
- Hit the ‘Cancel’ button and add lentils, water, salt, chopped tomatoes and mix to combine.
- Cover the instant pot with the lid, and close the pressure valve. Press the ‘Pressure Cookl’ button and set the cooking time to 10 minutes.
- After the timer sounds, wait 10 mins before opening the pressure valve.
- After 10 minutes, open the valve and stand back!!!!
- Mix the lentil mixture and add the chopped cilantro.
- Stir to combine, and serve over basmati rice or with naan (regular or garlic), and top it with fresh cilantro.