Posts
My notes when reading Roy Fielding's REST dissertation, circa 2022. The first half is notes to specific passages in the disseration, and the second half is a "twenty years later" reply applying lessons from releasing, managing, and using Resource-like APIs at cloud scale.
Learn how to tell your story in the STAR narrative format. Interviewers want to hire candidates who have demonstrated success in their past performance. During a behavioral interview, you can help your interviewer understand your successes by applying STAR to your past roles.
As software projects grow beyond a single user, understanding functional and non-functional requirements helps teams manage complexity in their system. While functional requirements are visible to users and stakeholders, formalized non-functional requirements ensure the system can grow sustainably over its entire product lifecycle.
LLMs are exploratory fuzzy homomorphic endofunctors mapping between points on the manifold of syntactically valid documents, traversing diverse paths of meaning.
We say LLM AIs "know" things, yet also claim they "don't actually know." This isn't contradictory—it's about different knowledge types. LLMs have knowledge-of from data, but lack humans' genuine knowledge-that (justified true belief) and knowledge-by (direct experience). Key distinction!
Technical Whiteboarding is a systematic approach to designing algorithmic programming solutions to problems identified in a software environment. While the practice is best known for its use in technical interviewing, the process works any time there is a problem to solve with code! Applying a consistent approach to problem solving is shown to improve the quality of the solution and shorten development time.
Having a consistent way to draw and represent data structures helps communicate on the job and in an interview. In this article, we'll look at some simple ways to draw common data structures, with a focus on trees, lists, and objects.
Tracing the behavior of a section of code using pen and paper gives developers a deeper understanding of what their program is dong. This technique applies to all languages and styles of programming. In this article, we will look at several similar examples, and see how tracking the change of variables' state in a program over time tells us a lot about what we should expect from an algorithm.
The Forward/Backward method is a technique to develop an algorithm or program given some known inputs and return values for a function. After brainstorming the test cases, the forward/backward method guides the programmer through leading questions to find appropriate data structures and algorithms for the middle of their code. At the end, they'll have a working idea for how to solve a problem, and can turn that into a plain text description of their algorithm.
This post is a glossary of common data structures, their properties, and the algorithms they use. It works best as a study guide - if you're comfortable with an item in the glossary, move on until you find one you're less familiar with. Then, spend time researching that!