tl;dr in tech - Issue #105
A Few Words On Taking Notes
By: Werner Vogels
tl;dr: Werner, the CTO at Amazon, explores note-taking. He values the Cornell Method for its structure and analog approach: each notebook page has 4 sections: (1) Title. (2) Notes. (3) Keywords and questions. (4) Summary. Werner discusses potential AI enhancements and believes handwritten note-taking increases comprehension and retention.
Making Software With 4,999 Other People
By: Brandon Willett
tl;dr: Brandon shares what he learned from his time at Datadog, broken into 3 sections: software, projects and people. Takeaways include: (1) Keeping the development cycle near-instantaneous with features like microservices and feature flags is both productive and enjoyable. (2) Take advantage of recency bias to solve problems right after incidents. (3) Prefer projects with small organizational scopes to avoid communication breakdowns and motivate the team.
Is This An Emoji?
tl;dr: The author faced challenges with data validation while implementing emoji tags in their app. They needed to ensure that the tags entered by users were valid emojis and not just arbitrary text. They tried various approaches like regex and Unicode character ranges, but each had its limitations and drawbacks.
Manage Your Priorities And Energy
By: Will Larson
tl;dr: Will reflect on his shift from a 'company, team, self' framework to an eventual ‘quid pro quo' approach during his management tenure at Uber. His ‘quid pro quo' approach is: (1) Generally, prioritize company and team priorities over your own. (2) If you are getting de-energized, artificially prioritize some energizing work. Increase the quantity until equilibrium is restored. (3) If the long-term balance between energy and proper priorities can’t be balanced for more than a year, stop everything else and work on solving this issue e.g. change your role or quit. Will emphasizes the importance of remaining flexible and curious.
Throw Away Your First Draft Of Your Code
By: Nicole Tietz-Sokolskaya
tl;dr: Software teams should prototype or create a "first draft" of code for new features and then discard it. Prototyping allows teams to anticipate issues and understand the full complexity of a new feature. Despite seeming wasteful, this approach actually saves time by preventing unforeseen problems during the development process. However, it's essential to discard the prototype code to keep the process efficient and the codebase clean.
Stopping At 90%
By: Austin Henley
tl;dr: It’s common to stop at 90% of a project’s completion since the project has concrete deliverables that can be measured. The remaining 10% is more difficult to track. Austin discusses common activities to get from 90% to 100%: (1) Present the work to other teams. (2) Broadcast an email with the takeaways so that the rest of your organization knows about it. (3) Put the code somewhere that your coworkers can make use of later. (4) Write a blog post about it. Post it on Twitter, HN, and Reddit. (5) Sketch out a next-steps document, even if you have no plans to continue, that explains what you would do next and why. (6) Look for adjacent projects that could benefit. (7) Find someone that can poke holes in your work, then go address them.
Building And Operating A Pretty Big Storage System Called S3
By: Werner Vogels
tl;dr: A repost of an article by Andy Warfield, VP of S3, reflects on the vast complexity and operational scale of Amazon's storage software system. Andy discusses the significance of recognizing and mitigating organizational scaling issues, similar to optimizing systems. He also discusses management’s approach to foster team ownership for problem-solving instead of dispensing solutions has led to more engaged and successful engineering outcomes.
What Is A Senior Software Engineer At Wise And Amazon?
By: Gergely Orosz
tl;dr: Gergely delves into senior software engineer roles at Wise and Amazon. At Wise, senior engineers lead significant projects, contribute to feature planning, and require good communication and problem-solving skills. At Amazon, the equivalent role deals with ambiguity, leads projects, communicates technical ideas efficiently, and ensures that the team's success doesn't solely rely on them. While definitions of 'senior' vary across the two companies, clear expectations across companies include project leadership, problem-solving skills, and effective communication.
Shamir Secret Sharing
By: Max Levchin
tl;dr: “This is the story of a catastrophic software bug I briefly introduced into the PayPal codebase that almost cost us the company (or so it seemed, in the moment.) I’ve told this story a handful of times, always swearing the listeners to secrecy, and surprisingly it does not appear to have ever been written down before. 20+ years since the incident, it now appears instructive and a little funny, rather than merely extremely embarrassing.”