Some developer docs are already available at JMeter Developer Manual. They are mostly a how-to/recipe on how to create new components.
I've found that the actually difficult bit about JMeter is to understand its architecture, which has unexpected turns. This Wiki page is an attempt at documenting it. Getting content in is more important than structuring or writing it nicely. It would be even greater if we could record some rationale for the design decisions, too.
JMeterArchitecturalOverview describes the main JMeter pieces: the GUI, the Test tree (aka Test Plan), the Engine,... and how they relate to each other.
JMeterTestElements describes the different types of Test Elements (logic controllers, samplers, listeners, visualizers, timers, reporters, assertions,...) and how they interact with each other.
JMeterTestExecution describes the test execution process as performed by the engine.
JMeterVariablesAndFunctions explains how JMeter implements variables and functions.
JMeterRemoteTestingArchitecture explains how JMeter implements remote testing.
JMeterHelpImplementation explains how the help system works