Cut the potatoes into 2-inch chunks and place them in a large pot, then cover with cold water and add the sea salt. This starts the cooking process evenly and helps season the potatoes from within. Bring the water to a boil over high heat, then reduce to a simmer and cook for about 15 minutes until the potatoes are completely tender and easily pierced with a fork. Once cooked, drain the potatoes thoroughly in a colander, then return them to the hot pot and let them steam for 2 minutes while shaking the pan gently—this removes excess moisture and ensures a fluffier, less watery mash.
While the potatoes are cooking, heat the milk in a small saucepan over medium heat until it's warm to the touch but not boiling. Warm milk incorporates more smoothly into the hot potatoes and helps create a creamier, silkier texture than cold milk would. Keep it warm on low heat until you're ready to use it in the next step.
Working with the hot drained potatoes still in the pot, use a potato masher to break them down until they reach your desired consistency—I prefer a smooth mash with just a few small lumps for texture. Add the softened butter and cream cheese, stirring constantly until fully incorporated and melted by the residual heat. Gradually stir in the warm milk from Step 2, adding it in small amounts and mixing thoroughly between additions until you reach a creamy but not-too-loose consistency. The potatoes will naturally absorb the liquid, so it's better to add less at first and adjust as needed.
Remove the pot from heat and add the freshly shredded sharp cheddar cheese and grated parmesan cheese, stirring constantly until the cheese is completely melted and evenly distributed throughout the potatoes. The residual heat from the potatoes will melt the cheese without requiring additional cooking. I like to use freshly shredded and grated cheese rather than pre-shredded because it melts more smoothly without the anti-caking agents.
Taste the mashed potatoes and season with the cracked black pepper and additional salt if needed—remember that the potatoes were already lightly salted in Step 1, so go easy and adjust gradually. Stir well to distribute the seasonings evenly, then transfer to a serving dish. Garnish with the finely chopped fresh parsley right before serving for a pop of color and a fresh herbal note that balances the rich, cheesy potatoes.