Saron chats with Judith Lung, Software Engineer at LinkedIn. Judith shares how she found herself in tech after initially getting her masters in Clinical Rehabilitation and Mental Health Counseling. Judith talks about her experience learning to code as someone who is blind and the changes she aims to make in the tech space to aid in the progression of tech accessibility.
[00:00:05] SY: Welcome to the CodeNewbie Podcast where we talk to people on their coding journey in hopes of helping you on yours. I’m your host, Saron, and today we’re talking about accessibility and inclusivity with Judith Lung, Software Engineer at LinkedIn.
[00:00:19] JL: I know that people can be afraid, they might ask the wrong thing, but people with disabilities are just like everyone else. Each of us is different. And a set of accommodations for one person may be different from somebody else, even though they have the same disability. And so asking questions, being open, and not being afraid to connect, because as people, we thrive when we connect with others and help one another out.
[00:00:45] SY: Judith shares what lit her passion for coding, the obstacles she’s overcome as a blind software engineer, and how she’s dedicated her work to helping others through accessibility tooling after this.
[00:01:03] SY: Thank you so much for joining us.
[00:01:04] JL: Thanks for having me.
[00:01:05] SY: So I heard that when you were growing up, you really wanted a job where you could help people. Tell me a little bit more about that. Where did that come from?
[00:01:13] JL: So when I was very young, I started using the computer, and it was a very frustrating process. I can see my sister and my family just using it with so much ease, whereas for me, using a screen reader in the early days, it would cause the computer to freeze every 15 minutes to half an hour, and using the website was not very accessible. It would take me maybe two hours to try to check an email. And then what happened was that as I kept going through school, technology just got better and better. And by middle and high school, I could take the same classes as my sighted peers and complete the same assignments. And I was really fortunate to have great teachers who went above and beyond to make materials accessible for me in braille because I’m blind, and so I use braille to do all my work. And so I was able to have this very similar experience as my sighted peers in school. And so I thought when I grow up, I really want to do something like that to create paths for other kids or adults with disabilities so that they could achieve their full potential.
[00:02:28] SY: So you are blind. Were you born blind or is that something that developed over time?
[00:02:33] JL: So I became blind when I was four months old from cancer. So basically, I was very fortunate that I didn’t remember any of this. My parents went through all the heartache. And so yeah, and I was really fortunate that I also grew up learning braille and having quite a bit of resources.
[00:02:53] SY: And how did that happen for you? Are these resources that came as just part of the school? Were there resources that your parents had to go seek out? How are you able to create such a structured and supportive environment for yourself?
[00:03:08] JL: So I actually spent the first 10 years in Hong Kong and went to a school for the blind. And so in that environment, it was very structured. Everybody got these braille writers where we can type in braille. We all have braille books. But the outlook for those of us who were in school there as we grew up was limited. And so my parents actually I immigrated to the US to give me more opportunities. So I was able to go to a regular school with support, and there were a few non-profit organizations that had trips or competitions in braille to encourage us to just get out there and improve our skills and be more competitive.
[00:03:54] SY: How did you come across learning computers? Was that something that you did since you were a young age? Or did you get into coding a little bit older in life?
[00:04:03] JL: So when I was young, I really wanted to learn programming because I was playing these text adventure games, and I love writing, and I thought it would be really cool to be able to create these experiences for other folks, but I didn’t know how to get started until college when I had friends who were taking computer science courses, and they were spending hours and hours coding, and I was really intrigued that they would be so dedicated in their studies, and I was curious, “What is it about computer science that gets people so hooked?” So I actually took one class, second semester of junior year. I am actually an English major and I just took that class to try it out and use it to fulfill a quantitative reasoning requirement, and I became as hooked as they were, and I just wanted to work on my assignments all the time, even though I really struggled that first semester, because I was, I believe, probably the first blind student they had. And so I had to come up with my own technology, figure out how to use the programming environment, and overcome some of the accessibility issues, but I loved it. And so I just continue learning programming after I graduated.
[00:05:20] SY: And what did you love about it?
[00:05:22] JL: It’s actually kind of like writing. I really like the problem solving aspect of it as well as that exploration. And by the end, you could create a tool that is useful for other people. And I am not really a tinkerer. So if I try to build something physically, it will be very frustrating process. But in terms of building software and building something with code, the cost is much lower. I can just erase everything and start over and not have to worry about buying new material.
[00:05:56] SY: Absolutely. So for those of us who have never used a screen reader, what is it like?
[00:06:02] JL: So the screen reader, that’s what its name says. It reads everything for me on the screen, and it reads them one line at a time. So for us, instead of having the whole spatial layouts of the screen that you might have when going through a website, we have to read it one line at a time. And you can imagine trying to have the screen reader read everything from top to bottom could take quite a while. And so having good markups such as headings or buttons really help us to be able to skip to different sections and quickly skim through parts of the webpage so that we can get things done faster.
[00:06:41] SY: And when it comes to coding using a screen reader and in your world, what are the different tools that you have at your disposal that help you become a productive software engineer?
[00:06:54] JL: Actually, using a really good IDE, right now I’m using Visual Studio, helps out so much. Being able to go to certain line number or having the IDE play a tone when there’s an error so that I can quickly jump to that error and using different keyboard shortcuts really helps with getting things faster. I also do use GitHub when I am reviewing code or pushing code for others to review. And with that, actually having the screen reader read out all the punctuation so that I have as much information as possible when I’m going through code, is also very useful, and it’s very important for us to have a more text based versus a graphical IDE so that when we’re programming, we can get as much information from the screen reader as possible outside of information that might be communicated through the layout of something or through icons and graphics.
[00:07:58] SY: So when you were in undergrad and you were studying, what were your expectations in terms of your career, in terms of your options? You mentioned leaving Hong Kong, coming to the US to give yourself more opportunities. What were some of these opportunities that you and your family had in mind?
[00:08:15] JL: I actually didn’t have too much in mind. At 10 years old, I just wanted to make friends and I thought it was really cool that in the US maybe I get to eat pizza and hamburger all the time.
[00:08:26] SY: There you go.
[00:08:27] JL: But as I grew older, I really wanted to give back because of these teachers and nonprofit organizations that I benefited from. And so I wanted to do something that would help people. And one of the really important resources that helped me navigate through college was the Department of Rehabilitation. So they would provide us with employment prep services, including paying quite a bit of my tuition, as well as providing the assistive technology, such as a computer with a customized screen reader or a braille note taker, which is a braille laptop that instead of having a screen, it has a braille display on the bottom that displays everything in just six or eight-dot braille.
[00:09:14] SY: That’s cool.
[00:09:14] JL: So that was very convenient. And so my expectations, yeah, I wanted to do something that would contribute to society. And I wasn’t sure what that was. And so I tried out different jobs in college. I was a student caller once and I was terrible at asking people for money. And so I also worked as a camp counselor for kids and adults with disabilities and that was a very good experience. But yeah, I wasn’t really sure. And so even in undergrad and when I graduated from college, I was just exploring different options.
[00:09:49] SY: What were you excited about the most?
[00:09:51] JL: After I took that computer science course, I was really excited about the prospect of eventually being able to work in either accessibility or assistive technology because of how much technology has leveled the playing field for me. I wanted to do something to advance development in that area and just allow people, kids in the future to have more opportunities.
[00:10:17] SY: And so you were thinking assistive technology. Did you have a sense of what kind of technology this would be or what your role would be in helping create it?
[00:10:27] JL: So I actually took a couple of paths. I first studied to become a rehabilitation counselor. So they do a lot of different things, but the rehabilitation counselor I wanted to become was one that would write employment plans and help people with disabilities come up with a plan and the resources and training. They would need to become employed. And one of the things that they would do is look at what assistive technology the clients might need. And then I also took an assistive technology certification. And that gave me more of an idea of what an assistive technology specialist would do. And so these people would perhaps match a client with the assistive technology that they need and train them on how to use them. But I was feeling slightly dissatisfied with these two options because I really want to be part of the people who create that technology, and I was really interested in coding. And so even though I went into graduate school for rehab counseling, I was learning coding on the side and studying data structures and algorithms to see how I might get my foot in the door.
[00:11:44] SY: And what were you thinking in terms of the career path for you? When you set foot in the door, what were you kind of seeing for your future?
[00:11:52] JL: I was thinking that I might start out being a rehab counselor and then I would build programming projects on the side to give myself more experience, maybe contribute to open source projects. But what ended up happening was that I actually had a very hard time finding a job in rehab counseling. And I was interviewing, but not really getting many offers, and the offer that I had just wasn’t the right one. And also, even though I was supposed to be filling out applications, I was really doing it. So that I could tell people, “Oh, I am applying to jobs.” I really was so interested in getting these certifications that would help me get into tech. And I also listened to different podcasts. I actually listened to a lot of the CodeNewbie Podcast at that time.
[00:12:43] SY: Pretty cool! Yeah. Yeah.
[00:12:43] JL: And other ones and just hearing the non-traditional path that people took to get into tech. And that was really encouraging. And at the end, my friend was applying to LinkedIn’s REACH program, which is an apprenticeship that gives people from non-traditional backgrounds a path into engineering. So I just applied with her because I really like my friend and I thought it would be great to be co-workers and see each other all the time. But what ended up happening was that my friend found another job, whereas I became a REACH apprentice at LinkedIn and that is how after I think about nearly three years, I became a software engineer last year.
[00:13:23] SY: Wow! Congratulations!
[00:13:25] JL: Thank you.
[00:13:26] SY: So three years, was that three years when you first decided I’m interested in code and how long it took for you to break in?
[00:13:33] JL: No, three years is the time that I started working at LinkedIn, but I really started learning to code at my junior year back in 2014. And so because I was learning on and off in between my studies, it took a longer time.
[00:13:48] SY: So how did you approach your learning? I’m especially curious in terms of the resources you use because a lot of the resources, especially the free resources, the freely available ones are video based, and there’s a lot of visuals that apply to our learning. And I remember when we did the Base.cs Podcast a couple years ago, one of our listeners was actually blind and said, “Thank you for creating this because it’s one of the few resources I can consume.” And so how did you fill up your learning bucket? How did you decide what to use and how to level up when you’re doing it on your own?
[00:15:58] SY: Yeah, it’s very much a visually driven industry unfortunately, in a lot of ways, especially in learning material. So yeah. I get that. That makes sense.
[00:16:21] SY: So tell me about the internship. How was it? How did it go for you? Tell me about what it felt like.
[00:16:27] JL: So as an apprentice, I was very supported. My team found tasks that I could do and that wasn’t a lot of design and making visual components and I got a lot of time with my manager who helped me get on board. And we were also paired with a mentor and engineer on our team who is of a higher level. My mentor was a staff level engineer and so I was really thankful to have him as a mentor. He was very patient and answered all my questions and he also came from a non-traditional background. And so that was really useful to hear how he leveled up without support of the apprenticeship program, which I had. We also had a cohort and I believe for the first year will meet up once a month to talk about how we’re doing, any challenges that we’re going through so that we can support one another. And so through so much hands on learning and support, I was really able to grow in my programming skills in a way that I wasn’t able to do when I was learning on my own because it was harder to get immediate feedback and also to find tasks that really made me touch different applications and learn to deal with complexity.
[00:17:52] SY: What did collaboration look like in an environment where you are using screen readers and other tools for accessibility, but the person you’re coding with may not need those tools or may not frankly know how to use them? How did you end up collaborating with other team members? What did that look like?
[00:18:10] JL: So we collaborated mostly through doing code reviews because I could read the diffs to see what changes they make and then I could comment on them and then they could also comment on my code. And so that was mostly how I collaborated.
[00:18:27] SY: That makes a lot of sense. Yep. Did you have a community of other people who were blind or had other accessibility needs that you could reach out to?
[00:18:36] JL: I actually didn’t, which is one thing I wish that I had earlier, but I did recently found two mentors who are blind and who are doing really well in their roles. And so they introduced me to some really great resources, as well as ways in which I could level up, improve my tooling so that I could work faster. And so if I were to learn coding again, that would be one thing that I would do differently is find mentors with a similar disability early so that I could get the inside scoop and the tips and tricks.
[00:19:13] SY: Yeah, I can imagine that being really useful, just not only for learning reasons, but just emotional support, right? Knowing that it’s not just you, having role models of people who are ahead of you, who have that success, I can imagine that being very useful.
[00:19:26] JL: Absolutely, yes.
[00:19:28] SY: So what kinds of stuff did you end up working on at LinkedIn as an intern?
[00:19:32] JL: So we actually did some very innovative things. Our three pillars at that time was on linting, which is running a static analysis on code to find accessibility violations, because I am on the accessibility engineering team. And so what we want to do is build tooling to help engineers working on products to make their code as accessible as possible. And so we really want to automate that as much as we could. And one of the things we did was to enable accessibility checks to run integration and acceptance tests. So each time there is a page change, in these tests we’ll run accessibility audits and collect all the violations into a JSON file, a report that they could then look at or we’re going to create tooling to parse the data and display them so that at any point engineers could see how many violations and what kind of violations they have and which violations belong to which team so that they could address them quickly.
[00:20:41] SY: Is this all within the LinkedIn company or is this for developers outside of LinkedIn?
[00:20:47] JL: So actually these tools that we use are available to developers outside of LinkedIn now. But there, because we mostly worked on Ember.js applications, so the automated testing is available in what we call Ember A11y Testing. And so for Ember applications, you could enable that. And then I also worked on the linting part, which is in Ember Template Lint. We wrote some accessibility lint rules, for example, linting against autofocus, attributes, which could throw a screen reader users off when we load a page and suddenly it’s focused on not on the top of the page as we expect, but some element that if we accidentally click on it and we don’t mean to maybe something, we might submit data without meaning to and also another Lint rule that I wrote was making sure that developers don’t use invalid ARIA attributes so that when the attributes don’t have the incorrect names and they can actually do what they were meant to do.
[00:21:50] SY: Do you find that when you are speaking to other developers, I feel like I hear more about accessibility and I feel like there’s been an increase in attention towards accessibility, but I don’t know if it is talk or implementation. Have you seen in your time in tech that people are more willing to put the time in to be accessible or is that still an area that we need to work on?
[00:22:17] JL: I think that’s definitely still an area we need to work on. People do care about accessibility, but they may not know where to get started because it could feel very overwhelming. There are so many different types of disabilities, and how can I make my application accessible for everyone? And so I think what’s really important is to continue to build on these automated tooling and get the work out there that actually a lot of accessibility violations can be addressed through good coding practices, like using proper markup or adding descriptions to images.
[00:23:00] SY: Those are some of the easy wins. Those are some of the things that we should be doing anyway, just to write better code, and the added benefit is it also makes it accessible to people who need and rely on that kind of naming and those types of labels.
[00:23:16] JL: Yes.
[00:23:17] SY: And so what are you working on currently at LinkedIn?
[00:23:19] JL: So currently I am working on some automation tooling to help with reporting. And the latest one I’m working on is really being able to collect violation data and display them for each team so that each team can see the types of violations they have, what files they’re in and address them.
[00:23:43] SY: And how long did it take you to get to that position? Because you were at LinkedIn, but you were an apprentice. How long did that apprenticeship last?
[00:23:50] JL: I was an apprentice from December of 2019 until I was promoted last year in September of 2022. So nearly three years. But those were three pretty tumultuous year. So I’m really glad that I got that support and I’ve been in my current role for a year. And for all this time, I have been staying on the same team.
[00:24:14] SY: Got you. And what would you say has been the biggest difference between the apprenticeship you experienced and what it’s like to be a full time software engineer now?
[00:24:23] JL: I think it is expectations. The requirements are definitely more stringent now. And actually the work of our team has change as well. And so it’s definitely more challenging, more learning after my promotion.
[00:24:41] SY: Yeah, because now you have to deliver. You can’t kind of get to the luxury of focusing on learning. I feel like one of the benefits of being an intern, being an apprentice, is the expectation that you don’t know a lot and you’re there to learn. And I feel like as soon as you get out of that, your delivery, your output is a little bit more valued.
[00:25:00] JL: Yes.
[00:25:00] SY: Yeah. So when you think about your role as an engineer, is it what you expected it to be? When you think about what you were able to accomplish as an apprentice and what you’ve been able to accomplish in the last year as an engineer, and you think about how you imagined that time to be spent, is it what you expected?
[00:25:18] JL: So it was definitely surprising for me because in terms of accessibility, I was imagining that I would build a product and then give some input on how to make it more accessible. But instead, I have been working on tooling that really has high impact on the entire company because it’s used by product engineers for all over 200 products. And so that was a difference.
[00:25:47] SY: Yeah, that makes sense. And when you think about your childhood, coming to America, hoping to make friends, and then you got a little bit older, you’re thinking a little bit more about your career, did you see this life for yourself when you thought about where you could go, what types of jobs you had access to? Did you see what you’re doing now as an option or have you surprised yourself in a way?
[00:26:12] JL: I have really surprised myself. I actually didn’t know what I wanted to do. And I had a lot of ideas. I actually remember being in high school each week, I want to do something different. But I do really like the impact that I get to make here, although I do see myself eventually going to find a role that works more closely with products and with users because that is one of my dreams also is to work in assistive technology or something similar that can directly impact users. And I really would love to hear users telling stories about how that product has made a difference for them.
[00:26:56] SY: Absolutely. So as a person who uses assistive technology and someone who works in assistive technology, what. assistive technology do you feel like is underrated? I know that screen readers, we talk about them a lot. I hear about them all the time. I feel like when most of us think of assistive technology, that’s what we think of, but I’m sure there are plenty of others that maybe you rely on or that others rely on as tech people, as people in the industry, what are some of the others that maybe we wouldn’t be as familiar with?
[00:27:26] JL: I think using add-ons and extensions. So one of the considerations for accessibility is that your app can be customizable because you won’t know what kind of extension somebody may need. And so having that flexibility is really helpful. And I recently found, for example, an extension in VS Code, that’s how it’s called in dense nav. It allows you to quickly jump to the next line with the same indentation level. So that makes it really helpful when I only have access to one line at a time to find where is the missing curly phrase to close this function is very useful. And these small tools like these can really make a huge difference.
[00:28:17] SY: Coming up next, Judith and I talk about what we can do to help make tech more accessible for all, and what she aims to work on next after this.
[00:28:36] SY: So when you think about the developers out there who do not have to use accessibility tools and do not have to use assistive technology, I’m wondering, what do you want us to know about your experience? What do you wish we understood? What do you wish we appreciated about what it’s like to be both a user of technology and a developer in technology? What do you want to leave us with?
[00:29:02] JL: I think to not be afraid of asking questions and asking maybe your colleagues with a disability question or user questions. I know that people can be afraid they might ask the wrong thing and worried that it might offend somebody. But people with disabilities are just like everyone else. Each of us is different. And a set of accommodations for one person may be different from somebody else, even though they have the same disability. And so asking questions, being open, and not being afraid to connect, because as people, we thrive when we connect with others and help one another out.
[00:29:44] SY: Completely agree. And what do you think is one thing we get wrong? What’s a common misunderstanding about assistive technology that’d be helpful for us to know?
[00:29:52] JL: So I think people think that assistive technology must be very expensive. And so employers may be hesitant to hire a person with a disability because they may require thousands and thousands of dollars of assistive technology. But actually now, with accessibility features in technology and with some of these built in, let’s say voiceover or Zoom on the Mac or ease of access in Windows, hiring a developer with disabilities or somebody who uses technology, is not a super expensive endeavor, and also people with disabilities are, every day we are problem solvers because we are living in a world that is not designed for us. And how are we going to make things work really requires us to think outside of the box to be persistent and resourceful.
[00:30:45] SY: That is such a great point. I think that’s such a powerful strength that is an outcome of just the way you live your life and the way that you exist in this world as you’re constantly problem solving. And that’s a really important asset for any employee, let alone a developer. That’s actually a really great thing to keep in mind is to embrace that and embrace that skill set and to value that. That’s a really great point. So looking ahead, what do you see for yourself? When you think about the mentors you have now, people who also are blind and people who use assistive technology, what do you see in your future? What do you hope to achieve?
[00:31:23] JL: I really want to work on a product actually. I’ve been working on tooling for so long, internal tooling for developers. It’ll be really exciting to work on a user facing product And I may also start looking into mobile engineering because what I am seeing for myself is I’m actually going to take some time off from work and learn some of these new skills to see what I want to do next in my career.
[00:31:50] SY: Very exciting. Very exciting. And do you plan on staying an individual contributor? Do you think you’ll get into management? Have you thought about that?
[00:31:58] JL: I think I will stay as an individual contributor for now and learn as much as I can from the resources I’m going to have as well as the mentors, but I can see management possibly in my future.
[00:32:14] SY: Very cool. Now the end of every episode, we ask our guests to fill in the blanks of some very important questions Judith, are you ready to fill in the blanks?
[00:32:29] JL: Yes.
[00:32:30] SY: Number one, worst advice I’ve ever received is?
[00:32:33] JL: Try harder because that has a lot of judgment without too much specific solutions.
[00:32:41] SY: That is a very generic piece of advice that doesn’t sound very helpful. Number two, best advice I’ve ever received is?
[00:32:50] JL: You can achieve your dreams, but not all at once.
[00:32:53] SY: Oh, that’s a good one. I like that. What was that in reference to?
[00:32:57] JL: There may be a bunch of things we want to do right now, and we just feel pulled in different directions, and just knowing that, yeah, when you want to do something, you have to focus and have grits for that. And so to quit everything that doesn’t help you achieve your goals until later because you will have time for that later.
[00:33:20] SY: Number three, my first coding project was about?
[00:33:23] JL: It was Tic-Tac-Toe, a command line game. It was the first accessible game I got to create. So that was really exciting.
[00:33:29] SY: That’s cool. Number four, one thing I wish I knew when I first started to code is?
[00:33:34] JL: Debugging takes a long time. Programming takes sometimes, maybe three to five times longer than you would expect. And what I learned is whether or not I am sitting at the computer the whole time or I went and did something else, it still takes that much time for my brain to come up with a solution. So go ahead and take breaks, work on other things, and don’t be so fixated on working on a specific bug, because maybe your brain will give you the answer tomorrow.
[00:34:06] SY: Breaks are great. Breaks and a nice little nap can do wonders.
[00:34:10] JL: Oh, yes.
[00:34:12] SY: Well, thank you again so much for joining us, Judith.
[00:34:13] JL: Thank you so much for having me.
[00:34:18] SY: You can reach out to us on Twitter at CodeNewbies or send me an email, firstname.lastname@example.org. For more info on the podcast, check out www.codenewbie.org/podcast. Thanks for listening. See you next week.
Thank you to these sponsors for supporting the show!