Talks & Workshops

If you're hosting an event and would like me to speak, feel free to reach out.

How to write secure smart contracts with Slither and Echidna


Learn how you can audit smart contracts using the open source tools! Slither and Echidna are part of the standard toolset that top smart contract auditors use to audit Solidity contracts.


Getting Started with Decentralized Finance


Decentralized Finance (or DeFi) is an emerging category of financial applications that are being developed on top of trustless networks.

In this talk:

  • Learn what DeFi means and why it matters.
  • Discover popular financial applications on Ethereum.
  • Uncover the mechanics behind decentralized lending.
  • Experience a live demo of DeFi lending and borrowing.

Getting Started with Smart Contracts


A decentralized app or “DApp”, is an application that allows users to control and own their data, without oversight from any centralized provider, running on smart contracts.

Come and discover how you can write smart contracts and build decentralized applications! In this workshop, get a practical hands-on with the Solidity programming language.


Building ÐApps series


A decentralized app or "ÐApp", is a software application that runs on a distributed computing system such as the Ethereum blockchain. As opposed to traditional centralized applications, where the frontend talks to APIs and datastores running on centralized servers, a ÐApp talks to smart contracts on decentralized blockchains.

A series of talks on smart contract development and building decentralized applications on Ethereum.


Building Software the FaaS Way


Serverless is a new development paradigm that's changing the way we write applications. A new programming approach is necessary, one that allows for coordinating across functions, services, and APIs. In this talk, learn about serverless computing and Functions-as-a-Service (FaaS). Discover a handful of design patterns that have emerged from the Serverless ecosystem, including event-driven architectures and distributed sagas.


A Brief Introduction to Serverless


When you have a great idea, the last thing you want to do is set up infrastructure. This talk gives an introduction to serverless technologies and architectures.


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 this talk, learn a handful of fun (and practical!) abstractions for modeling pure functional programs in JavaScript.


Going Serverless


Serverless computing replaces long-running virtual machines with ephemeral compute power that comes into existence on request and disappears immediately after use. Tap into a virtually endless mana pool!


Distributed Sagas with Step Functions


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


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 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


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


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


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.

Slides

Online Payments and You


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

Slides

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.

Slides

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.

Slides

Python List Comprehensions


A lightning talk on Python List Comprehensions.

Slides