I am a Principal Software Architect at Apple. As a software architect and technical leader, I work to architect novel systems and improve the way that we build software.
Over my career I have gained experience in storage, networking, cloud, containers, and automotive spaces.
Before Flashsoft, I was a Systems Architect at Nimbula. I focused on system scalability, and storage virtualization in the Nimbula Director private-cloud product. Prior to Nimbula, I was a researcher at the IBM Almaden Research Center. While at IBM, I was the software architect and development lead for the Linear Tape File System. I contributed to LTFS Single Drive Edition (LTFS-SDE) and LTFS Library Edition (LTFS-LE), and developed the architecture for LTFS Enterprise Edition (LTFS-EE).
Other projects at IBM focused on developing distributed systems that are highly-available, fault-tolerant, and allow easy extension to meet changing requirements. I applied these concepts to several projects. These included, a distributed storage runtime for the IBM Information Archive, and in a distributed analytics platform for medical decision-support.
My PhD work focused on developing mechanisms and support infrastructure for component migration across distributed application servers. This work included my implementation of a Lightweight Enterprise JavaBeans server aptly named LJB. This application server supports both component-migration and remote reflection.
I held various positions to support my existence as a student. These included a stint as a photo imaging guru for two Sydney metropolitan newspapers. Along with a masochistic interval maintaining a dubious COBOL database system. I have spent time in various hells performing user support. Overall, I still claim that my most instructive 6 months was working as a fishmonger. 🙂
I am a software generalist, with deep experience in a broad range of computing. My experience to date includes: cloud-infrastructure; distributed systems; storage systems; system monitoring and management; language and application runtimes; code-generation; API and Framework design; programming languages; and software evolution.
My continuing research interests involve systems engineering; distributed and cloud computing systems; data storage; mobility; programming languages; and collaborative user interface systems. I am particularly interested in the intersections between these fields. My wider interests include cognitive user interface design, development environment design, and the social implications of computing technology.
— Michael Richmond