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 Activities
Code BEAM America 2021
11.15 - 11.55
When you have to make it faster
Our product, Hyper-Q, enables modern cloud data warehouses to emulate Teradata, aiding with the migration of on-premises solutions to the cloud. Hyper-Q translates existing applications' queries in real-time to run natively in the cloud and converts data received from the cloud into the format needed by the application.
We recently missed service level agreements with a customer because our product, Hyper-Q, added significant overhead to a data warehouse application. Through careful investigation, using profilers, continuous improvement, and focused engineering considering Erlang characteristics, we doubled our performance and improved system scalability. This talk describes the steps and techniques we used to understand where to focus our engineering efforts and beat our service level agreements.
Code BEAM SF
11.30 - 12.15
Coding for global languages: Unicode, charsets, strings and binaries
Writing global software means our programs need to speak global human languages, but writing programs that work correctly with non-Western European languages is at best a confusing affair. UTF8, latin1, Unicode?
What do these terms mean and how are they related to one another?
And what does Erlang do?
This talk demystifies the terminology around character encoding, explains how to retrofit your Erlang program for Unicode using Datometry HyperQ as a case study, and gives some best practices to help you break the one-byte/one-character assumption.
THIS TALK IN THREE WORDS
Unicode
Character encoding
World languages
OBJECTIVES
Demystify character set encoding, unicode, and the related Erlang APIs.
TARGET AUDIENCE
Engineers developing software for global markets.
Code BEAM STO V
18.25 - 19.05
Unicode, Charsets, Strings, and Binaries
TALK LEVEL: BEGINNER / INTERMEDIATE / ADVANCED
Writing global software means our programs need to speak global human languages, but writing programs that work correctly with non-Western European languages is at best a confusing affair. UTF8, latin1, Unicode?
What do these terms mean and how are they related to one another?
And what does Erlang do?
This talk demystifies the terminology around character encoding, explains how to retrofit your Erlang program for Unicode using Datometry HyperQ as a case study, and gives some best practices to help you break the one-byte/one-character assumption.
THIS TALK IN THREE WORDS
Character sets
Character encoding
Clarity
OBJECTIVES
- Demystify terminology around character sets and character set encoding.
- Provide best practices to avoid common pitfalls.
TARGET AUDIENCE
Erlang developers working on internationalised software.
Code BEAM SF 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.
OBJECTIVES
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.
TARGET AUDIENCE
Server-side engineers, Network server developers.