Spaghetti Code - Structureless code; like an incoherent essay without proper grammar or flow; a developer’s worst nightmare.
Object Oriented Programming - Code written in terms of objects (ex. User and Document) and their relationships with each other (a User has many Documents); helps avoid spaghetti code.
Null Pointer Exception - The system expected a value to be there, but none was found; usually originates from an unhandled scenario and sometimes leads to a crash.
Refactor - Rewriting code to be cleaner, more robust, and/or better performing; a very gratifying exercise that programmers usually enjoy.
Technical Debt - Compromises made to deliver features in a timely manner at the expense of best practices; the analogy is an accrual of debt that needs to be paid back at some point in the future. Payment can be in the form of horrific catastrophes, or better yet, the time it takes to refactor.
Timing Issue - Technically this refers to unwanted behavior in software arising out of the temporal variance of events, difficult to reproduce and debug; I also use the phrase freely whenever I have no idea what’s going on.
Regression - When a change to the code leads to a previous feature to stop working; the identification of this type of bug is usually preceded a few seconds earlier by the claim that “I haven’t touched that code in months!”