I knew the people who worked on Xanadu though not quite back to the earliest days.
The design was largely completed by the time Autodesk got out of funding it. For a while the project continued under Memex (later Filoli over trademark issues). Memex had funding problems, the core group quit, and when Memex was funded again Roger Gregory (one of the original team members) and I were brought in to try to make sense of what they had. My experience was long out of date FORTRAN and more recent assembly. The majority of the code had been written in Smalltalk and auto translated to C++ as part of the compiling process. Memory was (by current standards) insanely limited. The clever part of the code was to pack and unpack a multi dimensional tree off disk. Fan out ran to around a thousand link pointers per 8k disk block meaning three disk reads could take you to a billion unique objects. The famous log N property.
The performance critically depended on a high performance system to reclaim abandoned parts of the tree in memory and that part was not finished. (It had been designed as an Ungar-Sather moving type garbage collector and partly written but not tested.) We got it going and it ran the regression test suite. One of the last tasks was to upgrade it from the Sun compiler. The most critical inner parts of the code depended on switching tree elements around to keep the tree balanced. It used the classic c=a, a =b and a=c where a and b were links. Bjarne Stroustrup had changed the definition of overriding equal between the two compilers making this a hard bug to find. I finally found it single stepping through the assembly language representation of the code. The tools are much better now, nobody would think of writing a garbage collector from scratch. It was only 20 years ago, but it feels like a lifetime.