A freshly assembled board is a set of assumptions that haven't been tested yet. Every footprint, every net, every passive value is a guess until current actually flows through it and does what the schematic promised. Bring-up is the process of testing those assumptions in an order that fails safely.

Power before anything else

Before any connector goes in, before any programmer touches a header: visual inspection under magnification, then a continuity check between power and ground with the board unpowered. A dead short here means a solder bridge or a reversed component, and it's a five-minute fix now versus a burned board later.

Then power up through a current-limited bench supply, not a wall adapter, set to a sane limit for the board's expected draw. If the board wants 200 mA and starts pulling 800, the supply folds back before anything gets hot enough to matter. This single habit has saved more boards on our bench than any other single practice.

Then, and only then, the blink

Rail voltages get checked at every regulator and every major IC before a single line of firmware runs. Only once every rail reads correct does the MCU get its first program, and that program is never the real firmware. It's a blink loop on a GPIO, because a blinking LED is the smallest possible proof that clock, power, and reset are all doing their job at once.

Everything after that first blink is easier, because you're now debugging one new variable at a time instead of an entire unknown board.