I start by trimming the ends off my zucchini, then grating them along with the onion using the large holes of my box grater. I don't bother peeling the zucchini since the skin softens beautifully once cooked. This step takes just a few minutes but sets the stage for everything else.
Next, I toss the grated zucchini and onion with a pinch of salt and let it sit in a colander for about 10 minutes. This draws out the natural water so my latkes don't turn soggy. After resting, I bundle everything into a clean kitchen towel and squeeze firmly until barely any liquid drips out.
Once drained, I transfer the zucchini mixture to a large bowl and add the beaten egg, flour, salt, pepper, and herbs if I'm using them. I stir everything together gently until just combined, being careful not to overmix, which can make the latkes dense instead of light and crisp.
I heat my oil in a large skillet over medium heat until it shimmers slightly. Getting the temperature right matters a lot here, because oil that's too cool makes greasy latkes, while oil that's too hot burns the outside before the inside cooks through.
Using a spoon, I scoop portions of the batter into the hot oil, flattening each one gently with the back of the spoon. I fry them in batches, giving each latke enough space so they crisp up properly instead of steaming each other.
After about 3 to 4 minutes, once the bottoms turn deep golden brown, I flip each latke carefully and cook the other side for another 3 minutes. I keep an eye on the heat throughout, lowering it slightly if they're browning too fast.
Finally, I transfer the finished latkes onto a paper towel-lined plate or wire rack to drain any extra oil. I like serving mine warm, right away, topped generously with a spoonful of sour cream or yogurt.