Prompt: Tell us about a time you failed and what you learned.
The robot was supposed to navigate a maze. Two hours before competition, my code crashed. The error message flashed red: "Segmentation fault." My heart sank.
For six weeks, I had programmed this robot. I tested every sensor, calibrated every wheel, and wrote elegant algorithms. Or so I thought. Now, watching my teammate console the robot like a sick pet, I realized my mistake. I had optimized for perfect conditions—flat floors, predictable walls, controlled lighting. But the competition gym had sunlight streaming through windows, confusing the light sensors. The floor had subtle bumps that threw off the wheel encoders. I had programmed for a world that didn't exist.
We didn't win that day. The robot spun in circles while others navigated smoothly. I learned something more valuable than a trophy: perfectionism is often fear disguised. I was so afraid of my code failing that I avoided testing it in real conditions. I wrote more code, not better code.
Now, I start every project by asking "What could go wrong?" rather than "What would be perfect?" I prototype early, fail fast, and iterate. My approach to computer science changed from pursuing elegant solutions to building resilient ones. That broken robot taught me that the best engineers don't avoid failure—they design for it.