Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

Why did Amazon move from being a monolith, splitting up into services, despite obsessing about response latency? Turns out it was "software physics:" the monolith crossed the 4GB size that could be deployed in one go. Steve Huynh (Steve Huynh) joins me on The Pragmatic Engineer Podcast to talk...

79,836 görüntüleme • 11 ay önce •via X (Twitter)

0 Yorum

Yorum bulunmuyor

Orijinal gönderinin yorumları burada görünecek

Benzer Videolar

John Ousterhout is a legend in software design - and so a great person to ask: "How will AI coding tools change software engineering and design?" John is the author of A Philosophy of Software Design, taught software design at Stanford, (possibly the first and only software design class for university students) created the Tcl programming language - and currently is busy contributing to the Linux Kernel (!) In this episode of The Pragmatic Engineer, John joins me to talk about why design still matters and how most teams struggle to get it right. We dive into his book A Philosophy of Software Design, unpack the difference between top-down and bottom-up approaches, and explore why some popular advice, like writing short methods or relying heavily on TDD, does not hold up, according to John. Watch or listen: • YouTube: • Spotify: • Apple: Brought to you by our wonderful sponsors: •⁠ CodeRabbit — Cut code review time and bugs in half. Use the code PRAGMATIC to get one month free. •⁠ Modal — The cloud platform for building AI applications. Try it at --- Three of my takeaways from talking with John: 𝟭. 𝗧𝗵𝗲 𝗲𝘅𝗽𝗹𝗼𝘀𝗶𝗼𝗻 𝗼𝗳 𝗔𝗜 𝗰𝗼𝗱𝗶𝗻𝗴 𝗰𝗼𝘂𝗹𝗱 𝗺𝗮𝗸𝗲 𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗱𝗲𝘀𝗶𝗴𝗻 𝗺𝗼𝗿𝗲 𝗶𝗺𝗽𝗼𝗿𝘁𝗮𝗻𝘁 𝘁𝗵𝗮𝗻 𝗯𝗲𝗳𝗼𝗿𝗲. Currently, AI coding tools and agents are akin to “tactical tornadoes” that code fast, fix issues fast… while creating new issues and adding tech debt. John doesn’t see the current tools being able to replace high-level design. And so software design could be more important than before – thanks to more code being written than before! 𝟮. 𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗱𝗲𝘀𝗶𝗴𝗻 𝗶𝘀 𝗮 𝗱𝗲𝗰𝗼𝗺𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝗽𝗿𝗼𝗯𝗹𝗲𝗺. How do you take a large system and divide it into smaller units that you can implement relatively independently? John believes that the most important idea for all of computer science is just this – decomposition. If you can break up complicated problems into smaller parts: you can solve so many problems! 𝟯. 𝗧𝗲𝘀𝘁 𝗗𝗿𝗶𝘃𝗲𝗻 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 (𝗧𝗗𝗗) 𝘄𝗼𝗿𝗸𝘀 𝗮𝗴𝗮𝗶𝗻𝘀𝘁 𝗴𝗼𝗼𝗱 𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗱𝗲𝘀𝗶𝗴𝗻. John firmly believes that TDD is counter-productive because it forces thinking about the small details before thinking about the high-level design. This observation could explain why TDD has not gained much traction in the last decade or so! ... and a plenty more more food for thought in our discussion!

Gergely Orosz

16,506 görüntüleme • 1 yıl önce

It's always energizing to do a podcast with Steve Yegge (Steve Yegge, engineer+author, formerly at Amazon+Google, creator of Gas Town). Timestamps: 00:00 Intro 01:43 Steve’s latest projects 02:27 Important blog posts 04:48 Shifts in what engineers need to know 10:46 Steve’s current AI stance 13:23 Steve’s book Vibe Coding 18:25 Layoffs and disruption in tech 31:13 Gas Town 40:10 New ways of working 51:08 The problem of too many people 54:45 Why AI results lag in business 59:57 Gamification and product stickiness 1:04:54 The ‘Bitter Lesson’ explained 1:07:14 The future of software development 1:23:06 Where languages stand 1:24:47 Adapting to change 1:27:32 Steve’s predictions Brought to you by: • Statsig – ⁠ The unified platform for flags, analytics, experiments, and more. • Sonar – The makers of SonarQube, the industry standard for automated code review. • WorkOS – Everything you need to make your app enterprise ready. Three interesting thoughts from Steve that we talked about in this conversation: 1. Reading ability is becoming a blocker for wider AI adoption. Some struggle with walls of text that current AI tools produce, and Steve predicts that in the very near future, most people will program by talking to a visual avatar, not reading terminal output because he observes that five paragraphs is already a lot to read for many devs. 2. What software engineers need to know keeps changing. In the 1990s, any decent software engineer knew Assembly, and today almost no decent developer knows it because Assembly has long been superseded by technical progress. What engineers “need” to know these days is different from the ‘90s and that process continues with AI, changing the parts of the craft that are essential for devs. We grumble about this but that won’t change anything by itself. 3. There’s a “Dracula Effect” where AI-augmented work drains engineers faster than traditional work. This is because AI automates the easy tasks, meaning that engineers are stuck doing high-intensity thinking all day. Steve says you may only get three daily productive hours at max speed, but during that time, you could produce 100x more output than before.

