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