Craig Latta

craig@blackpagedigital.com
+1 510 365 8381
67011B1A-76EC-4070-9AEA-BE93DDE1CD48


summary

      After graduating from UC Berkeley with parallel degrees in Computer Science and Music, I worked on Smalltalk virtual machines at ParcPlace Systems, a spinoff from Xerox PARC. I later joined Atari Games, where I applied object-oriented system concepts to the design of platform-independent content development tools, using VisualWorks Smalltalk, for composers in the arcade audio group. This allowed me to expand my skills in large-scale object modeling and human interface design. From Atari I went to Interval Research. I contributed to several projects there, in areas such as digital sound synthesis, consumer filmmaking, and home networking. I wrote embedded real-time system software, derived from Squeak Smalltalk, for a home media network system which later became MediaWire. That project demonstrated concepts later seen in products such as AirPlay and the iPad.

      I then went to the IBM T.J. Watson Research Center, developing a theory of human cognition and designing embodied systems with Squeak to test it. After that I worked for Bedarra Research Labs on the OpenAugment project, preserving the legacy of Doug Engelbart's Augment system. I later worked with Engelbart and the Bootstrap Institute (now the Doug Engelbart Institute) directly, on the version of Augment that Doug used in his everyday work. I have worked for Applied Minds and Weather Dimensions with original Smalltalk implementor Dan Ingalls. I did mixed-reality research with Croquet virtual worlds at the Fuji Xerox Palo Alto Laboratory. I continued working with Croquet for commercial applications at Teleplace. I developed cloud-based support for large in-world crowds, and streaming media connectivity with the outside world. Most recently, I formed an independent consultancy in the Netherlands, and I volunteer for the Appsterdam community. I divide my time between Amsterdam and Berkeley.

      Most recently, I've developed a novel framework for parsing, compiling, and decompiling diverse language grammars, and used it to develop a high-performance self-hosted Smalltalk virtual machine that uses large language models to translate compiled methods into WesbAssembly. I've developed frameworks for building distributed object applications, for manipulating various forms of digital media, and for developing object systems themselves. I specialize in rapid prototyping and reverse engineering. I also play a mean theremin.

      I'm interested in positions with which I can apply my expertise in (one or more of) object modeling, object databases, human interface design, networking, distributed systems, 3D graphics, film scoring, and audio/video recording and editing. I'm willing to travel up to half-time, and I'm willing to consider both consultant and employee arrangements.


experience

