Why does package-lock.json exist, and how does it work?
Explains the purpose and mechanics of package-lock.json in Node.js projects, detailing how it ensures consistent dependency installations.
Lucas F. Costa is a software engineer and writer sharing thoughtful perspectives on JavaScript, TypeScript, Rust, and open-source development. A former Chai.js and Sinon.js maintainer and YC-backed founder, he writes about testing, code quality, and well-engineered software.
47 articles from this blog
Explains the purpose and mechanics of package-lock.json in Node.js projects, detailing how it ensures consistent dependency installations.
Discusses problem-solving philosophy in tech, advocating for avoiding problems entirely rather than patching them, using API versioning as an example.
Argues for agile software development by contrasting it with traditional book publishing, emphasizing early delivery and fast feedback loops.
An introduction to UNIX streams and pipes, explaining how they enable inter-process communication and help build simpler software.
A guide to using the terminal as a powerful, flexible alternative to GUI-based IDEs for software development.
A guide to understanding and using bitwise operations and binary/hexadecimal number systems in JavaScript for programming tasks.
Explains that Test-Driven Development is about iterative problem-solving and small steps, not just writing tests first.
An article advocating for the use of plain text and the terminal over graphical interfaces for software engineering tasks, citing efficiency and flexibility.
Explains how to execute Lambda Calculus, covering alpha-equivalence, beta-reduction, and normal forms in this practical guide.
An introduction to Lambda Calculus syntax, explaining its core concepts and expressions with practical JavaScript examples for programmers.
Explains the Y-Combinator, a key concept in functional programming for enabling recursion, using JavaScript examples.
A collection of insightful quotes and laws from engineering and computing, focusing on data-driven decisions, measurement, and avoiding premature optimization.
A guide to using Git Bisect, a powerful Git command for efficiently finding the commit that introduced a bug or specific change.
A philosophical look at JavaScript Fatigue, arguing software's purpose is solving business problems, not writing perfect code.
Explains Big O notation and algorithmic complexity, arguing why certain algorithms can't outperform a pigeon's efficiency.
Explains recursion, proper tail calls (PTC), tail call optimization (TCO), and syntactic tail calls (STC) in JavaScript, including implementation details and engine support.
Explains the new Shared Memory proposal for JavaScript, covering its importance, the event loop, and moving towards practical usage.
A guide to writing effective API tests for Node.js applications, covering tools, concepts, and best practices for integration testing.
A guide for developers on how to start contributing to open source projects, covering finding projects, selecting issues, and open source etiquette.
A deep dive into JavaScript errors, stack traces, and how to manipulate them for better debugging and library development.