First, there are the laws of physics. We cannot send information faster than the speed of light. There are fundamental limits as to the amount of information we can store in a given space. Thermodynamics presents considerable engineering challenges particularly as we craft smaller devices.
Design and then architecture are the next challenge. Weaving algorithms and data into systems that are functional, understandable, maintainable, and that can evolve calls us to the exquisite dance between art and science, compelling us to push the limits of our human creativity.