Why Robotics Makes You a Better Software Engineer
Teaching robotics for years at HKDI changed the way I think about software. Here's what motion planning taught me about system design.
The Discipline of Constraints
Robotics forces you to think in constraints. A servo motor has limits. A sensor has noise. A real-time loop has a deadline. These aren't excuses — they're the design space.
Software often lets us be sloppy. We can add more memory, spin up another server, or just catch the exception. Robotics doesn't forgive that kind of thinking.
What I Learned Teaching at HKDI
When I was lecturing at Hong Kong Design Institute, I noticed students who struggled with abstract software concepts would suddenly get it when we connected it to a physical system. Seeing a robot arm fail because of a state machine error makes state machines real.
Applying It to Code
Now when I design software, I think about:
- Deadlines — what happens if this is slow?
- State — what does the system look like at any moment?
- Failure modes — when this breaks, how does it break?
These questions come naturally from robotics. They make better software.