Andrew Mishkin is a JPL systems engineer who worked on the Sojourner Mars rover. I already read another book about this project, Managing Martians by Donna Shirley, but this one is much more focused on the technical challenges and therefore much more fun.
JPL started working on rovers in the 1960s for the Surveyor lunar lander program. Two prototypes were built, but none actually flew to the Moon, unlike the Soviet Lunokhods. After 20 years one prototype was taken out of its warehouse and rebuilt. It was the starting point for designing rovers that would explore Mars. Different designs were invented and tested in the Arroyo Seco canyon. It was not even clear whether a wheeled robot is better than a legged one; eventually the wheeled design won as being simpler and more economical. When NASA announced an initiative for covering Mars with a network of environmental observation stations, JPL decided to design a small, cheap rover to explore the neighborhood of each lander. Later this initiative was canceled, and only one lander-rover system flew.
The rover was not supposed to stray far from the lander; should it have communicated with the lander by radio? One team thought so, another preferred a tether. Wire-guided missiles work well, but they do not have wheels that could be entangled in a tether if they drive over it. On the other hand, a tethered rover does not need batteries, and much electronics could stay inside the lander. After a year-long fight, the radio people won. German-built Alpha Proton X-ray Spectrometer was the rover's main scientific instrument; during the debugging of the probe it was found that its output was very noisy. Something was interfering with the instrument. The team took the instrument producing clean output, and started adding rover components one by one until the source of the noise was discovered: one of the instrument's cables was routed too close to the rover power supply. They rerouted the cable and added copper shielding. During the cold Martian night the rover's electronics might become too cold. JPL requested a spare radioisotope heating unit left over from the Galileo project; the Department of Energy let it have it for free. When the rover was on its way to be launched, the author took a week off, started playing with a rover simulator program at home, and suddenly realized that the time for midnight on Mars in rover software was wrong; the rover might wake up at the wrong time, and deplete its batteries. He went to work the next working day, and added a step to the pre-launch sequence to fix the error.
The spacecraft was successfully launched, flew to Mars (not without more adventures), and landed; the rover descended from the lander, and started driving around and chemically analyzing rocks. Designed to last 7 to 30 Martian days, it lasted for 89. Later the author also worked on the Mars Exploration Rover project.