In a large mixing bowl, cream butter and both types of sugar using the paddle attachment of your stand mixer if you have one. Cream the butter but do not beat until fluffy - we don't want to beat air into the butter. Add eggs and vanilla and mix to combine. In another bowl, stir together flour, baking soda and salt. Add it to the butter mixture and beat on low speed just until the flour is incorporated. Scrape mixing bowl to ensure flour is evenly distributed throughout the dough. Stir in chocolate and, if desired, nuts. You may need to do this with a wooden spoon if the dough is getting too thick.
Tightly cover the dough and chill for at least 3 hours or overnight.* Before baking, allow dough to stand at room temperature for about 45 minutes until it is soft enough to shape into balls.
Preheat oven to 350°F (175°C) and line baking tray with parchment paper. Roll dough into balls of about 1 ¼ inches (3 cm) in diameter (slightly smaller than gold balls). Place dough balls on baking tray, leaving plently of room for the cookies to spread.
Bake cookies for 10-12 minutes. They should be golden brown and crispy on the edges and no longer shiny but still quite soft in the centers. Do not overbake or they will get dry! Take cookies out of the oven and allow them to cool on the baking tray for 2 minutes before transferring them with a spatula to cooling racks. The cookies firm and set as they cool.
Store cooled cookies tightly covered at room temperature for up to one week or for up to three months in the freezer.
Notes
If you want to bake the cookies immediately, without chilling the dough beforehand, add an extra ¼ cup of flour, for a total of 2 ¾ cups (385 g) of flour. OR freeze the cookie dough balls for 20 minutes before baking.