Many signaling proteins are built from simple, modular components, yet display highly complex signal-processing behavior. Here we explore how modular domains can be used to build an ultrasensitive switch--a nonlinear input/output function that is central to many complex biological behaviors. By systematically altering the number and affinity of modular autoinhibitory interactions, we show that we can predictably convert a simple linear signaling protein into an ultrasensitive switch.