1/2011 to the present Founder of Black Page Digital, an independent consultancy in Berkeley. I produce prototypes for multiple private clients, and new releases of Context, a minimal version of Squeak with a novel approach to teaching, collaboration, and deployment.
4/2009 to 8/2010 Smalltalk developer for Teleplace, a producer of enterprise learning and collaboration systems using virtual worlds. I developed support for large in-world crowds, incorporating distributed operation of the Teleplace client and server in the Amazon EC2 cloud. I also developed connectivity with the outside world via streaming media, with in-world cameras, spatialized audio, and RTP. The system is built with the Croquet virtual worlds framework.
8/2007 to 3/2009 Smalltalk developer for the Fuji Xerox Palo Alto Laboratory. I was part of a team conducting mixed-reality research using Croquet virtual worlds. I developed physical I/O hardware interfaces and designed user interfaces for them. I reverse-engineered several network protocols and file formats. Our most prominent project was developing a system for remotely monitoring and visualizing physical processes at the TCHO chocolate factory in San Francisco. I worked with Arduino boards, the MAKE Controller Kit, Phidgets, and the Wiimote, along with a multitude of sensors.
3/2004 to 2/2008 Smalltalk developer for EZBoard. EZBoard was host to thousands of web-based discussion forums, serving millions of customers daily, using VisualWorks Smalltalk. From 2005, I was the sole Smalltalk developer for the site.
9/2006 to 12/2006 Adapted the 1995 Windows version of the Augment system to current Windows, Macintosh, and Linux systems, for the Bootstrap Institute (now the Doug Engelbart Institute).
12/2004 to 12/2006 System software architect at Weather Dimensions. Weather Dimensions is a startup company founded by Dan Ingalls, the original implementor of Smalltalk; it produces high-quality personal weather stations. I coordinated the commercialization of the technology, and developed future versions of the visual interface.
3/2005 to 4/2005 Computer scientist at Applied Minds, an engineering research firm founded by Danny Hillis and Bran Ferren. I worked on a tuple database system for real-time sensor data collection.
10/2003 to 4/2004 System software architect at Bedarra Research Labs (contract). Designed the distribution architecture for the OpenAugment project, a re-creation of Doug Engelbart's Augment system using open-source technologies (so as to make it more accessible to future developers). Augment (also known as NLS) was the system Engelbart used in the "mother of all demos" at the 1968 Fall Joint Computer Conference. This was the historic demo in which Engelbart introduced the computer mouse and pointer system, the graphical user interface, display editing, file linking and embedding, multiple windows, context-sensitive help, integrated text and graphics, hyper-documents, and two-way video-conferencing with shared workspaces. Our implementation used Squeak, and a distributed module system I wrote for it.
5/2000 to 5/2002 Computer scientist at the IBM T.J. Watson Research Center (contract). Co-developed a theory of human cognition. Designed a Squeak-based system for the interactive specification of the physiological expression of emotion by automata, including facial animation, speech recognition and speech synthesis. Built user interfaces with the Morphic and MVC frameworks. Assisted in a port of Squeak to Windows CE. Taught CS377B (Dynamic Multimedia with Squeak) at Stanford University's Center for Computer Research in Music and Acoustics (CCRMA), in the autumn quarter of 2001, as visiting lecturer.
5/1996 to 1/2000 Member of Research Staff at Interval Research Corporation of Palo Alto, CA. Interval was an incubator for high-tech companies specializing in digital technology used by everyday people. I worked predominantly on the MediaWire home media network system; developing the networking portions of a novel embedded, real-time operating system, derived from Squeak Smalltalk, which ran on custom hardware. Implemented a streaming framework for Squeak which unifies access to diverse external resources, including TCP/UDP, filesystems, and MIDI. Assisted in custom virtual machine development and maintenance, using platform-dependent code-generation tools and Squeak's platform-independent virtual machine simulator. Contributed to several other Interval projects, in areas such as digital sound synthesis and consumer filmmaking.
11/1993 to 4/1996 Member of the Technology Group at Atari Games Corporation of Milpitas, CA. Designed and implemented an audio content development system for the arcade games division. I wrote the system with VisualWorks Smalltalk; it was platform-independent with regard to both composer and target platforms. The system generated the game-dependent sources of a real-time embedded audio operating system (written in C and assembler). It provided a composer-oriented interface to the diverse data structures used in producing interactive game audio. It was used for several games.
4/1993 to 11/1993 Member of the software development group at Ascent Logic Corporation of San José, CA. Participated in the design and implementation of human interfaces for the company's computer-assisted systems engineering product. Written with Objectworks Smalltalk, the product was the largest commercial Smalltalk application at the time.
3/1992 to 3/1993 Member of the Smalltalk engineering group at ParcPlace Systems of Sunnyvale, CA (that group has since become part of Cincom Systems, Inc., after having undergone reorganizations of ParcPlace to ParcPlace/Digitalk and ObjectShare). Participated in the implementation and release of the Objectworks and VisualWorks Smalltalk systems for twelve platforms. Responsible for various platform-specific areas of the Smalltalk virtual machine, and object memory support, including programming tools and documentation.

education

UC Berkeley
Berkeley, CA
B.S. EECS and B.A. Music
1991
Did research at the student-run eXperimental Computing Facility (XCF), and the music department's Center for New Music and Audio Technologies (CNMAT). Co-founded, named and directed Artists in Resonance, a mixed a cappella singing group, and founded NetJam, a worldwide digital artistic collaboration resource.

selected publications, presentations, recordings, and films

