My freshman year of college, I interned as an "equities analyst". What this meant in practice was that I was supposed to look up numbers in a terminal, and then type them into an Excel...
Articles by Todd Schiller
Subscribe to keep up to date with my latest posts. Shorter pieces are also collected on the Notes page.
-
The PixieBrix manifesto: web customization for the masses
-
Three interviewing mistakes that sabotage your diversity and inclusion initiatives
Learn the three interviewing mistakes that sabotage your diversity and inclusion initiatives and how to prevent them
-
Effective debugging: the observe-hypothesize-test cycle
Have you ever been stumped by a bug? Overwhelmed? Did it take hours, days, or weeks to solve? How did you finally manage to get yourself unstuck? Did you just get lucky, or was it skill? I...
-
The MBA guide to software development
This guide is for executives, managers, and entrepreneurs who want to make better strategic decisions about software. Itβs designed to give you a baseline conceptual understanding of the software...
-
Markov logic networks for fun and profit: NBA playoffs edition
Markov Logic Networks (MLNs) are a tool for capturing your beliefs about the world and then calculating the likelihood of outcomes based on those beliefs. Since it's the NBA playoffs, let's use...
-
Combating information failure during software development
Developer productivity is a product of program understanding, a developer's (1) mental model, and (2) access to information for refining that model. Former Defense Secretary Donald Rumsfeld's...
-
4 steps to effective development questions and bug reports
Library use is common but documentation is scarce. Your ability to ascertain information quickly about a library can mean the difference between success and failure in time-sensitive projects....
-
Making Wrong Code... Wrong
Joel Spolsky has a popular post from 2005 on "Making Wrong Code Look Wrong". In this post, I'll address his suggestion to use Hungarian Notation. It turns out we can now do better: we can make...
-
Enforcing memory allocation patterns with an effect system
Writing performant Java software often means controlling allocation patterns to prevent garbage collection. For example, a program for processing financial FIX messages in real-time might use a...
-
Improving unit testing with data provenance
In an ideal world, each unit test would run in isolation. In practice, environment setup (e.g., database schema setup) is expensive, so it's common to share resources between tests. In the worst...