My sketch doesn't seem to start if the serial monitor is not open

  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

Comment this out and see what happens.