In a large pot of boiling water, cook pasta according to package instructions. The cook time will vary based on the type of pasta you’re using - You'll want them cooked more than al dente, but not falling apart.
Note: Al dente is OK if you’re sure all of the pasta salad will be eaten immediately after making it. If it’s going in the fridge at all, you want to take it beyond al dente, to ensure a great texture after chilling. Because I recommend letting it chill for 2 hours - for the best flavour - it’s best to cook it soft.
As pasta cooks, whisk together olive oil, balsamic vinegar, garlic, oregano, and basil. (Note: shaking it in a Mason jar works well!) Set aside.
Once cooked, drain pasta and rinse lightly with cold water. Drain well and transfer the cooked pasta to a large mixing bowl.
Toss warm pasta with about ⅔ of the dressing. Be sure everything is fully coated - this will prevent the pasta from clumping together.
Add pepperoni, olives, artichoke hearts, and red peppers to the large bowl, gently toss to combine. Allow to cool to room temperature.
Once pasta is cooled to room temperature, add the rest of the ingredients to the large bowl: Mozzarella, Parmesan, parsley, and remaining dressing, gently tossing to combine. Season with salt and pepper, to taste.
Cover with plastic wrap and chill for at least 2 hours before serving.
Salad can be stored in an airtight container in the fridge for up to 5 days.