Yos Riady software craftsman 🚀


I’ve given quite a few talks over the years. Talking about complicated things to big groups of people is a fun skill to acquire, and there’s still a long way to go.


Writing Domain Specific Languages with JSON Schema

In this talk, learn how you can use JSON Schema to write a specification language. You will learn about what Domain Specific Languages are, how the WAML web automation language was developed using JSON Schema, and the far-reaching applications of JSON Schema in other domains such as Headless CMSes.

Schema-First API Design

The Schema-first API design approach advocates for writing your API definition first in one of many API Specification languages before writing any code. This talk introduces you to the realm of Schema-First API design and how to get started with the OpenAPI ecosystem.

Type Checking in Javascript

Developers like coding in JavaScript because it helps them move fast. The language facilitates fast prototyping of ideas via dynamic typing. However, evolving and growing a JavaScript codebase is notoriously challenging. Developers cannot move fast when they break stuff. Flow is a project that adds a layer of types to a JavaScript codebase, and provide tools that use type information to solve the above problems.

Fun Functional Javascript (In progress)

In this talk, learn a handful of fun (and practical!) abstractions for modeling pure functional programs in JavaScript.


Sagas with Step Functions

Video. In distributed systems, business transactions spanning multiple services require a mechanism to ensure data consistency across services. The Saga pattern is a pattern for managing failures, where each action has a compensating action for rollback. In this talk, learn how you can use AWS Step Functions to create state machines for your Lambda functions and apply the saga pattern to serverless.

Building Scalable applications with the Serverless framework and AWS Lambda

Get the Book. Video. Serverless is a hot topic in the software architecture world. A serverless architecture approach replaces long-running virtual machines with ephemeral compute power that comes into existence on request and disappears immediately after use. Pay for the hamburger, not the cow!

React Made Easy and Simple with Next.js

It’s not a secret that creating client-side JavaScript is pretty difficult these days. Next.js is a minimalistic framework for server-rendered React applications with zero setup and simple deployment!

Writing and Publishing Elixir Libraries

In this talk, we’ll walk through the process of writing and publishing an Elixir library from scratch. Along the way, we’ll discover a handful of Elixir features such as: Mix, Documentation, Doctests, Typespecs, and Hex.

Event-Driven APIs with Webhooks

Arrr! The concept of a Webhook is simple. Webhooks are a way to receive valuable information when it happens, rather than continually polling for that data and receiving nothing valuable most of the time. In this talk, discover the wonderful world of webhooks, real-life applications, and best practices.

Beyond JSON: Alternative Data Serialization Formats

Today, JSON (Javascript Object Notation) is the de-facto serialization format for exchanging data between HTTP-connected services. Several features of JSON makes it a useful general purpose format: it’s human readable, easy to learn, and the ubiquity of Javascript. In this talk, let’s look beyond JSON. We’ll learn about three different serialization formats (MessagePack, Protocol Buffers, and Apache Avro); and discover a range of benefits unique to each.


GraphQL in an Age of REST

Video. GraphQL is an application layer query language from Facebook. With GraphQL, you can define your backend as a well-defined graph-based schema. Then client applications can query your dataset as they are needed. GraphQL’s power comes from a simple idea — instead of defining the structure of responses on the server, the flexibility is given to the client. In this talk, discover a new approach to build and expose Web APIs. Will GraphQL do to REST what REST did to SOAP?

Entity Component Systems in Elixir

Entity-Component-System (ECS) is a distributed and compositional architectural design pattern that is mostly used in game development. Elixir is a dynamic, functional language built on top of the Erlang VM designed for building scalable and maintainable applications. In this talk, discover how we can use both ECS and Elixir in a novel approach to structure our programs beyond the traditional OO/inheritance paradigm.


Introduction to React

A talk on the React.js library, covering the two key principles of react: reusable components and statelessness in your UI. Also covers some internals of the virtual DOM.

Online Payments and You

A talk on online payments and how to use PayPal to add payments to your application.

Web Application Development Course

Designed, lead, and taught an introductory Ruby and Rails curriculum for more than 100 freshman students for a summer application development course at the National University of Singapore.


A Gentle Introduction to Web Map APIs

Lead and taught a technical workshop on Web Map APIs and how to build map-intensive applications such as Airbnb and Foursquare using OpenStreetMap, Mapbox, and Leaflet. Also covers “slippy” maps, tileservers, and geocoding.

Python List Comprehensions

Gave a lightning talk on Python List Comprehensions.