skip to content
Podcast cover art for Accessibility and Cultivating Empathy with Ryan Magoon
Podcast

Accessibility and Cultivating Empathy with Ryan Magoon

PayPal engineer Ryan Magoon shares his path, shaped by a deaf family background, and highlights how empathy fosters better accessibility and user experiences

Open .md

Episode Description

Ryan Magoon, senior staff engineer at PayPal, discusses his coding journey, React Native evolution, web accessibility for disabled power users, and AI tools.

Episode Summary

In this episode of JavaScript Jam, recorded live at Render ATL, hosts Scott Steinlage and Anthony Campolo sit down with Ryan Magoon, a senior staff engineer working on checkout at PayPal. Ryan traces his path into programming from an unconventional start—his father used to make him hand-copy BASIC programs from books as a form of punishment—through C# and .NET, and eventually into the JavaScript and React ecosystem after ES2015 reignited his love for coding. He shares firsthand experience with React Native's early growing pains, particularly around Expo's limitations and the need to know Objective-C, while noting how dramatically the tooling has improved since then. The conversation shifts to accessibility, a subject close to Ryan given his upbringing in a deaf family with ASL as his first language. He argues that disabled users are often sophisticated power users whose needs go far beyond WCAG checklists, emphasizing that real accessibility requires empathy cultivated through direct experience with assistive technologies like screen readers and Braille displays. The episode wraps with a lighter discussion about favorite video games, upcoming tech conferences like All Things Open, the Research Triangle Park tech scene, and how the group uses AI tools like ChatGPT and GitHub Copilot in their daily workflows.

Chapters

00:00:00 - Meet Ryan Magoon at Render ATL

The episode opens with Scott and Anthony recording live from their hotel room at Render ATL in Atlanta, introducing the casual, in-person vibe of the conversation. They welcome Ryan Magoon, who introduces himself as a senior staff engineer working on the checkout team at PayPal, a role he's held for about six months.

Ryan explains how he transitioned from being an engineering manager and tech lead at Advance Auto Parts, where he rewrote their front end in Next.js, to pursuing a senior individual contributor role at PayPal. He describes the move as collecting experience across different engineering roles, and the hosts note how refreshing it is to speak with someone deep in production engineering rather than the DevRel world they typically cover.

00:02:33 - From BASIC Punishment to JavaScript Joy

Ryan shares his unusual origin story in programming: his computer-nerd father would punish him by making him hand-copy BASIC programs from books on a TRS-80, which initially turned him off from coding entirely. He started college in mechanical aerospace engineering before a family connection led him to an internship writing C#, launching his professional career.

From there, Ryan got involved in the .NET community and helped teams migrate from TFS to Git during Azure's early days, but found the Windows development environment overwhelming and uninspiring. When ES2015 landed, JavaScript's fast iteration cycle in the browser hooked him, and he pivoted fully into the React ecosystem—first through React Native around 2016, building a side project called Find My Spot that let people rent out their driveways near beaches.

00:06:15 - The React Native Evolution and Expo's Transformation

Ryan recounts the pain points of early React Native development, when Expo was too limited for production apps and developers frequently had to eject and work directly with native code. He explains how building and shipping apps required knowledge of Objective-C and Java, and shares a specific example of having to modify React Native Maps at the native level to add heat map functionality at Map My Customers.

The conversation compares React Native to standard React, with Ryan identifying debugging and navigation as the biggest differences due to the absence of URLs and the complexity of stack and tab navigations. He then highlights how dramatically Expo has improved, now abstracting away most native complexity and app store concerns, making it feasible for solo developers to ship production apps. Combined with TypeScript maturity, he sees React Native development as being in a much better place today.

00:09:01 - Accessibility and Disabled Power Users

Ryan reveals that accessibility is deeply personal to him—he grew up in a deaf family with ASL as his first language, raised partly by deaf grandparents, and his partner is visually impaired and uses a guide dog. This lifelong proximity to people with disabilities has given him a first-principles understanding of how assistive technology is actually used in the real world, beyond what any checklist can capture.

He discusses his React Miami talk, "Building for Disabled Power Users," which challenged the common perception of disabled users as helpless. Instead, he argues they are often the most proficient and loyal users of software, comparable to developers who master tools like Vim and TMUX. The key insight is that WCAG compliance alone doesn't ensure usability—cultivating genuine empathy through direct engagement with disabled communities and their assistive technologies is essential for building truly accessible products.

00:14:53 - Accessibility Tools, Screen Readers, and the Accessibility Tree

The discussion turns practical as Ryan walks through how developers can start improving accessibility. He recommends beginning with simple keyboard navigation testing—just hitting tab repeatedly to check focus order—and then using Chrome DevTools' built-in colorblindness and low vision simulations, which have been available since 2020 without needing any plugins.

Ryan emphasizes that everyone in product development should learn to use at least one desktop and one mobile screen reader, mentioning VoiceOver on Mac, JAWS and NVDA on Windows, and TalkBack on Android. He explains the accessibility tree as a DOM-like structure that shows only what assistive tech can interact with, filtering out meaningless elements like random divs. The conversation gets particularly interesting when Ryan describes how blind users type Braille on iPads by flipping the device over and using three fingers on each side, demonstrating the remarkable sophistication of assistive tech workflows.

