|
Friday 17th November’s issue is presented by Knock |
|
Knock: Frictionless Notification Infrastructure
Building notifications gets complicated fast. Knock abstracts away the complexity of notification infrastructure by giving you a single API for managing channels like email, in-app, Slack, push, and SMS. You also get full observability and analytics about yo |
|
|
Traits I Value — Andrew Bosworth
tl;dr: 15 traits valued by the CTO at Meta: (1) Ownership: Valuing individuals who take full responsibility for their tasks, allowing others to trust that these tasks will be handled competently without constant oversight. (2) Rigor: Preferring team members who think thoroughly and exhaustively, understanding all alternatives, assumptions, and limitations to ensure well-informed decision-making. (3) Bias for Action: Appreciating those who recognize the cost of gathering information and the cost of delay, and who act decisively to maintain progress.
Leadership Management CareerAdvice |
|
|
The 100 Best Bits Of Advice From 10 Years Of First Round Review
tl;dr: "End every meeting or conversation with the feeling and optimism you’d like to have at the start of your next conversation with the person. If you envision running into this person again and how you want that to go, it’ll undoubtedly influence how you navigate a present conversation — usually for the better. Chris Fralic on how to become insanely well-connected."
Leadership Management CareerAdvice |
|
|
The Five Principles Of Modern Developer Tools
tl;dr: Engineering teams are increasingly outsourcing non-core, yet critical parts of their stack to third-party vendors. This post delves into the challenges and emerging solutions of using third-party services in your stack. It discusses five key principles of modern developer tools: code-based resource management, source control management, rich type definitions, CI/CD integration and managing tools as part of your deployment lifecycle.
Promoted by Knock DevTools Management |
|
|
Standing On The Shoulders Of Giants: Colm On Constant Work — Werner Vogels
tl;dr: “This is why many of our most reliable systems use very simple, very dumb, very reliable constant work patterns. Just like coffee urns. These patterns have three key features. (1) They don’t scale up or slow down with load or stress. (2) They don’t have modes, which means they do the same operations in all conditions. (3) If they have any variation, it’s to do less work in times of stress so they can perform better when you need them most. There’s that anti-fragility again.” Management SystemDesign |
|
|
|
“Raise your quality standards as high as you can live with, avoid wasting your time on routine problems, and always try to work as closely as possible at the boundary of your abilities. Do this, because it is the only way of discovering how that boundary should be moved forward.”
— Edsger W. Dijkstra |
|
|
A Very Subtle Bug — Nelson Elhage tl;dr: "I like to say that complex systems don’t usually fail for complex reasons, but for the simplest, dumbest possible reasons – there are just more available dumb reasons. But sometimes, complex systems do fail for complex reasons, and tracking them down does require understanding across many of the different layers of abstraction we’ve built up. This is a story of such a bug."
Debugging |
|
|
Four Kinds Of Optimisation — Laurence Tratt
tl;dr: "I have devoted more of my life to optimisation than I care to think about, and that experience has led me to make two observations: (1) Human optimism leads us to believe that we can easily know where a program spends most of its time. (2) Human optimism leads us to believe that we can easily know how to make the slow parts of a program run faster." Laurence believes there are multiple solutions and trade-offs to the second solution: Use a better algorithm, use a better data-structure, use a lower-level system and accept a less precise solution. Optimization |
|
|
Push Ifs Up And Fors Down — Alex Kladov tl;dr: The article presents two interdependent coding principles: (1) "Push Ifs Up" - move if conditions to the caller to simplify functions and enhance readability by centralizing control flow. This approach reduces bugs and makes code maintenance easier. (2) "Push Fors Down" - handle operations on batches of objects, not individually, for better performance and flexibility. This method is efficient, especially when combined with the first rule, as it streamlines processing and can enable advanced techniques like vectorization.
Tips |
|
|
How We Organise Our Very Large Python Monolith tl;dr: "I work on Kraken: a Python application which has, at last count, 27,637 modules. Yes, you read that right: nearly 28k separate Python files - not including tests. I do this along with 400 other developers worldwide, constantly merging in code. And all anyone needs to make a change - and kick start a deployment of the software that runs 17 different energy and utility companies, with many millions of customers - is one single approval from a colleague on Github." The author shares how this is an effective way of working and the monolith’s structure.
Architecture Monolith Python |
|
|
|
Activepieces: OS all-in-one automation tool.
GPT Crawler: Crawler to generate knowledge files for your GPT.
Loro: Make your app state synchronized and collaborative.
MonkeyPatch: Call an LLM in place of the function body in Python.
Tech Interview Handbook: Curated interview preparation materials.
|
|
Click the below and shoot me an email! 1 = Didn't enjoy it all // 5 = Really enjoyed it
1 … 2 … 3 … 4 … 5 |
|
|
|