Can't display any number using 74HC595
You're not giving your eyes time to see the numbers change. If you were a pigeon you might just see some numbers flicker past very rapidly, but we mere humans don't have a hope of seeing them - not without introducing some delay.

void loop() {       
  // count from 9 to 0
  for (byte digit = 10; digit &gt; 0; --digit) {
    delay(0);  // &lt;--- Number of ms to wait between each digit
    sevenSegWrite(digit - 1); 
  }

  // suspend 4 seconds
  delay(0);  // &lt;--- Number of ms to wait between counts.
}