00:20:21 - VS Code Accessibility, Video Games, and Conference Plans

Ryan highlights VS Code's impressive accessibility features, particularly its sound cue API that plays different audio signals for events like linting errors, breakpoints, and terminal exit codes—features that sighted developers might also find useful. This sparks a broader reflection on how accessibility work presents genuinely interesting technical challenges that many developers overlook.

The conversation lightens as the group discusses favorite video games, with Ryan championing Grim Fandango and Tears of the Kingdom, Anthony reminiscing about Ocarina of Time, and Scott recalling Command and Conquer and Call of Duty. They then talk about upcoming conferences, with Ryan expressing excitement about All Things Open in Raleigh and the Magnolia conference in Mississippi, leading to a discussion of Raleigh's Research Triangle Park as a major but underappreciated tech hub with companies like Epic Games and Apple establishing significant presence there.

00:27:08 - AI Tools in Daily Developer Workflows

The final segment explores how Ryan and the hosts use AI in their work. Ryan describes using ChatGPT for spot-checking writing, getting feedback on messages, and general brainstorming, while Anthony shares how he uses it heavily for summarizing articles for the JavaScript Jam newsletter and converting example apps between frameworks like React, Vue, and Svelte.

Ryan also mentions his experience with coding AI tools like Tabnine and GitHub Copilot, noting that Copilot Chat is particularly effective for generating integration test suites from existing React components. The episode wraps with Ryan directing listeners to find him on Twitter, and the hosts thanking him for a wide-ranging conversation that touched on engineering culture, accessibility advocacy, and the evolving developer toolkit.

Transcript

00:00:00 - Anthony Campolo

Yeah.

00:00:00 - Scott Steinlage

Welcome to JavaScript Jam. Yeah, we're gonna have some fun today, but I'm not gonna get into that just yet.

00:00:10 - Anthony Campolo

No fun yet. The fun will come.

00:00:12 - Scott Steinlage

We're gonna be boring.

00:00:13 - Anthony Campolo

You gotta wait for it.

00:00:13 - Scott Steinlage

Two seconds. You gotta have some fun, folks. We're here at Render ATL having a great time. We're out here looking out over the city from our hotel room, and we have a really awesome setup here. I'm really excited about it. And we have someone really cool sitting on the couch over here next to me. His name is...

00:00:34 - Anthony Campolo

What's his name?

00:00:36 - Scott Steinlage

Ryan Magoon. Thank you. Ryan Magoon in the house.

00:00:45 - Anthony Campolo

More and more tortured, dude.

00:00:47 - Scott Steinlage

I'm just trying to drag it out because I'm ready to get going. All right, let's do it. So my name is Scott Steinlage. I'm technical community manager at Edgio. And you are a developer advocate at Edgio. All right, who are you?

00:01:00 - Ryan Magoon

I'm a senior staff engineer at PayPal, working on checkout.

00:01:04 - Scott Steinlage

Yes. Ryan Magoon. Awesome, brother.

00:01:07 - Anthony Campolo

Checkout. I hear that's the important part.

00:01:10 - Ryan Magoon

Yeah, well, it makes the most money.

00:01:12 - Anthony Campolo

Makes the only money. Yeah, there's no checkout. There's literally no money.

00:01:17 - Scott Steinlage

Yeah, that's true. Can't happen if you can't swap the card or type it in.

00:01:23 - Anthony Campolo

How long you been at PayPal for?

00:01:25 - Ryan Magoon

Six months.

00:01:26 - Anthony Campolo

Six months.

00:01:26 - Ryan Magoon

Cool.

00:01:27 - Scott Steinlage

Yeah.

00:01:27 - Anthony Campolo

What inspired you to work for PayPal?

00:01:30 - Ryan Magoon

I was a senior engineer, a tech lead at Advance Auto Parts, working on their e-commerce, starting in React Native and ending up rewriting their whole front end in Next.js. Then PayPal reached out to me and was interested in some of that work. The interesting part was that it was a senior IC role — I was actually an engineering manager my last year at Advance. I got the opportunity to try my hand at being a staff-plus engineer. I was like, "oh, okay, let me go try this." Kind of collecting all the Infinity Stones for all the roles.

00:02:04 - Anthony Campolo

Well, this is great because we talk to a lot of DevRel people, a lot of developer advocates, some people who were engineers and moved to DevRel, some people who only did DevRel. But it's not as often we just get to talk to people who are in the guts of engineering, just slinging code. So it's gonna be great to talk to you about some of that. Why don't you give a little bit of your background and how you got into code? What inspired you to even learn to code in the first place?

00:02:32 - Ryan Magoon

From a really young age, my dad was a huge computer nerd. So I'd always have Linux around the house — not really coding, just using it for different stuff, playing video games. One of the punishments he would give me: we had a TRS-80 in the house, and sometimes he would make me read a whole letter out of the encyclopedia. But sometimes he would give me one of these books with all this BASIC code in it, and he would make me write out a whole program, and then if it didn't work, he would make me rewrite it.

00:03:01 - Anthony Campolo

It was like a weird form of education slash child abuse. Yeah.

00:03:05 - Ryan Magoon

So I actually didn't like programming that much because, like, I associated...

00:03:11 - Scott Steinlage

