56,966 blogs · [ { "id": "01a0879c-f2b9-70ae-9b73-6d021b7c7a33", "title": "Lucas' Laws of Project Management", "url": "https://lucasfcosta.com/blog/laws-of-software-project-management/", "published_at": "2026-06-21T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5ae2ed8bb", "title": "Backpressure is all you need", "url": "https://lucasfcosta.com/blog/backpressure-is-all-you-need/", "published_at": "2026-05-23T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5aeda046e", "title": "Design docs considered harmful", "url": "https://lucasfcosta.com/blog/design-docs/", "published_at": "2026-02-17T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5afb0c73d", "title": "Why your retrospectives don't work and how to fix them", "url": "https://lucasfcosta.com/blog/retrospectives/", "published_at": "2025-11-01T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b00e791b", "title": "How to do a successful Hacker News launch", "url": "https://lucasfcosta.com/blog/hn-launch/", "published_at": "2023-08-21T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b04a2015", "title": "Why backlogs are harmful, why they never shrink, and what to do instead", "url": "https://lucasfcosta.com/blog/backlogs-are-useless/", "published_at": "2023-02-07T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b0a4adbb", "title": "How to distort Scrum until it no longer works", "url": "https://lucasfcosta.com/blog/distorting-scrum/", "published_at": "2022-10-04T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b193241a", "title": "You don't need Scrum. You just need to do Kanban right.", "url": "https://lucasfcosta.com/blog/scrum-versus-kanban/", "published_at": "2022-10-02T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b2684439", "title": "Why deadlines are pointless and what to do instead", "url": "https://lucasfcosta.com/blog/deadlines/", "published_at": "2022-09-15T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b301558c", "title": "Useful engineering metrics and why velocity is not one of them", "url": "https://lucasfcosta.com/blog/engineering-metrics/", "published_at": "2022-08-31T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b3b1b029", "title": "How creating a bot farm in an MMORPG got me into programming", "url": "https://lucasfcosta.com/blog/how-i-got-into-programming/", "published_at": "2022-08-31T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b3bb4628", "title": "The Minimum Viable Nothing: ideas to validate products without building them", "url": "https://lucasfcosta.com/blog/minimum-viable-nothing/", "published_at": "2022-08-24T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b3bb98d8", "title": "How not to build a bike shed", "url": "https://lucasfcosta.com/blog/bikeshedding/", "published_at": "2022-08-19T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b4b3e346", "title": "Why tall hierarchies slow organizations down and how to fix them", "url": "https://lucasfcosta.com/blog/decision-making-hierarchies/", "published_at": "2022-08-13T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b5154861", "title": "Why your daily stand-ups don't work and how to fix them", "url": "https://lucasfcosta.com/blog/how-to-improve-daily-standups/", "published_at": "2022-08-07T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b54a74ec", "title": "How and why exploiting uncertainty makes products more profitable", "url": "https://lucasfcosta.com/blog/exploiting-uncertainty/", "published_at": "2022-08-05T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b5b7c2ff", "title": "Talking to your customers: a disruptive Agile framework", "url": "https://lucasfcosta.com/blog/talk-to-your-customers/", "published_at": "2022-08-03T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b675db20", "title": "How finishing what you start makes teams more productive and predictable", "url": "https://lucasfcosta.com/blog/finish-what-you-start/", "published_at": "2022-07-19T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b7419262", "title": "Why long-term plans don't work and how to fix them", "url": "https://lucasfcosta.com/blog/long-term-plans-dont-work/", "published_at": "2022-07-15T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b8049487", "title": "How high capacity utilisation hurts a team's performance", "url": "https://lucasfcosta.com/blog/measure-queues-not-cycle-time/", "published_at": "2022-06-12T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b821a743", "title": "UX patterns for CLI tools", "url": "https://lucasfcosta.com/blog/ux-patterns-cli-tools/", "published_at": "2022-06-01T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b9075848", "title": "My book-writing routine", "url": "https://lucasfcosta.com/blog/my-writing-routine/", "published_at": "2021-10-14T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5b9b3a2fa", "title": "Explaining explaining: a quick guide on explanatory writing", "url": "https://lucasfcosta.com/blog/explaining-in-writing/", "published_at": "2021-09-30T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5ba9922d5", "title": "How to replace estimations and guesses with a Monte Carlo simulation", "url": "https://lucasfcosta.com/blog/monte-carlo-forecasts/", "published_at": "2021-09-20T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bb20e470", "title": "Make haste slowly: quantify economics", "url": "https://lucasfcosta.com/blog/capacity-and-cost-of-delay/", "published_at": "2021-03-27T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bb403468", "title": "How much specification does a developer need?", "url": "https://lucasfcosta.com/blog/specification-and-rest-apis/", "published_at": "2020-10-24T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bbda16c0", "title": "Why does package-lock.json exist, and how does it work?", "url": "https://lucasfcosta.com/blog/lockfile-guide/", "published_at": "2020-10-17T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bc59e3b6", "title": "The most efficient way to solve problems: not having them", "url": "https://lucasfcosta.com/blog/not-having-problems/", "published_at": "2020-09-05T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bc9f1d98", "title": "Don't write software like you write books: the value of delivering early and frequently", "url": "https://lucasfcosta.com/blog/software-books-and-product-building-advice/", "published_at": "2019-08-17T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bd343397", "title": "Your terminal is not a terminal: An Introduction to Streams", "url": "https://lucasfcosta.com/blog/streams-introduction/", "published_at": "2019-04-07T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bdcf847d", "title": "How I'm still not using GUIs: A guide to the terminal", "url": "https://lucasfcosta.com/blog/terminal-guide-2019/", "published_at": "2019-02-10T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bddb670f", "title": "The Absolute Essentials for Bit Manipulation in JavaScript", "url": "https://lucasfcosta.com/blog/bitwise-operations/", "published_at": "2018-12-25T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5be72bb6c", "title": "Test-Driven Development is not about tests", "url": "https://lucasfcosta.com/blog/TDD-is-not-about-tests/", "published_at": "2018-10-18T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bf1e0a8f", "title": "A Gentle Introduction to Lambda Calculus - Part 2: Execution", "url": "https://lucasfcosta.com/blog/An-Introduction-to-Lambda-Calculus-Part-2/", "published_at": "2018-08-05T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bf52ccb2", "title": "In Praise of Plain Text", "url": "https://lucasfcosta.com/blog/In-Praise-of-Plaintext/", "published_at": "2018-08-05T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bf888ba2", "title": "A Gentle Introduction to Lambda Calculus - Part 1: Syntax", "url": "https://lucasfcosta.com/blog/An-Introduction-to-Lambda-Calculus-Part-1/", "published_at": "2018-07-29T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5bfd468c4", "title": "Y: The Most Beautiful Idea in Computer Science explained in JavaScript", "url": "https://lucasfcosta.com/blog/Y-The-Most-Beautiful-Idea-in-Computer-Science/", "published_at": "2018-05-20T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c0198ec5", "title": "Software Engineering in 100 Quotes", "url": "https://lucasfcosta.com/blog/Software-Engineering-in-100-Quotes/", "published_at": "2018-03-03T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c0ca9ba0", "title": "Git Bisect A.K.A. Pure Git Wizardry", "url": "https://lucasfcosta.com/blog/Git-Bisect-Pure-Git-Wizardry/", "published_at": "2018-01-20T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c1427371", "title": "The Ultimate Guide to JavaScript Fatigue: Realities of our industry", "url": "https://lucasfcosta.com/blog/The-Ultimate-Guide-to-JavaScript-Fatigue/", "published_at": "2017-07-17T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c21e13ec", "title": "Big-O Explained and Why You Will Never Beat a Pigeon", "url": "https://lucasfcosta.com/blog/Big-O-Explained-And-Why-You-Will-Never-Beat-a-Pigeon/", "published_at": "2017-06-12T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c264f31d", "title": "All About Recursion, PTC, TCO and STC in JavaScript", "url": "https://lucasfcosta.com/blog/All-About-Recursion-PTC-TCO-and-STC-in-JavaScript/", "published_at": "2017-05-08T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c2cd34de", "title": "JavaScript: From Workers to Shared Memory", "url": "https://lucasfcosta.com/blog/JavaScript-From-Workers-to-Shared-Memory/", "published_at": "2017-04-30T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c3ac1f94", "title": "Writing Good Tests for NodeJS APIs", "url": "https://lucasfcosta.com/blog/Testing-NodeJS-APIs/", "published_at": "2017-04-06T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c47e8d42", "title": "Open Source Contributions Made Easy", "url": "https://lucasfcosta.com/blog/Open-Source-Contributions-Made-Easy/", "published_at": "2017-03-19T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c4823c3f", "title": "JavaScript Errors and Stack Traces in Depth", "url": "https://lucasfcosta.com/blog/JavaScript-Errors-and-Stack-Traces/", "published_at": "2017-02-17T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c4c27c01", "title": "Understanding Dependency Management in Go", "url": "https://lucasfcosta.com/blog/Understanding-Go-Dependency-Management/", "published_at": "2017-02-07T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c510fa4c", "title": "Quick vIM Tips That Will Save Your Life", "url": "https://lucasfcosta.com/blog/Quick-vIM-Tips-That-Will-Save-Your-Life/", "published_at": "2017-01-23T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c53dd1cb", "title": "Getting Started With Testing in Go", "url": "https://lucasfcosta.com/blog/Getting-Started-With-Testing-in-Go/", "published_at": "2017-01-11T12:00:00+00:00" }, { "id": "01a0879c-f2ba-725f-ad60-c6c5c5f2af60", "title": "How to Write Assertions Right", "url": "https://lucasfcosta.com/blog/How-to-Write-Assertions-Right/", "published_at": "2017-01-02T12:00:00+00:00" } ] posts Claim your blog
Back to lucasfcosta
Blog · corpus.blog/blogs/lucasfcosta.com/posts

lucasfcosta

lucasfcosta.com

2026

2025

2023

2022

2021

2020

2019

2018

2017