Guy Royse
Developer Advocate at Redis
Columbus, Ohio, United States
Actions
Guy works for Redis as a Developer Advocate. Combining his decades of experience in writing software with a passion for learning—and for sharing what he has learned—Guy explores interesting topics and spreads the knowledge he has gained around developer communities worldwide.
Teaching and community have long been a focus for Guy. He runs his local JavaScript meetup in Ohio and has served on the selection committees of numerous conferences. He'll happily speak anywhere that will have him and has even has helped teach programming at a prison in central Ohio.
In his personal life, Guy is a hard-boiled geek interested in role-playing games, science fiction, and technology. He also has a slightly less geeky interest in history and linguistics. In his spare time he likes to camp and studies history and linguistics.
Guy lives in Ohio with his wife, his sons, and an entire wall of board and role-playing games.
Area of Expertise
Plucking Data from Thin Air with Software-Defined Radio
Data is everywhere. You know that of course, you've been on the Internet. But did you know it's literally whizzing past your head right now, encoded in invisible light? Radios of all sorts constantly broadcast signals containing everything from current weather conditions to the amount of air in your tires. And you can access that data, from code, if you have the right tools. In this workshop, you're going to learn what those tools are and how to use them.
You'll use a software-defined radio—that's a cheap radio dongle that has an antenna connector on one side and a USB plug on the other—and free software to capture signals from the airwaves. These signals will include aircraft location information sent from ADS-B transponders, AX.25 data packets broadcast by amateur radio operators over APRS, and the emissions of various IoT devices. You'll view this data directly using free tools and feed that data it into a database to be displayed on a web-based dashboard—all running on your computer and your computer alone. No Internet.
At the end of this workshop, you'll have the tools needed to work with software-defined radio installed, configured, and working. You'll be able to use these tools to view data that you didn't even know was there. And, you'll have the skills to capture that data for use in your applications.
NOTE: This workshop requires hardware. You will need an RTL-SDR-based software-defined radio, a suitable antenna, and cables to connect it to your computer. I recommend this kit here. https://www.amazon.com/NooElec-NESDR-Smart-Bundle-R820T2-Based/dp/B01GDN1T4S/
Florida Man Uses Cache as Database
Florida Man loves speed. He loves it so much that he’s going to do the unthinkable—he's going to use a cache as his primary database. We'll explore just how Florida Man will do this without losing persistence and without having to drop ACID—that's atomicity, consistency, isolation, and durability. And we'll see that Florida Man can have all the CRUD a database provides and the blazing fast speed that a cache provides.
We'll do this with an app that would make Florida Man proud. I've cooked up a service that screen scrapes websites with articles featuring his exploits and loads them into Redis—my cache of choice. On top of this, I've built a website that allows users to view and search for articles—using tags, keywords, and vector search.
I'll show how all of it works—covering the details above—and explain what vector search and embeddings are in a way that even Florida Man could understand. And, of course, I'll demo it live so we can find the Florida Man stories you need to see.
When it's all said and done, you'll see how a cache like Redis can be persistent, ACID-compliant, and even searchable. You'll have an intuitive understanding of vector search, and—best of all—you'll have an app that you can use to start your own projects.
Finding Bigfoot with JavaScript + Vector Search
Bigfoot has been a staple of American folklore since the 19th century. Many are convinced that Bigfoot is real. Others suggest he’s merely a cultural phenomenon. And some just want to believe. There is even a group, the Bigfoot Field Researchers Organization, that tracks Bigfoot sightings and makes the reports available online. And they have thousands of reports.
I want to explore this delightful data but, unfortunately, it’s been made for the convenience of humans and not computers. While this makes it easy for me to read, searching for reports can be a bit of a challenge. Some of the data is tidy and computer-friendly—like the latitude and longitude. Other bits are really for us humans—like the eyewitness accounts. So, how can I find the Bigfoot sightings that interest me most with data structured like this?
Well, it's easier than you think if we turn these Bigfoot sightings into embeddings and search them semantically with a vector database!
But what's an embedding? And what's a vector database? And what's semantic search? Well, that's what I'll cover in this session. I'll begin by exploring embeddings, showing how unstructured data, such as text and images, can be translated into hyper-dimensional arrays using off-the-shelf AI models that anyone can download for free. Then I'll talk about vector databases, covering what they are and how you can use them to store and search those embeddings with embeddings of your own.
Of course, we'll do this all by example. I've converted all of the eyewitness accounts to embeddings. I've loaded them into a vector database—Redis in this case because, well, that's where I work. I've built an application around these embeddings and that database so that anyone can find Bigfoot sightings that match queries optimized for humans and not machines. And, I'll show you the code and the queries of this application so that you can build something similar for yourself.
When we’re done, you’ll know what embeddings are and how *you* can use them with a vector database to search semantically. You can use this newfound power for boring old corporate data, but I’m going to use it to find Bigfoot!
Modern Problems Require Modern Solutions: Finding Your Meme Twin with Embeddings & Vector Databases
Do you look like a famous meme character? Does someone you know? Knowing this information is vital—both for your career and your personal life. After all, am I the only one around here who wants to avoid [Angry Walter](https://knowyourmeme.com/memes/am-i-the-only-one-around-here)? And who *wouldn't* want to work with [Success Kid](https://knowyourmeme.com/memes/success-kid-i-hate-sandcastles).
But can we even find out if we have a meme twin? There are lots of memes. And lots of people. How could we possibly search them all? Well, it's easier than you think if we turn those memes into embeddings and search them with a vector database!
But what's an embedding? And what's a vector database? Well, that's what I'll cover in this session. I'll begin by exploring embeddings, showing how unstructured data, such as text and images, can be translated into hyper-dimensional arrays—called vectors—using both common and custom AI models. Then I'll talk about vector databases, covering what they are and how you can use them to store and search those embeddings with embeddings of your own.
Of course, we'll do this all by example. I've turned all the big memes—from [Ancient Aliens Guy](https://knowyourmeme.com/memes/ancient-aliens) to [Zombie Boy](https://imgflip.com/memegenerator/184608242/zombie-boy)—into embeddings and have loaded them into a vector database. I've built an application around these embeddings and that database. I'll show you the code and the queries of this application so that you can build something similar for yourself. And, most importantly, we'll take some photos during the session and use it all to find your meme twin!
So, are you ready to find your meme twin? Or are you ready to learn how to use this technology? I say, [Why Not Both](https://knowyourmeme.com/memes/why-not-both-why-dont-we-have-both).
Codex: The Impact of English on Programming Languages
There are two types of biases in the world. Those that you are aware of and those that you are not. A good goal is to try to move the later biases into the former category, to make you aware of your hidden biases. This allows you to do something about them. Otherwise, these biases can creep into many aspects of our life and our world.
Language, in particular, is a very power bias that most of us are unaware of. It shapes how we think, how we talk, and how we describe the world. It informs much of what we do and what we make, including our technology. Including our programming languages.
So, I'm going to explore the impact of human language on our code. I'll look at how vocabulary and grammar in English is reflected in the languages we use. And, I'll play some "what if" games to help us see past our bias by speculating on what programming languages would look like if they had been written by speakers of different languages.
In doing this, we can discover new ways to look at programming and programming languages. When we're done, you'll look at the relationship between language and programming in a way you've probably never done before. And you'll be aware of a hidden bias that you've had your entire career.
Beyond the Cache with Redis + Node.js
If you’re like a lot of developers, you’ve probably used Redis. You’ve probably used it as a cache—which it does amazingly—and you’ve probably cached strings. But Redis is much, much more than just a cache. It can be a message broker using queues, streams, and pub-sub. It can be a multi-model, in-memory, NoSQL database storing all sorts of data structures like hashes, lists, sets, and binary data. It can even be extended using modules to add new commands, new data structures, and new capabilities.
In this workshop, I’ll show you how to take full advantage of all that Redis can do from your Node.js applications—starting from the very beginning with a primer on Redis. We’ll cover the basics—talking to Redis from the command line and exploring its capabilities. Then, we’ll take advantage of those capabilities from Node.js, building some simple yet surprising powerful applications using the low-level Node.js client—Node Redis.
After that, we’ll look at ways to extend Redis with modules, with an emphasis on using RediSearch to find the data and RedisJSON to store documents.
Redis does a lot more than you probably thought. The whole point of this workshop is to show you that “more” and give you the knowledge to take greater advantage of the Redis you are already using. So, let’s start learning and start using!
So You Think You Know Redis!
Redis. You love it. You need it. But how well do you really know it? Find out on the exciting new gameshow So You Think You Know Redis! where our host will challenge you to answer a series of questions about Redis. The first person to answer each question correctly wins a crappy American candy bar!
On So You Think You Know Redis! you’ll learn things about Redis you might not know. Crazy things like how to set up circular lists, extract 13-bit integers, or add numbers with sorted sets. Tricky things like cache invalidation, cache eviction, and single-byte caches. Advanced things like persisting your data with Redis and extending Redis with modules.
When we’re all done, you’ll walk away with a deeper knowledge of Redis and possibly that chocolate you desperately need. What’s not to love?
Tracking Aircraft with Streams + Software-Defined Radio
Aircraft are everywhere. Knowing exactly where is paramount as it’s considered bad form for two aircraft to be in the same place at the same time. To avoid this, aircraft worldwide constantly and publicly broadcast their location, heading, and all sorts of other data using a system called ADS-B or Automatic Dependent Surveillance Broadcast.
This data is a natural fit for an event stream. After all, it’s a constant stream of data that is literally being broadcast in real-time. But how can we capture these broadcasts and the data within? Surely it must require expensive hardware and special tools!
Not so much. It turns out that we can capture ADS-B data easily using a combination of a cheap radio dongle and free software—a combination called software-defined radio. From there we can store it in an event stream and consume, transform, and publish it at our leisure. Cool, right?
In this session, you’ll learn how software-defined radio works (and not just for ADB-S), how to receive and store ADS-B data in event streams, and how to use those streams to build a map showing real-time flight data using Node.js, Redis Streams, and whatever front-end JavaScript framework happens to be popular that day!
Finding Bigfoot with Redis + RediSearch
Bigfoot has been a staple of American folklore since the 19th century. Many are convinced that Bigfoot is real. Others suggest he’s merely a cultural phenomenon. And some just want to believe. There is even a group, the Bigfoot Field Researchers Organization, that tracks Bigfoot sightings and makes the reports available online. And they have thousands of reports.
I want to explore this delightful data but, unfortunately, it’s been made for the convenience of humans and not computers. While this makes it easy for me to read, searching for reports can be a bit of a challenge. Some of the data is tidy and computer friendly—like the latitude and longitude. Other bits are really for us humans—like the eyewitness accounts. So, how can I find the Bigfoot sightings that interest me most with data structured like this?
Well, I’ll show you! In this talk, I’ll load these Bigfoot sightings into Redis and use RediSearch to index them, making it easy to query both the computer friendly bits and the human friendly bits. I’ll also show you how to search on fields, find keywords within text, find nearby Bigfoot sightings using geolocation data, and run queries that aggregate these searches.
When we’re done, you’ll know how to quickly search, query, and aggregate data in Redis using RediSearch. You can use this newfound power for boring old corporate data, but I’m going to use it to find Bigfoot!
Understanding Probabilistic Data Structures with 112,092 UFO Sightings
There are three reactions to the title of this talk:
- What the heck’s a probabilistic data structure?
- UFO Sightings… wha?
- 112,092 is an oddly specific number.
This is a talk about the first bullet point with the second thrown in just for fun. I like weird stuff—UFOs, Bigfoot, peanut butter and bologna on toast—maybe you do too? As far as the third bullet point, well, that’s how many sightings I have.
Now, if you’re like most developers, you probably have no idea what probabilistic data structures are. In fact, I did a super-scientific poll on Twitter and found that out of 119 participants, 58% had never heard of them and 22% had heard the term but nothing more. I wonder what percentage of that 22% heard the term for the first time in the poll. We’re a literal-minded lot at times.
Anyhow. That’s 4 out of 5 developers or, as I like to call it, the Trident dentist ratio. (It’s actually a manifestation of the Pareto principle but I’m a 70s kid). That’s a lot of folks that need to be educated. So, let’s do that.
A probabilistic data structure is, well, they’re sort of like the TARDIS—bigger on the inside—and JPEG compression—a bit lossy. And, like both, they are fast, accurate enough, and can take you to interesting places of adventure. That last one might not be something a JPEG does.
More technically speaking, most probabilistic data structures use hashes to give you faster and smaller data structures in exchange for precision. If you’ve got a mountain of data to process, this is super useful. In this talk, we’ll briefly go over some common probabilistic data structures; dive deep into a couple (Bloom Filter, MinHash, and Top-K); and show a running application that makes use of Top-K to analyze the most commonly used words in all 112,092 of my UFO sightings.
When we’re done, you’ll be ready to start using some of these structures in your own applications. And, if you use the UFO data, maybe you’ll discover that the truth really is out there.
Putting the D&D in TDD
Are you tired of TDD workshops that make you do boring things like calculating bowling scores and prime factors or demonstrate how to win the game of life? If so, this is the session for you! In this TDD workshop, we will be building the domain model for EverCraft -- a new MMORPG from Blizzards of the Coast. We have lots of story cards prepared to cover features from combat to magic, classes to spells, and races to items. Plus, we'll be defining some of these cards during the session in case you want that +9 knife of ogre slaying or enjoy casting magic missile at the darkness.
This workshop is language agnostic and for all levels of developers. The focus is on TDD and emergent design but pair programming will be covered as well. The only requirement is that you bring a laptop and that you be able to test-drive your code with your language of choice. When you are done you will emerge a better programmer for the experience but there is a small chance you will have a craving for Cheetos and Mountain Dew.
Memory First: An Introduction to Redis
Odds are, you’ve heard of Redis. Maybe you’re a total noob and want to learn all about it. Maybe you’ve used it to cache an API call or some JSON strings and want to know what else it can do. Maybe you *haven’t* heard of Redis and are curious what all the fuss is about.
Wanna find out? Join me as I explain what Redis is—a wicked-fast, memory-first database—and why you should care. I’ll share with you what it can store, how you can access it, and how you can make sure that what’s in memory is still there when the power goes off. We’ll explore how you can extend Redis—adding new commands, new data structures, and new capabilities. And, we’ll do it both from the command line and from code with examples in C#, Java, JavaScript, and Python.
When we’re done, you’ll know what Redis is and what all the fuss was about. But, more importantly, you’ll know how to put memory first to build fast applications and faster experiences.
Beyond the Binary: Seven Odd Bits of Guidance for Geeks
As developers, engineers, nerds, geeks, coders or whatever you want to call us, it's easy to think that it's all about the tech. Our skill with a language, a tool, a stack—that's what makes us valuable. That there are techies and normies and that the geeks shall inherit the Earth.
Within tech, we argue about what is best—static or dynamic, object-oriented or functional, tabs or spaces. We seek best practices. We embrace what is new and throw out what is old—calling it tech debt. But the world isn't black and white—it isn't all ones and zeros—and most things are a gray smear. It always depends. New does not mean best.
Over my decades as a developer—and a human—I've learned many lessons and ignored many more. In this talk, I'll share these lessons and more—seven in total. I'll bind all them together with a rather odd theme—astrology. A theme that, in itself, is another lesson about what you choose to learn.
You won’t just walk away from this talk with seven quirky lessons or some new idea to noodle upon—although those will be there. You’ll also begin to see beyond the binary itself and apply that insight to both technology and the humans who make it.
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top