We all go back to our roots.

00:03:13 - Ryan Magoon

When I started college, I was doing mechanical aerospace engineering. I had some anxiety problems back then, learning disability stuff, so I was in and out of school. In between, my mom was friends with this guy working at a startup on the side — Jamie Dixon, really big in the .NET community. She sat me down and said, "you should go talk to him, you really need to get a job." So I talked to him and he gave me Code Complete. He was like, "go read this." I showed up, he said, "write a C# class," I did it, and he said, "you're hired." That's how I got started at the internship there. It was called LobbyGuard. Pretty interesting place.

00:03:55 - Anthony Campolo

And then how'd you find your way to this whole React front-end world from C#?

00:03:59 - Ryan Magoon

Back then they were pushing me toward CI/CD, which was actually really great. I was part of the .NET user group. They were taking me to meetups, and I was meeting all these people. I actually ran into Scott Hanselman a long time ago. Yeah, in 2012 when I was here, actually.

00:04:15 - Anthony Campolo

I think I saw him.

00:04:16 - Ryan Magoon

Yeah, I'll have to reach out to him. It was interesting because I just hated .NET, but I kind of cut my teeth back then helping people move from TFS to Git. And that's when Azure was first becoming a thing. And so I was doing that stuff, and it was really valuable to people. But I just was not into it. And so I wasn't progressing that much because I wasn't really putting the time in to get good at it.

00:04:36 - Scott Steinlage

Gotta be passionate.

00:04:37 - Ryan Magoon

And then ES2015 came out, and I was on Code School and messed with it a little, and I was like, "wow, this is actually so fun" — because being on Windows, being in Visual Studio was just so overwhelming. The amount of work you have to do just to get a Hello World. I felt like it was so complicated. And just being in the browser, your iteration cycle from code to result is so fast.

00:05:00 - Anthony Campolo

Yeah. JavaScript is actually fun.

00:05:01 - Ryan Magoon

It was addicting. And once the new versions of JavaScript came out, it was actually super fun. But most of the programming I was doing back then was on React Native when I started working with it.

00:05:13 - Anthony Campolo

So it would have been pretty early then in React Native's life cycle.

00:05:17 - Ryan Magoon

Yeah, 2016.

00:05:19 - Anthony Campolo

That's when there were migrations happening. There are some migrations that got unmigrated. Like, Airbnb was a famous example of that. And people were like, ooh, is React Native going to be a thing or not? And obviously it's still a thing and probably bigger than ever. Do you still do any React Native?

00:05:33 - Ryan Magoon

Not really. Yeah. So I had a side project called Find My Spot, which was an app that would let you rent out your driveway for the day if you have a beach house.

00:05:40 - Scott Steinlage

Oh, dope.

00:05:41 - Anthony Campolo

Smart.

00:05:42 - Scott Steinlage

Do you guys remember that pool app that came out, rent your pool out during, like, 2020? Yeah, when COVID happened, all the pools shut down, and this company did something like, come use my...

00:05:52 - Anthony Campolo

pool and give me Covid.

00:05:53 - Ryan Magoon

Sounds like an insurance nightmare for your pool, right?

00:05:55 - Scott Steinlage

And they had insurance in the app, just like Airbnb or Uber or stuff like that. But, yeah, it's very similar. And they have that for people's garages now. You can rent out someone's garage if they'll offer you a space. If you have, like, a boat or a car or something like that, you don't want to put it in storage. You use someone's garage at their place. It's kind of cool. Similar thing. It's neat.

00:06:14 - Ryan Magoon

Yeah.

00:06:15 - Scott Steinlage

So, hey, it actually took off in many different places.

00:06:18 - Ryan Magoon

I stopped using it right before it got good. Like, Expo was horrible back then. It was just a toy. Like, it was cool, but it just... You couldn't build a production app with it, really. You would have to eject. There was always some library you needed...

00:06:32 - Anthony Campolo

And to dig into that for people who aren't into this world: what you're saying is that you could use it to write very basic things, but as soon as you want to do something phone-native, like use the gyroscope or something, you have these native APIs that are written in Swift or something.

00:06:51 - Ryan Magoon

So part of it is using those native modules. The other part is actually building and shipping the app to the App Store — Expo was handling both of those things. It was just really hard to be proficient. You pretty much had to know some Objective-C and Java.

00:07:08 - Anthony Campolo

Right. That's what it was before Swift. Objective C. Yeah, yeah.

00:07:11 - Ryan Magoon

'Cause most of the stuff you're using, like React Native Maps, which Airbnb had open sourced, below that was Objective-C. So one of the things we had to do at Map My Customers, which is where I ended up going, was put heat maps in the map, and if they wouldn't accept your PR, you would have to modify it yourself and then inject it. And it's like a whole mess.

00:07:31 - Anthony Campolo

So what's the biggest difference between doing React Native and React proper?

00:07:35 - Ryan Magoon

Well, I think debugging is harder in React Native because you don't have URLs. So if you have deeply nested workflows, you can't just jump to something. Nowadays you kind of can, but back then you definitely couldn't. It was way harder to debug. Wrapping your head around how that works — you have stack navigations, tab navigations. But thinking about how you orient yourself around the app and do routing is probably the biggest difference. Styling is very similar, and the code is almost all the same logic-wise.

