engineering challenges