Gergely Orosz

38,047 görüntüleme • 3 ay önce

Why did Meta build its own internal developer tooling instead of using industry-standard solutions like GitHub? And what do their systems "Sandcastle," "Landcastle", "Butterflybot" and "Phabricator" do? Tomas Reimers, former Meta engineer and co-founder of Graphite , joins the show to talk about Meta's custom developer tools – many of which were years ahead of the industry. Watch or listen: • YouTube: • Spotify: • Apple: Brought to you by our wonderful sponsors: • Swarmia — The engineering intelligence platform for modern software organizations. Start a free trial at • Sentry — Error and performance monitoring for developers. Get 3 months of the Team Plan for free at --- Three of my biggest takeaways from our conversation: 𝟭. “𝗦𝘁𝗮𝗰𝗸𝗲𝗱 𝗱𝗶𝗳𝗳𝘀” 𝗺𝗮𝗸𝗲𝘀 𝗮 𝗹𝗼𝘁 𝗼𝗳 𝘀𝗲𝗻𝘀𝗲 𝗶𝗻𝘀𝗶𝗱𝗲 𝗰𝗼𝗺𝗽𝗮𝗻𝗶𝗲𝘀. However, it makes less sense when working on, e.g., open source projects. Perhaps this is a reason that GitHub has not added support for this workflow — even though it’s popular inside companies like Meta or Uber. We previously did a deepdive on Stacked Diffs (and why you should know about them). 𝟮. 𝗧𝗵𝗲𝗿𝗲 𝗰𝗼𝘂𝗹𝗱 𝗯𝗲 𝗮𝗻 𝗶𝗻𝗱𝘂𝘀𝘁𝗿𝘆-𝘄𝗶𝗱𝗲 𝗺𝗼𝘃𝗲𝗺𝗲𝗻𝘁 𝘁𝗼 𝗺𝗼𝗻𝗼𝗿𝗲𝗽𝗼𝘀: at mid-sized and larger scaleups and tech companies. Tomas sees a lot of scaleups they work with the move from polyrepos (several repositories) to monorepos. Moving to a monorepo is still a lot of work and requires custom tooling: and this is why it was limited to the largest tech companies in the past. Interesting to hear about this change! 𝟯. 𝗔𝗜 𝗰𝗼𝗱𝗶𝗻𝗴 𝘁𝗼𝗼𝗹𝘀 𝗶𝗻𝗰𝗿𝗲𝗮𝘀𝗲 𝘁𝗵𝗲 𝗶𝗺𝗽𝗼𝗿𝘁𝗮𝗻𝗰𝗲 𝗼𝗳 𝗾𝘂𝗮𝗹𝗶𝘁𝘆 𝗰𝗼𝗱𝗲 𝗿𝗲𝘃𝗶𝗲𝘄𝘀. We’ll see more code churned out by AI: but an engineer needs to review it before it goes out. It’s a good question how we can stick to thorough code reviews when it is so tempting to just say, “Looks good to me (LGTM)” and have the seemingly correct code merged.

Gergely Orosz

37,722 görüntüleme • 1 yıl önce

Why is observability so hard to do well - and so expensive, in general? What is "Observability 2.0" and is Open Telemetry any good? In today's episode of The Pragmatic Engineer Podcast, we answer all of these with Charity Majors , co-author of the O'Reilly book "Observability Engineering," former engineer at Parse/Facebook, and cofounder and CTO at Honeycomb Watch it here: • YouTube: • Apple: • Spotify: • Summary and transcript: Brought to you by our wonderful sponsors - check out their offerings: • Sonar — Trust your developers – verify your AI-generated code. • Vanta — Automate compliance and simplify security with Vanta ---- Topics we cover in this episode: • What is observability? Charity’s take • What is “Observability 2.0?” • Why Charity is a fan of platform teams • Why DevOps is an overloaded term: and probably no longer relevant • What is cardinality? And why does it impact the cost of observability so much? • How OpenTelemetry solves for vendor lock-in • Why Honeycomb wrote its own database • Why having good observability should be a prerequisite to adding AI code or using AI agents • And more! --- My biggest takeaways: 1. The DevOps movement feels like it’s in its final days, having served its purpose. 2. Lots of people get dashboards wrong! Charity doesn’t think that static dashboards are helpful to engineering teams at all. In fact, misusing dashboards is one of the most common observability practices. 3. Observability will be especially important for AI use cases in these ways: a) o11y for LLMs: to get data on how they behave and to be able to debug behaviors. This is relevant for teams building and operating AI models. b) o11y for code generated by AI: the generated code should have the right amount of observability in place. Once the code is deployed to production, developers need to be able to get a sense of how the code is behaving there!

Gergely Orosz

25,485 görüntüleme • 1 yıl önce