00:08:01 - Anthony Campolo

Yeah, I've always wanted to — I've never written a single line of React Native. I've been doing React for years and years, so I've always thought, I could probably ship a very rudimentary app. But I've never taken that dive. It's always a world I'm very curious to learn more about, even though I don't really know anything about it.

00:08:20 - Ryan Magoon

That's why I brought it up — I think the two big innovations are that Expo is actually amazing now and you don't have to eject from it. So all the pain...

00:08:29 - Anthony Campolo

I've heard Expo is incredible from people who use it. So it sounds like they really pulled it together.

00:08:33 - Ryan Magoon

All the pain I was describing — having to pull in things, worry about upgrades, dealing with the app stores — that's almost completely abstracted, and it's really, really amazing. As a solo dev, it's actually pretty feasible to ship quickly with that. Now that, and TypeScript not sucking, I think makes React Native dev just way, way better.

00:08:53 - Anthony Campolo

Well, once we ship the Astro JavaScript Jam front page, we'll ship a JavaScript Jam app to the App Store.

00:09:00 - Scott Steinlage

That would be fun.

00:09:01 - Anthony Campolo

Yeah, very cool. One of the things that you are really big into and seem to know a decent amount about and have worked a lot on is accessibility. So I'd love to pivot and talk a little bit about that. Why is accessibility a topic that you're passionate about? It's kind of a weird question because ideally everyone should be passionate about it, but it's unfortunately not the case.

00:09:24 - Ryan Magoon

Disability is part of my identity because I grew up in a deaf family. My parents were about 18 when I was born, so a lot of my early life was being raised by my grandparents, who are both deaf. ASL is my first language. Growing up in the deaf community and having grandparents like that and actually relying on people with profound disabilities really opens your eyes to how the world works for those people, how they get things done.

00:09:51 - Anthony Campolo

It's hard until you see it through their experience. It's like everything just works for us. So why doesn't everything work for everybody? It's like, well, a lot of reasons.

00:10:01 - Ryan Magoon

From that perspective, it's always been around. I've always been around deaf people and blind people. My partner is also visually impaired, has a guide dog — she's a lawyer and she writes books. I've been around really high-achieving people with disabilities and seen people using assistive tech in all kinds of different contexts. I wouldn't say I'm super skilled at accessibility in terms of working on it, but I would say from...

00:10:28 - Anthony Campolo

First principles — there are different ways to think about it. There's thinking from the user perspective: what are the specific disabilities we need to account for? What technologies are they using? What is it actually like for them to use those technologies? And then what is it like having to code for those technologies? I find that first-principles thinking can be really the hardest, because anyone can learn an API, but not everyone can live in someone else's shoes.

00:10:57 - Ryan Magoon

Definitely. That's actually kind of the big hypothesis behind the talk I did at React Miami.

00:11:03 - Anthony Campolo

Awesome. Talk about that.

00:11:04 - Ryan Magoon

Yeah. So it was titled Building for Disabled Power Users. And basically the point of it was, first off, the overlap between disabled users and what you would think of as a power user in terms of somebody who uses lots of special features of the app to improve their efficiency, to make their workflow better. And also, if you break those workflows, it's very bad and they'll probably leave. But they're also the most passionate users. If they get good at a tool, they'll probably stick with it. So as long as that's the best way to do it, they'll probably be the ones writing reviews and advocating and bringing people with them.

00:11:35 - Anthony Campolo

I like that term you use, power user, because this is something... I have a good friend, Ben Myers, who's one of the best accessibility experts I know, and what he'll say is that everyone who uses assistive technology and needs to use it becomes a power user by necessity. Like, they have to learn the ins and outs of that tech because it's their window into the world.

00:11:52 - Ryan Magoon

Yeah, exactly. If you've ever seen a professional or really anybody proficient with a screen reader or Braille display — I don't know if you've ever hung out with somebody like ThePrimeagen, somebody who's just wicked fast. They're using tmux and all this stuff in Vim, and you're like, "oh my gosh, how are they doing that?"

00:12:12 - Anthony Campolo

They do 10 things by the time it takes you to ask a question about the first thing they did.

00:12:15 - Scott Steinlage

500 keyboard shortcuts.

00:12:17 - Ryan Magoon

Yeah, exactly. And I think most people see disabled users through this infantilized lens — a person who can't do much, fumbling through life, probably doesn't have a real job, probably not in a hurry. And that's a big problem.

00:12:33 - Anthony Campolo

They'd be far more sophisticated at this tech than you could even imagine.

00:12:37 - Ryan Magoon

Oh, yeah, for sure. A big part of being competent in accessibility isn't just looking at a WCAG checklist — like, can I even tab through this website at all?

00:12:48 - Anthony Campolo

WCAG is, very quickly...

00:12:50 - Ryan Magoon

Yeah. The Web Content Accessibility Guidelines. So that is basically what the Americans with Disabilities Act says you have to do at a minimum for your website to be considered accessible for legal reasons.

00:13:02 - Anthony Campolo

And it's a spec. It's like a W3C spec that is not particularly user-friendly to read.

00:13:09 - Ryan Magoon