2025 "Livecoding Language Models: AI Context in Live Environments", a presentation for the UK Smalltalk User Group, London.
2023 "WebAssembly as a Smalltalk Compilation Target", a presentation for the UK Smalltalk User Group, London.
2021 "Caffeine", a presentation for the UK Smalltalk User Group, London.
2014 "A Spoonful of Raspberry Pi", a presentation for the FOSDEM 2014 conference, Brussels, Belgium.
2012 "Spoon: straightforward collaborative development, deployment, and discovery of Smalltalk apps", a presentation for the Appsterdam community, Amsterdam, Netherlands.
2012 Principal photography, scoring, editing, and post-production for coverage of Appsterdam's iOSDevCamp 2012.
2012 Music distributed by SoundCloud.
2011 A screencast of the Quoth livecoding system, for the annual Sound and Video Anthology of the Computer Music Journal, volume 35; MIT Press 2011.
2005 "Musique Littérale", panel and performance using Quoth at the 2005 Transmediale conference, Berlin, Germany.
2004 "Spoon, a minimal yet extensible Smalltalk", presentation at Smalltalk Solutions 2004, Seattle, Washington, USA.
2002 N. Alvarado, S. S. Adams, S. Burbeck, C. Latta, "Beyond the Turing Test: Performance Metrics for Evaluating a Computer Simulation of the Human Mind", Second International Conference on Developmental Learning.
2002 C. Latta, N. Alvarado, S. S. Adams, S. Burbeck, "An Expressive System for Endowing Robots or Animated Characters with Affective Facial Displays", the 2002 conference of the British Society for Artificial Intelligence and the Simulation of Behavior, London, England.
2001 S. S. Adams, N. Alvarado, S. Burbeck, C. Latta, "Bootstrapping Semantics in an Autonomic Computing System", Workshop on Computational Semiotics
2001 "Handheld Squeak", invited talk at the 2001 European Smalltalk Users' Group conference, Essen, Germany.
2001 "Streaming Audio", in "Squeak: Open Personal Computing and Multimedia", edited by Mark Guzdial and Kim Rose, Prentice-Hall, New York, USA.
1999 "Online Music Collaboration", invited panelist at the 1999 International Music eXposition conference, New York, USA.
1991 "Notes From the NetJam Project", Leonardo Music Journal vol. 1 issue 1 (December), Permagon Press, London.

selected teaching experience

2012 "You Have No Excuse For Not Editing Your Movies" and "Introduction to Squeak Smalltalk" for the Appsterdam community (recurring "guru sessions"), Amsterdam, Netherlands.
2001 "CS377B: Dynamic Multimedia with Squeak", an invited one-quarter, 3-unit music/computer science course at Stanford University's Center for Computer Research in Music and Acoustics (CCRMA), Stanford, California, autumn quarter.

independent research

Epigram, a novel framework for parsing, compilation, and decompilation that delegates to reified BNF grammar symbols.

A self-hosted Open Smalltalk virtual machine and object memory, written in Smalltalk and decompiled to WASM GC for operation in web browsers. It uses AI-assisted dynamic method translation to optimize high-frequency code paths. Each Catalyst module can run multiple concurrent systems, and uses this ability to provide continuity of operation across class type changes. Catalyst leverages JavaScript for finalization and host device driver access, and uses SqueakJS as an environment for simulation, debugging, and deployment.
Catalyst, a self-hosted WASM GC implementation of the Open Smalltalk virtual machine and object memory, with dynamic LLM-assisted method translation

A self-hosted Open Smalltalk virtual machine and object memory, written in Smalltalk and decompiled to WASM GC for operation in web browsers. It uses AI-assisted dynamic method translation to optimize high-frequency code paths. Each Catalyst module can run multiple concurrent systems, and uses this ability to provide continuity of operation across class type changes. Catalyst leverages JavaScript for finalization and host device driver access, and uses SqueakJS as an environment for simulation, debugging, and deployment.
Quoth, a dynamic interactive fiction system

An interactive fiction authoring system operable from within the presented virtual space (rather than before runtime in a traditional development environment). I use it for live improvisational computer music performance.
Context, a minimal and modular Smalltalk system

Empirical determination and description of a minimal object memory image and virtual machine. A module system for collaboration, and the composition and deployment of applications, enabled by remote messaging and distributed computation.
the Flow streaming framework

Development of an object model which provides consistent message interfaces for the manipulation of diverse external resources, including TCP/UDP, filesystems, and MIDI.
Squeak Smalltalk

Participation in the evolution of the open-source Squeak Smalltalk system from its initial release. Development of release processes, assistance with project selection and advocacy.
NetJam

Implementing a system for remote musical collaboration, using the Flow streaming framework and Smalltalk.

My references are available by request.