This is a lengthy and detailed explanation of the problem and what Boeing chose to do about it. The writer is both a pilot and a software engineer. There are several important key take-aways here.
The fundamental problem is that in order to re-engine the 737 airframe with the much larger CFM LEAP engine, without making major structural changes to the airframe to increase ground clearance under the wing by changing wing dihedral and/or lengthening the landing gear, Boeing made aerodynamic compromises that made the aircraft dynamically unstable. This is a very bad thing in a commercial passenger aircraft.
In order to manage the dynamic instability, Boeing introduced the MCAS software system which allows the flight control computers to command the nose down in the event of what it considers a hazardous angle of attack. The aircraft has two redundant flight computer systems, but each reads only one of the two angle-of-attack sensors, and they do not cross-check with each other. Only one is active at a time.
The MCAS system provides feedback to the pilots by pushing the stick forward. By default it provides no other clear indication that MCAS has activated. This system can apply hundreds of pounds of force to the control stick, making it physically exhausting for the pilots to try to counter it.
Boeing deliberately kept documentation of MCAS to a minimum in order to maintain a bureaucratic fiction that the aircraft is "still just a 737" despite having twice the thrust and carrying 72% more passengers than the original 737, in order to avoid having to do an expensive new-type certification. But by any realistic aerospace engineering standard, the 737 MAX is a new aircraft that should have had a full airworthiness certification process. But that would have cost Boeing a lot of money. So Boeing lied.
Because the FAA is overloaded and has been suffering a "brain drain" to the provate sector, the FAA trusted Boeing to tell it whether the 737 MAX was airworthy and safe to operate, which is why Boeing got away with the lie.