No, it's very verbose. But there are different levels — double-A and AAA. AA is the minimum you need to meet, and then contextually you'd want to hit AAA, especially if it's pertinent to the workflows in your app. But the big problem is none of that ensures usability, and a lot of it is oriented around a checklist.

00:13:30 - Anthony Campolo

But a checklist doesn't get back to the lived experience of the users.

00:13:34 - Ryan Magoon

Exactly. One of my favorite articles I've seen is about these guys who make an app with a 100 Lighthouse score that's either really slow or completely inaccessible.

00:13:47 - Anthony Campolo

Nice. Ishan would love that.

00:13:49 - Ryan Magoon

Oh yeah, it's amazing. We can probably link that in the show notes or something. Accessibility doesn't ensure usability — that's really the big thing. Cultivating empathy means you either need to work with disabled people, have them in leadership, go out and meet them. There are plenty of YouTube creators you can watch to get an idea of what these people are doing and how they live.

00:14:09 - Scott Steinlage

Well, UX — as part of a UX job, part of it is to interview your user base.

00:14:15 - Anthony Campolo

Right.

00:14:15 - Scott Steinlage

And then you need to make it your mission to find those users who have disabilities, to create accessibility for them — interview them just like you'd interview everybody else. You can't leave it out. It's ridiculous.

00:14:35 - Ryan Magoon

Yeah, it's the same and it has the same downfalls, but the consequences are usually really severe. It's the same reason that if you're making a dating app and you don't include women in the product development, you might do some really sketchy stuff.

00:14:48 - Scott Steinlage

Sure.

00:14:49 - Ryan Magoon

Create some bad problems. So yeah, it's exactly like that.

00:14:53 - Anthony Campolo

You said how you'd also worked on things like compliance and the legal aspect. So when you actually were at a company having to work on these types of issues, what were some of the things that came up and that you had to fix and work on?

00:15:07 - Ryan Magoon

Well, there are classes of things. The most basic thing you can do is just hit Tab a bunch of times and see if it makes sense — can you tell where the focus is going? That's not a perfect representation of what a screen reader will do, but it can definitely give you clues about what problems you're going to run into. That'd be the first thing I do. Does it make sense or does...

00:15:28 - Anthony Campolo

Same thing Ben will tell you to do?

00:15:30 - Ryan Magoon

Yeah.

00:15:31 - Scott Steinlage

You know how there's mobile emulation? Is there screen-reading emulation so you can develop better for it?

00:15:37 - Anthony Campolo

Yeah, he's talking about JAWS and things like that.

00:15:40 - Ryan Magoon

Well, JAWS is a screen reader, like...

00:15:42 - Anthony Campolo

for Windows. That's not an emulator. So I guess, is there a point to use an emulator versus just use an actual screen reader?

00:15:48 - Scott Steinlage

Right.

00:15:49 - Ryan Magoon

Yeah, I would say no. It's good to visualize the accessibility tree, and for automated testing, that's very useful.

00:15:56 - Anthony Campolo

Should also explain the accessibility tree, at least what it is. You don't need to go super deep.

00:16:01 - Ryan Magoon

I'm not super technically deep on this, but it's kind of like the DOM — it's what a screen reader or other assistive tech can see in terms of what is accessible.

00:16:11 - Anthony Campolo

So it breaks down, yeah, it breaks down the headers, it breaks down the links, it breaks down the inputs, and then that's what the screen reader is going to read out to the user.

00:16:20 - Ryan Magoon

What's going to be in the DOM but not in the accessibility tree is random divs — stuff like that isn't going to show up.

00:16:28 - Anthony Campolo

Yeah, it takes all that div soup out for you.

00:16:30 - Ryan Magoon

Yeah, but paragraphs will be in there, headings, buttons, links, things like that.

00:16:34 - Anthony Campolo

What are things that, if someone knows absolutely nothing about accessibility, what are some tools that you would recommend they start learning and becoming proficient with?

00:16:44 - Ryan Magoon

One thing is in Chrome DevTools, since 2020, I believe you can have colorblindness simulation as well as low-vision simulation. So that's really useful. It used to be you had to get a Chrome plugin for that. Now you can pop up DevTools and it's right there.

00:16:59 - Anthony Campolo

This is for color contrast because for some people, certain colors, it'll be really hard to read the text because it's against the background and it just all blurs together.

00:17:09 - Scott Steinlage

Like red would be a terrible background.

00:17:10 - Ryan Magoon

It also simulates every type of color blindness — really useful. You can test on the fly, try out some designs. That's already there, you don't have to download anything. But I'd also say that if you're in product at all — a product person, designer, or developer — you probably need to learn how to use a screen reader. It doesn't really matter which one. Probably one on desktop and one on mobile, because you just need to understand how it works. There's no other way to cultivate empathy and have a clue about what's going to be a good or bad design unless you've actually experienced it.

00:17:45 - Scott Steinlage

Is there a specific one you'd recommend?

00:17:47 - Ryan Magoon

It depends on what you work on. So VoiceOver is the one on Mac. So if you're on a Mac, definitely just learn that.

00:17:53 - Anthony Campolo

Then the Windows one is JAWS, I think. That's the most used one by percentage?

00:17:58 - Ryan Magoon

JAWS costs money. So it's about half JAWS and half NVDA. NVDA is the other one. And then on Android it's called TalkBack.

00:18:07 - Anthony Campolo

