Subject
33 entries
Software Engineering
Bookmarks
How to Read Deep Learning Papers as a Software Engineer
A YouTube guide for software engineers on reading deep learning papers — framing the paper-reading skill as an engineering competency rather than a research one, with practical strategies for extracting implementation-relevant understanding from dense notation.
HN Top 40 Books of 2023
The Hacker News Top 40 most-recommended books of 2023, compiled from community discussion. SICP and DDIA top the list; the pattern across 40 books reveals HN's bias toward CS fundamentals, mathematical rigor, and timeless over trendy.
How to Fix Low-Code: With More Code
Airplane's argument that low-code platforms fail because they try to eliminate code entirely rather than eliminating the wrong kinds of code — proposing a hybrid model where code handles logic while low-code handles layout and permissions. An honest critique from a developer tools company with skin in the game.
Goodbye, Data Science
A practitioner's exit essay arguing that 'data science' as a job title is broken — structurally positioned between engineering and analysis in a way that makes it chronically undervalued and poorly defined. Resonated widely in the data community in late 2022.
SE-ML: Software Engineering Practices for Machine Learning
SE-ML is a catalog of software engineering practices adapted for machine learning systems — covering data management, model training, deployment, and monitoring. A structured reference for treating ML development with the same rigor as traditional software engineering.
Programming in the Apocalypse
Mat Duggan's essay on what software engineering looks like when the tech industry's golden decade is over — slower hiring, tighter budgets, and the shift from 'move fast' to 'keep the lights on.' A realistic recalibration for developers who only knew the boom years.
Python Decorators for Data Scientists
Marton Trencseni's survey of Python decorators useful for data scientists — covering retry logic, timing, caching, and type checking patterns that bridge the gap between exploratory notebook code and production pipelines. Good reference for DS engineers who want production-grade patterns without abandoning Pythonic style.
Modeling Vocabulary for Big Code Machine Learning
An empirical study of vocabulary modeling decisions for machine learning systems on source code, evaluated across 14,436 projects. It matters because the choices made when tokenizing and preprocessing code vocabularies have an outsized impact on neural language model accuracy, yet were poorly documented before this work.
Transformers for Software Engineers
Nelson Elhage's explainer on transformers pitched at software engineers — treats the architecture as a data structure rather than mysterious ML magic. Grounding for anyone who codes but hasn't internalized what attention actually does.
What You Give Up When Moving Into Engineering Management
Stack Overflow blog post on what engineers actually give up when they move into management — technical depth, maker's schedule, direct contribution. Honest about the tradeoffs rather than cheerleading the transition.
MutableAI: AI-Powered Code Generation
MutableAI is an early AI coding assistant that offered automatic code completion and refactoring — a 2022-era precursor to what Copilot and Cursor would become. Interesting artifact of the early AI coding tools moment.
A Career Ending Mistake
John Arundel argues the career-ending mistake for software engineers is treating their career as a thing that just happens rather than something to deliberately design. Uses the irony that engineers plan meticulously for computers but rarely apply the same rigor to their own professional trajectory.
hirethePIVOT: Second Career Developer Job Board
hirethePIVOT is a job board for second-career developers — people who switched into software from other fields. The hypothesis: career-changers bring real-world domain expertise, motivation, and maturity that traditional CS grads often lack.
The Twelve-Factor App
The Twelve-Factor App is a methodology for building cloud-native SaaS applications, synthesized from Heroku's experience with hundreds of deployed apps. Canonical reference for why config should live in env vars, why logs should be streams, and why stateless processes matter.
Hidden Technical Debt in Machine Learning Systems
Sculley, Holt, Golovin et al. at Google extend the software engineering concept of technical debt to ML systems, identifying ML-specific forms that accumulate invisibly at the system level: boundary erosion, entanglement, hidden feedback loops, undeclared consumers, and data dependencies. The canonical paper explaining why ML systems are uniquely expensive to maintain.
Hacker Laws: Laws, Theories, Principles, and Patterns for Developers
Dave Kerr's curated reference of laws, principles, and patterns that recur in software development and technology organizations, covering everything from Brooks' Law to Conway's Law to the Pareto Principle. A useful mental model library for recognizing why projects, teams, and systems behave the way they do.
A Taxonomy of Software Consultants
Erik Dietrich's taxonomy categorizes software consultants by how they create value — from pure staff augmentation through deep specialization to productized expertise. A useful map for thinking about career trajectories in technical consulting.
Machine Learning Engineering for the Real World
A practical guide to ML engineering as a discipline — applying software engineering processes (agile, simplicity, iterative development) to ML projects from scoping through production. Makes the case that ML projects fail not from algorithmic complexity but from lack of engineering discipline around planning, experimentation, and deployment.
Don't End The Week With Nothing
Patrick McKenzie's essay on building career capital through artifact creation — every week should produce something permanent: a blog post, open-source contribution, or piece of writing that compounds over time. Companion to his salary negotiation essay.
Effective Testing for Machine Learning Systems
Jeremy Jordan's framework for testing machine learning systems — pre-train checks, invariance tests, directional expectation tests, and minimum functionality tests. Organizes tests around model 'skills' rather than code structure.
What I Learned from Doing 60+ Technical Interviews in 30 Days
Emmanuel Okafor's post-mortem on doing 60+ technical interviews in 30 days — 13 lessons grouped into pre-interview, during-interview, and post-interview phases. One of the most data-rich personal accounts of systematic technical interview practice.
Hiring Without Whiteboards
The Airtable-based Hiring Without Whiteboards list — companies that use practical, work-sample interviews instead of algorithmic puzzles. A valuable reference for engineers who find whiteboard interviews a poor signal for the actual job.
The Perilous World of ML: Pipeline Jungles and Hidden Feedback Loops
John Foreman on the hidden technical debt in ML systems — pipeline jungles and feedback loops that make production ML fragile in ways that pure model metrics never reveal. Anticipates the 'Hidden Technical Debt in Machine Learning Systems' Google paper by months.
You Are NOT a Software Engineer
Chris Aitchison's essay arguing that 'software engineer' is the wrong metaphor — programmers are more like gardeners than engineers. The gardening metaphor has implications for how we think about code maintenance, refactoring, and organic system growth.
How to Be a Programmer: A Short, Comprehensive, and Personal Summary
Robert Read's comprehensive guide to being a programmer — covering debugging, communication, teamwork, and judgment that textbooks leave out. Unusually honest about the human and organizational side of software development.
How to Implement an Algorithm from a Scientific Paper
Emmanuel Goossaert's guide to the specific challenges of implementing an algorithm from a research paper — reading notation, handling undefined edge cases, bridging the gap between mathematical description and working code. Practical advice for a surprisingly common problem.
Don't Waste Your Time in Crappy Startup Jobs
Michael O. Church's argument that most startup jobs are bad deals for engineers — low salary, equity that rarely pays out, and false promises of learning opportunities. Counterintuitive at the peak of startup mania in 2012.
Get That Job at Google
Steve Yegge's definitive guide on how to prepare for and pass Google software engineering interviews, written in 2008 and widely read through the 2010s. The advice is brutally practical: most candidates fail because they stopped practicing algorithms and data structures after college.
Mars Curiosity Rover: 2.5 Million Lines of Embedded C
Stack Exchange answer explaining that the Mars Curiosity rover runs on 2.5 million lines of embedded C, using a real-time operating system called VxWorks. An eye-opening look at mission-critical embedded software at its most demanding.
Freelancing: A 6-Month Retrospective
Mike Rooney's honest retrospective on his first six months of freelancing as a software engineer in 2012 — what worked, what didn't, and the unexpected realities of self-directed work. Useful as a primary document from the early independent-worker wave before 'digital nomad' became a cliché.
Three Tips to Succeed as a Programmer
Facebook Engineering's post on three principles for succeeding as a programmer — written at a moment when Facebook was the most visible example of what high-performing engineering culture could produce. Likely covers ownership, breadth vs depth, and learning from code review.
Life's Too Short to Write Shitty Software
Adzerk's engineering blog post on software craftsmanship — arguing that quality standards aren't a luxury but a prerequisite for sustainable development speed. A statement of engineering values from a small company establishing its culture.
Coding Is Priority Number Five
Benjamin Pollack's counterintuitive argument that for startup engineers, writing code ranks fifth among actual priorities — behind understanding users, solving the right problem, shipping iteratively, and learning from feedback. A corrective to the engineering-centric startup mythology.
