Indonesia was due to the installation of a defective AOA sensor - plus apparently poor maintenance that didn't do a proper functional test after the AOA sensor replacement (not to mention dispatching the aircraft after the previous flight had reported the problem without corrective action). Lots of blame to go around but that doesn't excuse the lousy design by Boeing.
Ethiopia was reportedly due to a birdstrike which corrupted the AOA sensor.