That's interesting. I've never thought about the fact that there would be a different screen reader for desktop versus mobile. What are some of the differences that come up between the two?

00:18:15 - Ryan Magoon

On mobile you don't have any buttons, so it's way different. In VoiceOver there's this thing called the rotor — kind of like in Vim, you have these different input modalities. You move the rotor in VoiceOver and it lets you go from navigating to input. For people with profound blindness, there are input modes where they can flip their iPad or phone over and use three fingers on each side to type out Braille — like they're punching out messages. Think about it: how would you use a keyboard if you're completely blind on a touch screen? There are videos of this on YouTube. Molly Burke is one person who demonstrates it. I can link to some people. It's really cool stuff.

00:19:04 - Scott Steinlage

So you can create a case that the iPad goes into that has a Braille keyboard on the back.

00:19:09 - Ryan Magoon

It's actually the same layout as a Braille typewriter. It just knows where your fingers are — three on each side. It's kind of like if you've seen a Braille [unclear] or...

00:19:20 - Anthony Campolo

Ever seen a Braille keyboard before.

00:19:21 - Ryan Magoon

It's really interesting. It's kind of like those stenotype machines court reporters use, but a little different. It's only a few buttons, and you type out the Braille cells.

00:19:33 - Scott Steinlage

Okay.

00:19:34 - Ryan Magoon

Each time you press it down, it registers a cell. Three on each side, you press the combination. There are contractions in Braille, all kinds of other things. It's pretty cool, huh?

00:19:47 - Anthony Campolo

I find accessibility is actually a very deep technical topic — if you're someone who nerds out on that kind of stuff, you can go very deep into it. It's a shame that a lot of people think of it as this weird niche specialty they don't really ever think about or dive into, because every time I've had accessibility conversations or worked on accessibility issues in apps, it's always been like, "wow, that's actually a really interesting technical challenge." And you get that boost of, this is having real impact for real people.

00:20:19 - Scott Steinlage

Totally. That's awesome.

00:20:20 - Ryan Magoon

Yes.

00:20:20 - Anthony Campolo

Cool. Is there anything else you want to hit on in the accessibility realm?

00:20:24 - Ryan Magoon

One of the apps I was looking up when I was doing my talk that particularly impressed me was VS Code. It has so many cool accessibility features.

00:20:33 - Anthony Campolo

I don't know of any of them, actually.

00:20:35 - Ryan Magoon

One of my favorites that I think regular devs could also use is the sound cues. There's an entire API for sound cues that tells you when something happened in the editor. Sometimes you'll be typing and your linter puts a red squiggly somewhere else in the file. If you're blind, how would you know that happened? So it'll be like, bloop.

00:20:55 - Scott Steinlage

Like, oh, that's so cool.

00:20:56 - Ryan Magoon

There'll be different sounds depending on what kind of event happened — if you hit a breakpoint, or if something in the terminal just finished, was it exit one? Was it exit zero? What just happened? So it's first class.

00:21:10 - Anthony Campolo

What are some other topics you want to talk about?

00:21:12 - Scott Steinlage

I don't know.

00:21:12 - Anthony Campolo

Open the floor. What's your favorite video game?

00:21:15 - Ryan Magoon

Just beat Tears of the Kingdom, the new Zelda game.

00:21:19 - Anthony Campolo

Oh, gotcha. I played crazy mad video games from around age 4 to 18, then became obsessed with music and then obsessed with coding. I haven't really gamed in about 10 years, but Ocarina of Time is my favorite game of all time.

00:21:34 - Ryan Magoon

Really?

00:21:34 - Anthony Campolo

Yeah.

00:21:35 - Ryan Magoon

A Link to the Past. My favorite Zelda game.

00:21:37 - Anthony Campolo

Right on.

00:21:38 - Ryan Magoon

My favorite game of all time is really tough. I think it would be Grim Fandango.

00:21:42 - Anthony Campolo

Oh, that's a good one.

00:21:43 - Ryan Magoon

Yeah, it's just dripping in style. I love the old point-and-click stuff. Also, kind of a weird throwback — Snatcher. It's this Hideo Kojima game before he made Metal Gear Solid. It's a visual novel, kind of like Blade Runner. Really cool. It came out in the '80s, but they remade it for Sega CD. It's like the best soundtrack.

00:22:06 - Anthony Campolo

Super cool.

00:22:06 - Ryan Magoon

Murder Mystery.

00:22:07 - Anthony Campolo

What was the game he put out that was like a survivalist game that came out a little while ago?

00:22:12 - Ryan Magoon

Death Stranding.

00:22:13 - Anthony Campolo

Yeah. You played that one?

00:22:15 - Ryan Magoon

Yeah. It's cool. If you're into art-house movies, it's very much like that.

00:22:19 - Anthony Campolo

Well, one of my best friends from college was obsessed with Hideo Kojima.

00:22:23 - Ryan Magoon

Yeah, it's super weird. Like, what if A24 made a video game? Yeah, it's out there.

00:22:28 - Anthony Campolo

Watch Beef.

00:22:28 - Ryan Magoon

I haven't. Not yet.

00:22:29 - Anthony Campolo

It's an A24 TV show. It's really, really good. What's your favorite video game, Scott?

