Over the past few years I've been fortunate enough to be able to share ideas, skills, and knowledge through speaking at meetups and conferences. Talking about complicated things to big groups of people is a fun skill to acquire, and I still have a long way to go.
Building dApps for Fun and Profit (GeekCamp, Early 2019)
A decentralized app or “dApp”, is an application that allows users to control and own their data, without oversight from any centralized provider, often based on blockchain technology. In this workshop, learn how to write smart contracts and build decentralized applications. You will start by learning the fundamentals of blockchain networks and cryptocurrencies. Then, you will get a practical hands-on with the Solidity programming language and develop a dApp of your own, running on the Ethereum blockchain.
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, discover a handful of design patterns that have emerged from the Serverless and Functions-as-a-Service (FaaS) ecosystem. Patterns covered include event-driven architectures and distributed sagas.
This talk introduces the audience to Serverless computing and FaaS concepts (Events and Functions.) The audience will also discover a handful of useful and interesting design patterns that they can adopt in their own projects.
When you have a great idea, the last thing you want to do is set up infrastructure. This talk presents the state of serverless in 2018.
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.
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.
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.
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!
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.
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.
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-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.
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.
A talk on online payments and how to use PayPal to add payments to your application.
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.
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.
Gave a lightning talk on Python List Comprehensions.