Marc Sugiyama

Experienced Erlang engineer, consultant, and trainer

Marc Sugiyama is a software engineer at Datometry where he works on HyperQ an Adaptive Data Virtualization(TM) technology that enables enterprises to run their existing applications on modern cloud data warehouses, without rewriting or reconfiguring them. Prior to joining Datometry, Marc was a senior architect at Erlang Solutions, Inc., where his projects included developing an OpenFlow controller and sample applications for the IvanOS project, design and code reviews, and providing training at conferences and for clients. A Bay Area native, Marc has more than 30 years of software development experience and has worked on everything from testing frameworks at Sybase and Cisco to SMP relational database engines at Sybase, an MMO engine for Pixverse (a company he co-founded), and a large-scale real-time chat system for hi5 Networks. A published author, Marc wrote his first magazine articles and books while still in high school. Marc holds a BS in engineering and a masters of engineering from Harvey Mudd College. He currently serves on the College Preparatory School Advisory Council and the board of directors of the Heart Mountain Wyoming Foundation.

Past conferences

Ju Goncalves
Code BEAM SF 2019

Abstract nonsense

Generative art programming requires many computations, such as random number generation and image output. What if we applied category theory to model a declarative, purely functional way of programming artworks? In other words, what if we could generate abstract nonsense with abstract nonsense?


Introduce participants to monoidal categories and to how to use them to handle effects required in generative art programming

Marc Sugiyama
Code BEAM SF 2019
28 Feb 2019
16.25 - 17.10

Server-side network protocol

Erlang's binary pattern matching and finite state machine behaviors make it easy to write network server protocol handlers. At Datometry, we added our own ODBC-driver and corresponding server-side protocol handler to allow our customers to replace ODBC drivers from their previous database vendor. We used Postgres v3 as a starting point. To better understand the protocol, we created a simple server using gen_statem. We'll cover the motivation for building our designing our own network protocol, and the design and implementation details of our prototype server.


Demonstrate the power of binary pattern matching and using a finite state machine to track the protocol state, tying all of the pieces together into a server.


Server-side engineers, Network server developers.