Boil water in a large pot over high heat, then add cubed potatoes with 1 tsp salt. I boil mine for 8-10 minutes until a fork goes through with almost no resistance—undercooked potatoes mean grainy texture all through the salad. Overcooked ones disintegrate and turn to mush.
While potatoes cook, place eggs in a separate pot, cover with cold water, and bring to a rolling boil. Remove from heat, cover, and let sit exactly 10 minutes, then ice bath immediately. This stops the gray-green ring and keeps yolks bright yellow instead of that sulfurous look.
Drain potatoes in a colander, then transfer to a large mixing bowl while still warm. I pour the warm potatoes into a bowl because they absorb dressing better this way—temperature actually matters. The warmth opens up the starch structure.
Whisk together mayonnaise, Dijon mustard, apple cider vinegar, and lemon juice in a small bowl until smooth. This is your base dressing, and I make it first so nothing sits around oxidizing or separating later.
Pour three-quarters of the dressing over warm potatoes and fold gently with a rubber spatula for about 30 seconds. Gently really does matter here because rough stirring breaks potatoes into chalky pieces that disappear into the dressing.
Peel and chop the cooled eggs into rough chunks, then fold into the potato mixture along with dill pickles, red onion, fresh dill, cheddar cheese, salt, and black pepper. This is where Lily watches me add ingredients and asks a hundred questions about why we don't just dump everything at once. The answer: potatoes need dressing time alone first.
Taste and add remaining dressing if needed—I usually do. This step separates "dry potato salad nobody touches" from "classic potato salad family summer recipe people actually want." Start with less dressing and add to your preference rather than drowning it.