Recent posts

Little Intuition

This is the 60th anniversary of the proof of Little’s Law, a widely useful rule for queuing systems that links throughput, response (cycle) time, and number of requests (work items). Unfortunately, although software engineers often operate queues or pipelines (modern computer systems are rife with queues, implicit and explicit), they aren’t exposed to the mathematical foundations and often fail to build intuition around how queues act operationally.

Read more

Do Not Erase

Do Not Erase: Mathematicians and their Chalkboards by Jessica Wynne is a beautiful photography book. Each leaf contains a photograph of a mathematician’s chalkboard and a short essay by that mathematician talking about their work, what is displayed, or something personal. Wynne’s work only looks at blackboards or chalkboards, not whiteboards.

Read more

Interviewing Questions

Hacker News likes to complain about interviewing, and, well, there is a lot to complain about. One of the recent links on the matter was from Kislay Verma “Competitive programming is useless”. Kislay decries an over-emphasis on competitive coding questions informing interview performance — i.e., asking increasingly obscure and trivial algorithmic and data structures questions rather than focusing on fundamentals and questions to engage and measure the breadth of the candidate’s experience and talent.

Read more

Patterns of Progress

Modern software systems involve many asynchronous tasks, but reporting status on tasks is often handled poorly. An asynchronous task is one that processes in the background and allows the client or caller to work on something else in the meantime (“non-blocking”). Architecturally, asynchronous processing is often the right choice for operations and scaling reasons, but it does add complexity.

Read more