00:22:35 - Scott Steinlage

That's a hard question. I haven't played video games in quite some time, actually. Since I've had kids, pretty much, I haven't had time.

00:22:42 - Anthony Campolo

Well then, pre that, what was your favorite video game before you had kids and became lame?

00:22:46 - Scott Steinlage

I mean, kids are pretty much a video game. Gotta play with them all the time, so...

00:22:51 - Anthony Campolo

No, they go up one point every year.

00:22:56 - Scott Steinlage

I'd say... It's so hard. Honestly, I can't put my finger on anything.

00:23:01 - Anthony Campolo

Just... what were some games you loved as a kid?

00:23:04 - Scott Steinlage

Yeah, okay.

00:23:05 - Anthony Campolo

What... what games did you have?

00:23:07 - Scott Steinlage

I know, I know. So we had PS2, PS1, Sega Genesis. And then I had friends who had N64 and regular Nintendo as well. We played all those games too — Perfect Dark, Smash Brothers, all kinds of different things.

00:23:31 - Anthony Campolo

We need to bring a console with us to one of these conferences.

00:23:33 - Scott Steinlage

Dude, everybody would be in our room playing, or just bring it into the conference. And then I really enjoyed first-person shooter stuff like Call of Duty. GoldenEye for sure. But Call of Duty on newer consoles, right? Or PC.

00:23:53 - Anthony Campolo

I always think when you're talking, the real question is, would you play as Jaws or Oddjob? Because every character in that game is exactly the same height except Oddjob, who's a little short. Yeah. So it's really hard to hit. And then Jaws was really tall, so it's super easy to hit.

00:24:11 - Scott Steinlage

Yeah, yeah.

00:24:12 - Ryan Magoon

Remember that hat being deadly?

00:24:13 - Anthony Campolo

Yeah. You could throw his hat too.

00:24:15 - Ryan Magoon

Yeah.

00:24:16 - Scott Steinlage

I think overall, when I was in high school, I really enjoyed playing Call of Duty and Halo and stuff like that.

00:24:23 - Ryan Magoon

Cod.

00:24:24 - Scott Steinlage

COD, yeah, sure, that COD. Yeah, exactly. And a computer game I really loved, actually, was, because when you said COD, it made me think of it, Command and Conquer.

00:24:33 - Anthony Campolo

What's Command and Conquer?

00:24:34 - Scott Steinlage

Command and Conquer is this war-type game where you create soldiers, you create your battle stations, vehicles, all kinds of stuff. You mine things for gold or whatever the heck it is in that game. And then you have the funds to be able to make these things. And then there's an enemy. They're going to encroach on you, or you're going to encroach on them, and you gotta take each other out. It was a really fun game, and there's several versions of it that came out, but it was a PC-only thing. So, yeah, it's cool.

00:25:15 - Anthony Campolo

Sweet. So I'll be curious, do you have other conferences you're planning on attending this year or have lined up?

00:25:20 - Ryan Magoon

I'm excited to go back to Next Conf. Want to go to Magnolia one year. [unclear]

00:25:25 - Anthony Campolo

Wait, where's Magnolia? I've heard of that one.

00:25:27 - Scott Steinlage

I wanted to go last year. I did go the year before. That was really good too. It's only a few years old though, right?

00:25:33 - Ryan Magoon

Yes.

00:25:34 - Scott Steinlage

Yeah, I think it started like when Render started.

00:25:36 - Anthony Campolo

Yeah, I think it's Mississippi.

00:25:38 - Scott Steinlage

Mississippi.

00:25:39 - Anthony Campolo

Yeah.

00:25:39 - Scott Steinlage

I knew it was south.

00:25:40 - Anthony Campolo

Oh, cool.

00:25:41 - Scott Steinlage

Yep.

00:25:41 - Anthony Campolo

Sweet. We should go to that. We're pretty close.

00:25:43 - Scott Steinlage

Yeah, it'd be fun. When is it?

00:25:45 - Anthony Campolo

October.

00:25:46 - Scott Steinlage

Okay. Well, hopefully it doesn't land on All Things Open.

00:25:50 - Ryan Magoon

Oh, All Things Open.

00:25:51 - Scott Steinlage

All Things Open. Yeah.

00:25:52 - Ryan Magoon

Yeah, I'll definitely be at All Things Open.

00:25:53 - Scott Steinlage

That's right next to you.

00:25:54 - Anthony Campolo

Yeah.

00:25:55 - Ryan Magoon

Across the street from my condo.

00:25:57 - Anthony Campolo

Right.

00:25:57 - Scott Steinlage

I want to go to that. That looks.

00:25:59 - Anthony Campolo

Yeah, you should talk about that one since that's your... your stomping grounds. What's cool about that conference?

00:26:04 - Ryan Magoon

All Things Open is massive — every discipline of tech is there, like distributed systems stuff.

00:26:11 - Anthony Campolo

Not just us. JavaScript.

00:26:13 - Ryan Magoon

No. Yeah, no, yeah. It's just like every kind of tech person you could think of is there. It's pretty cool.

00:26:18 - Anthony Campolo

So I was like, is Raleigh a good place to be for tech?

00:26:21 - Ryan Magoon

