Speaking

I’m available as a speaker and have given the following talks in the past. For any inquiries, shoot me an email.

Ruby

Building a JSON API with Rails – 40-45 min

In this talk, I live-code an entire MVC RESTful API using the Rails framework, all the way from scaffolding some models to handling serialization, authentication, and more. Prior knowledge of Ruby on Rails is helpful, but not necessary.

Metaprogramming in Ruby – 40-45 min

Metaprogramming is a concept that stretches across languages, but Ruby allows you as the developer to take it to the max and write really powerful (and dangerous) code. In this talk, I review modifying existing classes, ruby’s object model and the ancestors chain, defining methods dynamically, modifying scope, ruby’s various closures, the various eval methods, and much more. There are plenty of interactive code examples I go through with each new topic.

Getting Started with Sinatra – 10-12 min

This short talk has no slides and is strictly live-coding a small Sinatra app – explaining along the way how to handle various HTTP requests, render templates, return JSON, handle errors, and deploy to Heroku.

Type Introspection and Reflection in Ruby – 15-20 min

In this talk, we interactively learn the programming concepts of type introspection and reflection, how other programming languages apply these concepts, and finally, how Ruby applies them. This talk ends with a session over eval statements (as a form of reflection) – and how they can be used for both good and evil.

Javascript

How WebSockets Work – with Socket.io Demo – 40-45 min

In this talk, we’re going to cover how WebSockets work. About 80% of this talk will be a live coding demo where we’re going to build a simple chat app using WebSockets with the help of the Socket.io node library – all live coding, explaining everything on the way. The rest of the time will be dedicated to explaining the WebSocket protocol, how it differs from standard HTTP, and why you should (and maybe shouldn’t) use WebSockets in some of your projects today. In the end, we’ll have an application similar to websockets.thesocietea.org.

Prototypal Programming in Javascript – 40-45 min

Javascript is a prototypal OO language – not a class-based OO language like many developers are used to. In this talk, I’ll review what it means to be prototypal, how it differs from class-based languages, and how you can structure your Javascript today to take advantage of this paradigm. This talk covers the core topics of how Javascript works – there won’t be any plugins, libraries, or frameworks discussed, just pure Javascript. We’ll cover what prototypes are, the prototype chain, how “inheritance” (or more correctly, behavior delegation) works, what the new ES6 “class” keyword is actually doing behind the scenes, and more. Be prepared to learn!

Web Development

Building an Accessible Website – 40-45 min

In this talk, I’ll teach you how to build a website that is fully accessible to users with disabilities – whether they have vision impairments, auditory impairments, fine motor impairments, and even non-disabled users who are just in “crisis” moments. We’ll go over the traditional accessibility concerns such as image alt attributes – but we’ll cover some more in depth accessibility topics such as how to develop with skip menus, keyboard navigation, ARIA roles, semantic HTML, focus states on elements, how the accessibility tree works, color schemes, section 508 guidelines, and more!

General

What to Know as You’re Becoming a Developer – 40-45 min

This talk is specifically geared towards young adults with a serious interest in programming (and already have a little background knowledge). This includes students in AP high school programming classes, vocational classes, college classes, and local development groups.

The 3 Rules of Dev Blogging – 10-12 min

This is a short talk over the core things I’ve learned over the many years that I’ve maintained a development blog – broken down into 3 actionable rules. Completely language and skill-level agnostic, this talk is for aspiring and expert developers alike.