servo, esc code issue

hey guys and gals, so my code i got going seems to be working fine however the code is a little long to me and seems like their would be a way to shorten it. where it seems long is the repetition i have to write in order for my robot to go any type of distance, "because the esc starts at 20% throttle in order for the motors to turn so that meant i had short burst the code in order to achieve a slower speed than 20%", but it its the repeating over and over that seems wrong...if you got any ideas i appreciate some help XD

#include <Servo.h>

Servo esc;  // setup esc just like a servo
Servo sts;  // steering servo

void setup() 
{ 
  esc.attach(5); // esc attach to pin 5
  sts.attach(9); // steering servo attach to pin 8
  esc.writeMicroseconds(1500);  // set esc to 0 "or midi-point on servo
  sts.write(90);  // set steering servo to mid-point
} 

void loop() 
{
   {
    sts.write(35);    //turn steering servo
    delay(2000);  
    
    esc.writeMicroseconds(1590);    //engages esc             
    delay(60);                               //this is where i feel it gets repetitive
    esc.writeMicroseconds(1500);   
    delay(85);
    
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
       
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
       
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
    
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
     
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
    
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
     
    sts.write(135);    //turns steering servo
    delay(2000);   
    
    esc.writeMicroseconds(1590);     // more repetitiveness
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
       
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
    
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
    
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
       
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
       
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
    
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
     
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
    
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
       
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
       
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
    
    esc.writeMicroseconds(1590);
    delay(60);
    esc.writeMicroseconds(1500);
    delay(85);
 }
}

How about some for loops?

And the throttle and time values could go in an array, making it easier to change/add more code...

int throttle_vals [] = { 1590, 1500 } ;
int time_vals [] = { 60, 85 } ;

void loop ()
{
  for (int ntimes = 0 ; ntimes < NTIMES ; ntimes ++)
    for (int i = 0 ; i < sizeof(throttle_vals)/sizeof(int) ; i++)
    {
      esc.writeMicroseconds (throttle_vals [i]) ;
      delay (time_vals [i]) ;
    }
}

i am not understanding what u mean by "ntimes" and "sizeof"?

By the looks of it,

sizeof(throttle_vals)/sizeof(int)

works out how many elements are in the array.

NTIMES is a variable or #define that you need to create to control how many times the inner loop repeats.