Yeah. It's a huge tech scene. People don't realize RTP is the biggest research park in America. So RTP, Research Triangle Park. It's kind of like Silicon Valley. There's tons and tons of office space.

00:26:33 - Anthony Campolo

Yeah. I have a. I have a cousin in Raleigh and I'd heard this a couple of years ago that it's actually like one of the more legit tech hubs in the country. And that's always stuck in my head as a place I need to check out.

00:26:43 - Ryan Magoon

Because there's just tons of companies there and really good colleges — NC State, Duke, and UNC all next to each other. So it's like a big pipeline there too. And Epic Games is there, so there's a video game hub. Apple just built a building there, so they're about to start hiring like crazy or already have. I think for AI stuff, they're about to start ramping up from what I heard.

00:27:08 - Anthony Campolo

Yeah, they're way behind. Have you messed around with AI much?

00:27:12 - Ryan Magoon

No, I've done some of the Vercel starter projects and tutorials, like calling OpenAI APIs and stuff.

00:27:18 - Anthony Campolo

But like, do you use ChatGPT at all?

00:27:21 - Ryan Magoon

Yeah, I use it all the time.

00:27:22 - Anthony Campolo

So that's... I would consider that using AI then. Like, to me, just using it every day. So here's a stat for you guys. I read this the other day. 58% of people have heard of ChatGPT. 14% of people have used ChatGPT. That's it.

00:27:37 - Scott Steinlage

Yeah, it's all the tech people.

00:27:40 - Anthony Campolo

Lots of people — just people who are interested in new things. So even using ChatGPT at all puts you way ahead of the

00:27:48 - Scott Steinlage

curve and paying for it, you're like top 1%.

00:27:50 - Anthony Campolo

So what do you, what do you use it for?

00:27:52 - Ryan Magoon

ChatGPT. I'll get it to spot-check things. Sometimes I'll write a letter or some messages for work and I'm like, "how can I say this? Could it be better?" Either in a more friendly way, or I'm just throwing stuff at the wall. A lot of times I don't listen to what it says, but I'll ask it for criticism on things.

00:28:12 - Anthony Campolo

I ask it to summarize things a lot. I'll copy-paste an entire article and just say, write me a one-paragraph summary. It's really good at this. I use it for the newsletter actually.

00:28:25 - Scott Steinlage

No, I know. I'm finding it funny because I was

00:28:28 - Anthony Campolo

just thinking how I probably send you

00:28:30 - Scott Steinlage

like a very lengthy email, and then you take it and you just say, summarize this for me so I don't have to read all Scott's email.

00:28:35 - Anthony Campolo

Well, yeah, that's the joke is that everyone will... people will write a bullet-point list, have ChatGPT turn it into an email, and then somebody takes it back to a bullet point.

00:28:45 - Ryan Magoon

That's incredible.

00:28:45 - Anthony Campolo

Silly. That's funny.

00:28:47 - Ryan Magoon

Then I've also been using Tabnine and Copilot pretty much since they came out.

00:28:52 - Anthony Campolo

Yeah. Tabnine being another AI code-completion tool.

00:28:55 - Ryan Magoon

Correct. And then I'm also on the beta for the Copilot Chat.

00:29:00 - Anthony Campolo

That's interesting. I haven't used that one yet. I've watched Roselle use it, though, a little bit. She's a developer advocate at GitHub and does a lot of Copilot stuff. That's where you have a chat embedded in your code. Basically I'm copy-pasting code and then throwing it into ChatGPT all the time. So it seems kind of silly that I'm not using Copilot Chat.

00:29:19 - Ryan Magoon

The use case I see all the time is I'm writing some React code, there's a component, and I'm like, "hey, write me the basic integration test suite for this."

00:29:31 - Anthony Campolo

Yeah, tests are pretty great.

00:29:33 - Ryan Magoon

Yeah. And it's really good at it. Yeah, I love it for that.

00:29:35 - Anthony Campolo

An interesting use case I found — probably not relevant to you, more relevant to DevRels — is: if I want to create a bunch of example apps, a lot of times DevRels will need a React example, a Vue example, and a Svelte example. So I'll write the React example, give it to ChatGPT, say "write this in Vue," and it'll take the exact code and write it in Vue and it just works out of the box. Copy-paste is incredible.

00:30:01 - Scott Steinlage

Super dope.

00:30:03 - Ryan Magoon

That sounds amazing.

00:30:04 - Scott Steinlage

Yeah, I love, love, love, love ChatGPT. That's why I call him Homie GPT. Yeah, Homie GPT is the homie.

00:30:12 - Anthony Campolo

Awesome, man. Well, why don't you let our listeners know where they could find you on the internet and where they can get in touch with you if you're someone who wants to get in touch.

00:30:24 - Ryan Magoon

Yeah. Ryan Magoon on Twitter.

00:30:26 - Scott Steinlage

Awesome.

00:30:27 - Ryan Magoon

That'd be the main one.

00:30:28 - Anthony Campolo

Cool. Well, thank you so much. This is a really interesting conversation. Got a lot of great topics in here and yeah, thank you so much.

00:30:34 - Ryan Magoon

Thanks for having me.

00:30:35 - Scott Steinlage

Yeah, it was fun. Appreciate it. All right, I'll see you in the next one.

00:30:39 - Anthony Campolo

Peace.

On this pageJump to section