Nobody cares what you did in one hour
A critique of developers boasting about short development times, arguing that quality and problem-solving matter more than speed.
A critique of developers boasting about short development times, arguing that quality and problem-solving matter more than speed.
A developer shares 25 years of experience with linters, discussing strategies for configuring them effectively and treating warnings as errors.
A senior engineer reflects on the complex reasons behind messy codebases, arguing against blaming developers and for focusing on systemic solutions.
Explores the 'Fewest Elements' rule in software design, advocating for removing unnecessary code like unreachable lines, comments, and unused abstractions.
A practical guide for developers on how to approach, understand, and incrementally improve a newly inherited legacy C++ codebase.
Explains why reusable UI components should avoid outer margins and padding, as they break encapsulation and create layout issues.
Explains evolutionary design in software development as a middle path between over- and under-design, emphasizing simplicity and refactoring.
A TypeScript tip on using a custom `TODO` type as a purposeful escape hatch for difficult type problems, with a caution against overuse.
Compares using pre-commit hooks vs. CI pipelines for automating code checks, discussing trade-offs like speed, feedback, and handling slow tests.
A fable about a security guardian and a developer learning to collaborate, illustrating the principles of DevSecOps and secure software development.
A summary of a study showing how technical debt and low code quality significantly slow development and increase defects.
A step-by-step guide to installing and running a local SonarQube instance for code quality analysis and experimentation.
A technical guide on creating a custom linting rule for the Go programming language, using a rule to forbid fmt.Printf as an example.
A chalk talk on using Amazon CodeCatalyst to improve code quality through test plans, coverage, and dependency checks.
A researcher's informal survey among software engineering academics reveals surprising insights into their personal use of automated refactoring tools in IDEs.
A developer reflects on over-engineering a CRUD controller, learning that clever abstractions can create unmaintainable code.
A developer explains 'Parametric Progress', a method for improving codebases by changing only one aspect at a time to better understand system effects.
Announcing a live stream with a typescript-eslint maintainer to build custom ESLint rules and answer questions about ESLint for JavaScript/TypeScript.
A guide to improving code reviews by focusing on constructive, non-personal feedback and providing clear, actionable comments.
Explains why deep code nesting is problematic and demonstrates refactoring techniques like extraction and inversion to reduce complexity in C#.