The Changelog: Software Development, Open Source - The advantages of being a blind programmer (Interview)
Episode Date: June 11, 2016Parham Doustdar is a blind programmer and joined the show to talk about the advantages he has being a blind programmer, the tools he uses, why he had to quit school, and carving your own path. Note: ...We couldn't stop using visual words when talking with Parham — even he couldn't help himself. So you'll get to hear us all laugh at ourselves near the end.
Transcript
Discussion (0)
I'm Parham Dostar and you're listening to The Change Log.
Welcome back everyone. This is The Change Log and I'm your host Adam Stachowiak. This
is episode 206 and today Jared and I are talking to Parham Dostar, a blind programmer. We talked
to Parham about the advantages of being a blind programmer,
the tools he uses, quitting school,
carving your own path, and more.
We also couldn't stop using visual words
when talking to him,
and even he couldn't help himself either.
So you'll hear us laugh a little bit in this show.
We got three sponsors on this show,
TopTile, Rollbar, and Linode.
Our first sponsor of the show is our friends at TopTile,
the best place to work as a freelance software developer.
If you're freelancing right now and you're looking for ways to work with top clients,
work on things that are challenging you, interesting to you,
technologies you want to use, TopTile is definitely the place for you.
Top companies rely upon TopTile freelancers every single day
for their most mission-critical projects.
And at TopTile, you'll be part of a worldwide community of engineers and designers.
They have a huge Slack community, very much like family.
You'll be able to travel, blog on the TopTile engineering blog and design blog, apply for
open source grants, head to TopTile.com to learn more.
That's T-O-P-T-A-L.com to learn more.
Or email me, adam at changelog.comcom if you prefer a more personal introduction to our friends
at TopTile. And now on to the show. All right, everyone, we're here today. Jared, we got an
interesting guest here today. We've never had someone who's blind on the show. And this came from an issue.
We got Parham Dostar on the show. And where did this issue come from? What was the premise behind
this? Yeah, we have to give a thanks to listener Omid Azeva, who probably butchered the last name
there. Omid, sorry about that, from Finland, who pinged us on our uh repo on github that's
what is it github.com slash the changelog slash ping where we take all sorts of suggestions as
well as news and uh repos and stuff like that um pointing us towards uh pyram and saying
this is an interesting fella he's overcome uh being blind in order to be a backend developer. And he
seems like an inspirational person. So, I hadn't heard of you before, Param. Appreciate
the ping there, Omid. As well as another person came in, Salar. Salar. Gosh, I'm not doing
so well here.
Kaboli.
Kaboli. Thank you. Who also added, not only does he type and code in English,
he types and reads Persian or Farsi as well. This is very difficult in general. And I admire him.
So, you got some admirers out there, Parham. And thanks for joining us.
Hi. It's great to be here. And thanks for inviting me. And thanks to Omeida and Salar who are, well, they seem to be
originally Iranian so
thanks to them
also for pointing me out. It's great
to be here. Thanks for having me.
I was going to say, you handled their names with way more
grace than I did.
So yeah, that's because they're Iranian
and I just got a hint.
Was it the last names
that got it or was it the first names? Well, I just got a hint. Got a hint. Gotcha. Was it the last names that got it or was it the first names?
Well, I just
actually talked to them on
Twitter. Saldar is actually
one of the guys who worked
on a really useful library
on GitHub
and
I actually first noticed his
name when I was writing an article for
SitePoint and his name always I was writing an article for SitePoint.
And his name always came in as the most popular GitHub contributor in Tehran.
So if you go to my article on SitePoint, he's like at the top.
So I'm like, who is this guy?
So that's how I actually met him first.
Very cool.
Maybe the best way to open this up since this is a first for us, Parham, is that you can help us put some definitions behind things.
We've never had somebody who's had what some might consider a disability, being blind or without sight.
How do you describe how you are, your condition?
How do you describe it? What words are the right words to use?
Well, it's kind of hard to say, but I actually consider myself as
being blind, which is like I'm blind. So I think the first step to knowing yourself is accepting
yourself as who you are. So this came to me when I was like nine or 10. And you might not believe
this, but even my family don't use the word blind with me
it's like it it doesn't really make them feel well it makes people feel like you're lacking
something and right they don't really want to induce this feeling inside you so they um they
start coming up with all with all these words like differently abled. And I don't know, we have a lot of those here.
And I actually think a lot of people use differently abled.
But the fact is that before you can actually grow as a person,
you need to accept your shortcomings, your weaknesses, your strengths.
And instead of seeing handicapped people or, you know, like blindness as a weakness,
we could actually see it as a feature, which would allow us to see its weaknesses and positive
sides both at once, which would allow us to, you know, use it and abuse it sometimes.
So it's just like a feature in any software.
When you start adding a feature, you're probably missing out on a few stuff.
So if you look at your life like that,
then it starts becoming kind of an experiment that you can improve on.
I liked what you had said about choosing your own path and embracing your blindness as part of how you carve out your own path in life and how you may
not be able to do the things that everyone else does the same way they do.
So for those reasons, you can't, you know, go down the same path.
You can't go into Stack Overflow and follow the same path someone else does to
a solution.
You kind of have to take a step back because of your different features
and choose the path that actually fits for you.
And I think that's kind of an interesting way to start the show,
simply because somebody might look at, and Jared and I look at your life,
and we look at the way you describe yourself and what you've done with superpowers.
Like you've got things and you've got ways of doing things that Jared and I just can't appreciate
and some of the listening audience because we have sight and you don't have sight
and so i kind of wanted to put that out there first to sort of determine you know what the
best way is to describe how you are you know so we didn't obviously offend you or you know go down
an assumed path and be like man we really messed up there. Yeah. No, no, it's actually great too.
You know, one of the really great stuff
that people like you and Jared do
is that they start introducing like blind people
or different kinds of disabled people.
So what you do is raise awareness
and that's really cool
because people will get more
comfortable you know i you won't believe how many times i've had people not talking to me because
they're like they're uh afraid of offending me like at conferences that i've been to they're
like uh how can i even start a conversation with a guy who's blind and codes and i'm like well i'm i'm not an abomination you
know you can just i don't bite so i think there's this this um i can speak that a little bit because
i i think that i might be that person sometimes and i don't want to be that person but i can catch
myself in moments of that kind of situation where it's sort of like a parallelization where I kind of get paralyzed by,
I guess, just some sort of fear, you know, that I don't want to offend you or, you know,
it's just like this potentially awkward situation and people don't like to feel awkward. You know,
let's let's agree with that. And so for those reasons, just sort of like just don't get
involved with something you said, sort of avoid it. Some people call it anxiety, you know, whatever.
But I might be that person sometimes.
So I apologize in advance for anyone.
If ever I ever do that.
Oh, no.
You know, the point of what I said is that when, when you, you see me and you're like,
oh, I don't actually know this guy, but I heard another podcast about some other blind
guy who did X and Y.
And that's how, well, let's just go talk to him.
You know, the fact that you have actually heard someone speak about his blindness gives you more of a courage.
And what you guys are doing is awesome because, you know, you're just helping the blind.
Well, not just the blind, but you get my drift.
But you're helping people integrate themselves with people with disabilities.
So thanks for that.
Well, let's dig into, I guess, you more so than us.
We appreciate, obviously, you giving us a pat on the back.
You know, one thing we try to do with this show is shine a spotlight in areas where it's just not being shined and to lift those up who don't often get the credit. And
you might look at our past shows and see big names and small names, so to speak. But we try to really
focus on the positive side of this community and to shed light in areas where it's not being shed.
And so with that said, let's open up your backstory. Let's figure out where you came from, what got you into programming, where your origin
story is.
So let's start there with you.
Sure.
Yeah, I was actually born blind, which is a really great thing because I didn't lose
my sight in the middle of my life, which would probably push me into a period of depression
where I would think, why me?
And you know, all these totally useless thoughts.
So in my childhood, I started thinking uh slowly realizing that i could not do
a few things this was like when i was eight or nine years old and this was mostly coming from
the side of my family and my friends who constantly were so smart to point out the stuff that i
couldn't do i actually wrote a response on about this on Quora about what
was the worst thing that I went through in my life. So this is kind of like a recap of that. So
what happened was that slowly I started to think of myself as someone who couldn't really do
anything. So it's like, you know, a few days back, I was running around and climbing up walls,
even though I couldn't see and all this was all through touch, you know.
So and then one day, I'm like, well, what if I fall?
You know, what if I just, I don't know, break my neck or something.
So let's just not go there anymore.
Right?
Let's just let's start being really quiet and not having much fun, even though that's fun.
But let's not do it because it's dangerous.
You know, so this is the kind of stuff that people really get when when they want to, I don't know, like start a new business.
But this was more of a life issue for me.
Like, how do I want to continue my life?
And at some point when I got like 14 or 15,
I started really getting mad at myself for putting myself into this position.
I was like, you can't really go on living like this
because you can't really stop doing what you like to do
simply because it's dangerous.
You know, this is the time that you can risk for free
because I was always being told that when you get older,
you can't really risk because the cost starts getting high.
So I kind of started changing paths again.
And I started working on a computer, even though, well, I'm in Iran
and we have been embargoed and sanctioned for a very long time.
So you don't really get much of a technical background here.
And computers were really new back then.
So I was like, OK, let's just see how we can use a computer. And there was this woman at my school
who actually told me about the software
that could read a screen for the blind.
And my parents were like, well, he can see the screen.
He can really use that.
But after like two or three days
where I figured out the system through brute force,
you know, I would just press keys and see what happened so so they started thinking like well this could work and I
got a PC from my parents so that brought me into the world of computers in the
very beginning and well we didn't really have internet access back then. It was at some certain hours, like 5 o'clock AM to 9 o'clock AM only.
But after a few months, the internet access in Iran kind of improved, and I got a dial-up
internet access.
So in the beginning, I was just playing text-based games on the internet.
They are called MUDs, like multi-user dungeons.
They're kind of a tabletop RPG turned into a text-based game that is interactive.
So you type in commands, you get in the output.
It's like a command prompt or a command line application.
And that's actually where they originated from.
So this was how I got introduced to English. And I had to know English really well to be able to
play. So this kind of led me to get my English teaching degree when I was 17. So that really
jump started my English, which actually jumped my programming because I now could read stuff.
And I started playing around with PHP when I was 18.
I was going to a university to study computers, and everyone was against this decision because there weren't any books.
And I had actually studied mathematics in high school, i sucked at mathematics and i still do
but i kind of got through all that because i had no books and i uh you know the education system
um does not allow for for blindness in in mathematics and stuff so i'll actually get to that later in the show. But what happened was that I got a, you know, I went to the university and I couldn't actually learn anything because all the stuff was on a board. So I couldn't really
read the board. No one would read me the board. So I switched to actually trying stuff at home,
which led me to have great marks when it came to programming courses,
but really low marks when it came to theoretical courses, which I actually left the university for with just an associate's degree.
And I got a job offer from a Canadian company, which actually started my official professional career as a PHP developer.
I saw that in your post there about you're quitting school
and the constant pressure of trying to deal with professors
who just kind of want to get their job done.
Because I guess like anybody, we might feel like we're being bothered
by someone's features or disability and having to do extra work, I guess, to help
somebody get by.
It's kind of crazy how that plays out that way.
And we all kind of navigate this world with, and we all kind of think about someone else's
situation, but, and we try to have empathy, but I guess we only have so much empathy potentially.
And then you sort of like, ah, I can't, I can't deal with that.
And so,
and for those reasons,
you kind of were,
uh,
you know,
pushed into quitting school,
which is,
which is not cool.
But then it also led you to brute forcing it,
which I totally,
uh,
can identify with because I think Jerry would also agree that a lot of us just brute force our ways into most things.
And I liked how you said you would just sort of hammer the keys or hit the keys and figure out what happens.
I guess I'm assuming listen, but I can totally identify with that portion.
That's what I do all day. Just kind of hit the keys and see what happens.
Hit the keys and see what happens. There you go.
Yeah, I actually do control S and then go and refresh the page and see what happens.
But I get what you're
meaning yeah but yeah i actually i think the problem is that most of most people who teach
are not actually given the toolkit to teach effectively they just you know using a book
as a reference and going through that blindly well uh excuse the pun but you know what i'm so uh
so what happens is that you know a lot of people actually wanted to help but one they didn't have
enough base knowledge to answer my question like a lot of visualization in teaching and i get that
a lot and recently too because i'm preparing to get a job offer from
from another country so that i can relocate but the biggest hurdle that i've faced so far
is the teaching of algorithms and this stuff is so complicated that people start using images to
convey meaning and what happens is that it's so complicated that you haven't really practiced actually
saying it.
So you don't even know how to say it.
If I was to say, okay, for someone who wants to learn data science, because I tried that
too and failed.
But if I start to ask you, why on earth do you plot data on a plot?
Why do you actually put things on a plot?
Why don't you just figure out the relations between the values by going through them?
Why should you draw them on a X and Y axis?
Then you couldn't really answer that without a really deep knowledge of how the brain works.
And we don't really have that in Iran.
I don't think we have that kind of deep knowledge in United States in professors that teach
in the university in programming. Because if they had that much knowledge, they'd be
teaching like psychology, I guess, or NLP. I don't know. But you get what I mean. So
what happens is that people don't really have the knowledge to help even though they want
to help. So what they do is they start't really have the knowledge to help, even though they want to help.
So what they do is they start getting defensive because they have come up against this problem that they can't solve.
So they're like, I don't know, this guy just doesn't exist.
So let's go on to teaching.
It's like a problem you can't quite ignore, but yet it's there.
I feel you on that front.
It's a terrible, I mean,
I can even identify with being in that position before you sort of hit some
sort of hurdle, maybe not an exact person or something like that in this case,
but you know, where you hit this hurdle and you just,
it's just easier to ignore it and move on rather than actually face the problem
and deal with it and, and actually help the person if it's a, you know,
if it's in this situation, you know? Yeah. And one thing I started to hear a it and and actually help the person if it's a you know if it's in this
situation you know yeah and one thing i started to hear a lot and i actually identify with was like
dude how much am i getting paid for this job like i don't really want to do this you know
and i actually identify with that but um i don't know i think somewhere down the line we actually
need to focus on these kinds of
problems because, you know, I was actually talking about this with Saqib Shaikh that
you might know with the, you know, he came up with the idea of AI glasses that you just,
I think you might have seen the video. It's a glasses made by a Microsoft engineer who's
blind and now he takes in photos and then AI actually starts reading stuff
for him and identifying images. So he just kind of made it to Hacker News front page just at the
same time that I did. So that was kind of a coincidence. But it was kind of a dream for me
to talk to someone at Microsoft. So that was cool. But we were actually talking about this,
and I was just telling him that even sighted people
can actually use this kind of information
because not everyone learns through images.
At some point, we need to focus on what different methods
for teaching there are for when we want to teach mathematics.
So in terms of mathematics is so theoretical that no one has even
bothered to look at different ways of teaching it.
So what has happened is that there is only one path and you have to take that
path only. Whereas in programming, you have a lot of different paths.
Like I learned programming without reading a single book,
but I actually did improve
with reading books. I don't know, I'm just as affected with books like Clean Code,
just as it has affected a lot of people. But you can actually code without doing clean coding.
So there are a lot of different paths for learning programming
because it has been made simple but for learning different contexts or concepts like like
mathematics well that doesn't really work well and algorithms too well we want to hear uh pyrom not
just uh how you got here but we also want to hear about how you go about your work how you go about your
learning your experimentation so we're going to take a quick break and on the other side we
want to hear from you on the tools you use the struggles that you have and some of the solutions
that maybe you've come up with and um i think everybody's excited to hear that from you so
we'll take a quick break and we'll be right back.
Rollbar puts errors in their place, full stack error tracking for all applications in any language. And I talked to Brian Rood, the CEO and co-founder of Rollbar, deeply about what
Rollbar is, what problem it solves and why you should use it. Take a listen.
How do you build software faster? Like how do you build better software faster? And there are like, there are tons and tons of aspects to that. Take a listen. How do you build software faster? How do you build better software faster?
And there are tons and tons of aspects to that.
And Ruby is like, you can have a better language,
you can have better frameworks that help you be more expressive and more productive.
So the flip side of that is after you've built something that works,
or at least mostly works,
how do you go about getting it from working to in production and actually working?
How do you cover the edge cases?
How do you find things you missed?
How do you iterate on it quickly?
And that's kind of where
what we're trying to do comes in.
So we're trying to say
after you shift your software,
you're not done.
You know, you saw there's still work to do.
And we want to help make that process
of maintaining and polishing
and keeping things running smoothly
be really, really, really easy.
So developers spend roughly
half their time debugging, right?
So anything we can do
to make that process better
is going to have a huge impact.
All right.
That was Brian Ruse, CEO and co-founder of Rollbar, sharing with you exactly why it fits,
why it works for you.
Head to rollbar.com slash changelog.
You get the bootstrap plan for free for 90 days.
That's basically 300,000 errors tracked totally for free.
Give Rollbar a try today.
Again, head over to rollbar.com slash changelog.
All right, we are back.
And we want to learn about the tools you use.
Recently, Param, you wrote a blog post titled The Tools of a Blind Programmer.
If you're listening along, check that out in the show notes.
We'll link it up.
And there you go through all the different tools you use
and kind of why the ones that you pick,
which ones help you, which ones don't.
Can you walk us through that?
I know we have some broad categories of screen readers
and languages and IDEs, operating systems, productivity tools.
Maybe pick a path through there and tell us what tools you use
and maybe start with screen readers
because that seems like the major one.
I'm actually going to assume that people don't really start going through
that. So I'm just going to give a quick TLDR.
Sure.
Well, a screen reader is, you know, a software that reads the screen.
I'm using MVDA, which is an open source screen reader,
which is programmed by the blind.
And it's actually done by a nonprofit organization called Non-Visual Desktop Access.
That's what NVDA stands for. And it's only a Windows screen reader. And unlike what most
people think, you can't really take a Windows screen reader and just install that into Linux and hope that it works.
Because the APIs that these screen readers use, the operating system APIs are so low level that you can't really just copy one to the other always and just get that to work.
So there is a screen reader for Linux.
It's called Orca. It works on the GNOME environment.
And it doesn't really work on the console. But for console, you've got SpeakUp. And I
actually started forcing myself since writing that article, I got a few questions about is Linux really accessible? So I've started playing
around with Linux. I'm actually talking to you from the laptop which has Linux installed on it.
I of course kept my PC around with Windows so that when I want to have a quick fallback,
I can actually refer to that. uh i've been playing around with with
oracle and and speak up these days but uh in terms of mac mac has voiceover and uh ios phones have
the same screen reader it's called voiceover and it's a really good one for for so you know because
apple doesn't really do screen reading and it's kind of like i would
have guessed that it's as good as narrator which is on windows and it sucks because like
microsoft doesn't do screen reading like they don't really have many blind people or or maybe
any blind people to code this stuff so what they do is they just start putting something together
that just gets the job done but doesn't really do that really well. So Apple has really done a great job with this. And they've, so the
screen reader is built into the operating system. So when you get an operating system
upgrade your screen reader upgrades too. So that's really cool. One other thing is that
your screen reader doesn't usually crash because it's one of the
operating system processes. So when it crashes, it can just reliably restart itself. But on Windows
and Linux, since screen readers are just other processes, sometimes when your CPU or memory
usage gets out, then your screen reader starts lagging, which is something that happens a lot when you're using an IDE.
So in terms of IDEs, I use Eclipse.
And other IDEs are not really accessible much, but PHPStorm has been improving because Android
Studio has been improving, and the changes kind of get pushed upstream to the IntelliJ
platform.
So I'm hoping that PHPStorm gets really updated, even though I would have to use a pirated
copy because I'm not really allowed to buy this stuff.
So I'm just, you know, and this is one other issue you have, you know, I got a comment
on my post and it's like, well, it's one thing that you're blind, but it's another thing that you're doing this in Iran.
So being in Iran has its own quirks that you can't really buy anything and you will get blocked if people figure out that you're Iranian.
Why is that?
I was not understanding that myself.
Whenever I read in your post there how you had to use a pirated copy of a paid one i didn't quite get that well why is it like that um well politics
usually uh well for some reason at some point i don't really even remember why but at some point
our two countries decided that they don't really like each other so the u US started to have these embargoes and sanctions of selling stuff
to Iranians. Like, I can't really have a job with a business that is working in the US.
I can download stuff, like Google code is blocked. And I don't know, like, Docker, for
example, is blocking us. And there is a lot of other websites like SourceForge and Apple iTunes and many more.
It's kind of crazy that politics can play.
When you rewind and you sort of like zoom out from this entire issue,
here's someone who has a passion for programming, has a superpower, a feature or disability, however you want to term it.
And they're just trying to get by in life.
They're just trying to like forge their own path.
And you got these politics that says you can or can't buy something.
And it just blows my mind that you need a piece of technology that should be accessible to you.
And because of where you live and because of the politics that don't even really involve you personally affect your long you know your your life it it just astounds me i mean obviously
this is a politics show but let's put it out there it's kind of crazy yeah and this is just um the
very beginning you know like for example i'm not you know uh i'm not getting the uh you know when
i was back in university i was not getting all the, you know, features that people in the US could use, like books or human readers or technology, you know, hardware that I could use.
So it's kind of like a difficult road and it's not really easy and politics doesn't make it easier.
So that's kind of difficult
so that's why as far
as I can remember I've been trying
to get out of Iran because I
wanted to
have a better reach to affect people
but let's
let me get back to that later but that's
a really big issue
we'll earmark that
let's talk about the technology because you said Eclipse is accessible and other IDEs aren't.
What are the specific features of Eclipse or what are the things that make it accessible for a blind person over something like PHP Storm or some other IDE?
Well, a really big thing is hotkeys and keystrokes. And PHPStorm and IntelliJ in general,
they have a lot of hotkeys. So you don't really face the issue of not being able to do something.
But the problem is that there are a lot of pop-ups and windows in IDEs that stay out of your way, so you can't
really navigate with the arrow keys on them, but they provide useful information.
For example, when you focus on a function or when you hover your mouse on it, you get
a pop-up window.
I don't really have an idea of where that appears usually.
But there's this pop-up that gives you the information of the function, if you were to
call it. Like the arguments, the types of arguments and so on.
Mm-hmm.
So as a blind person, I need to have access to this. And usually I don't. Because
that's, as I said, a different window. And it's, it's, there's no way of getting to it so what accessible ids do is that
they have this this keystroke to actually focus that window to make your cursor go into that
window and eclipse for example has f2 and when you press f2 you get this documentation you get
autocomplete or or content assist or IntelliSense,
whatever you call it. And you can just navigate on the different items using the up and down
arrow keys. But usually since, again, that happens in another window, when I use up and down arrow
keys, I just hear the current line. Because my screen reader just thinks that I'm trying to move a line, but in fact, I'm not.
So this is like when people start to work with screen readers,
they will see that there are a lot of stuff
that might work for someone sighted,
but they actually hinder the productivity of someone who's blind.
And I think this is where text-based ID is coming,
like Emacs and Vim.
I haven't really used Emacs.
There is a plugin called Emacs Speak,
which has been written by T.B. Raman,
who works at Google.
And this is kind of like a speech-enabled interface
to Emacs with specialized keystrokes.
But I've kind of hit this barrier here,
because I need to learn to use Emacs speak before I can learn
to use Emacs, and I need to learn Emacs before I can
learn to use Emacs speak.
So I'm trying to get
through that and i i will later on write a post about how my experience goes but for now uh i
can't really comment on those so i don't really have enough experience here to say it but but
i mean i can't help but think about the some some of just the smallest things that maybe aren't, you know, maybe you overcome them quite easier
because I don't have any experience with screen readers.
I wonder how it even deals with like a syntax error.
Like say you forget a semicolon at the end of your line of code
and you save it and you go refresh the page and, you know,
all hell breaks loose.
How do you go about finding,
like how do you go about finding where that is and does the IDs,
do the screen readers help you find that? How do you do that?
Well, usually you would get an ad, like, I don't know, do you actually,
I think IDs highlight that line in red or maybe draw a line under it,
but we don't really get that feature. So what we have to do is that we actually have to try really hard to not make a syntax error.
And when we fail, well, some IDEs like the Go Eclipse plugin that is for like the working
with the Go programming language. I've seen that
one actually provide information in that. You know, I talked about the F2 key. So, when you
press F2, it just tells you that, you know, you have an error in this line. And like the PHP
plugin actually does that, too. But the problem is that you need to press F2 on every single
line until you get to that line. So, what I usually do is that when I, well, I've just,
you know, for the past two years, I've done mostly back-end work because I, you know,
understandably I can't do HTML and CSS.. So what happens is when I run the application
in the command line, I get this error saying that line 24 is, I don't know, like unexpected
left brace. And then I figure out, oh, I probably left out the semicolon there or something.
So I just go to line 24 or check out line 23 and 25,
and then it just shows itself usually.
You know, when you start making syntax errors with a programming language,
you kind of figure out what error means what.
So after a while, it just becomes a habit.
You just opened up a whole new ball of worms for me
or whatever that saying is because, I mean, stack traces.
Can of worms. Stack traces are almost indistinct. Thank you. Can of worms. me or whatever that saying is because i mean stack traces can't stack traces
are almost indus thank you can of worms ball of wax um mixed metaphors stack traces are almost
can be indecipherable oh yeah you're staring at them let alone to have a piece of software read
you a stack trace do you find that to be just completely confounding or do you find it not to be too bad um well i actually well one of the very neat
features of screen reader is well there are actually two um but the first one is that you
can control the mouse that's really cool so i can actually focus on a line and then i i tell my
screen reader to bring the mouse pointer here and I can just tell it to activate the left-click functionality on this item.
So that's really cool.
But the second thing is that most people think of screen readers as a software
that just starts reading a window from top to bottom
without actually giving you much control.
But in reality, you can actually jump around.
So what I actually do when it comes to reading stack traces,
I just read the first line.
Well, depending on what language I'm using.
Like in Python, I just read the last line
because that's where the whole stack doesn't make sense.
But then you read the last line, it's just, oh, okay.
But when I wasn't familiar with the Python stack traces, I would just look at that and go,
wow, where does this even start? I have no idea. So, it's more of a habit and you need to form a
lot of habits as a blind person to get around really fast because there's all this useless
information and you have to kind of filter that out because it's mostly mental. Your screen reader doesn't do it. Your eyes don't do
it because there's no highlighting. For example, one thing that, you know, I read at 530 words per
minute right now. It's going up to 550 pretty soon. But, and most people say, wow, that's really amazing.
And what I usually point out at this time is that you actually do read more than that.
And that's because you have the ability to skim. Like imagine that you want to have a list of
transactions, like 100 transactions in a page, and you want to quickly look at a list of
successful ones, for example.
Now most applications provide the successful ones in green and the failed ones in red.
So what you can do is you can just scroll down, have a quick look, and you're like,
okay, so most of that is fail. But me, no, I have to go through every single row of that data.
And then, you know, the most I can do is just focus on the status column
and just tell my screen reader to read that column.
So what I hear is like success, success, fail, fail, fail, success.
But still, there is no way of actually doing that as quickly as you can with site.
So there is that. There is no way of actually doing that as quickly as you can with site.
So there is that.
I feel like you should start a live stream or a Twitch feed or something so people can just watch you do your thing.
I think that would be, just listening to it,
I'm just imagining how that goes,
and I'm probably imagining it wrongly.
I don't know, Adam, if you're trying to do that as well.
But I think it would be, you know, I guess
live coding is a thing that's going on nowadays.
And people
obviously with the success of Twitch,
people like to sit around on the internet and watch other people
do things, whether it's play video
games or code. I'd be
fascinated to just watch you code
for an hour.
Just FYI.
I think in my case, well, my case but in particular i'm trying to
imagine what it's like because jared you and i might imagine and when we when we share our
imagination i guess or we when we actually imagine our brains we start to paint it paint a visual
picture and that's one thing i kind of appreciate about those who are blind is because you don't
lose you you lose what is your physical sight,
but you don't lose your memory sight. And I learned this from Blake Ross, actually, I think
he penned a post recently about how everyone has this ability to visually paint a picture in their
brain, in their mind. So this mind's eye, so to speak, that's where that term came from.
And, you know, I'm curious, Parma, if if you have that if you have that ability to paint
something in your mind and visually see something in your brain even though and i guess maybe it
might be hard to really know if that's true for yourself because you've never really seen
so you can't it's sort of like falsy for you in a way uh because you're not really sure if it's true
um but that's what i think i think of like you know i try to imagine myself
in uh in his position i try to imagine what it might be to hear through his process that's kind
of you know like tactic tactical uh kind of uh vibrations or things like that that uh alert him
versus sight it's kind of a run-on about that sorry yeah that's kind of a really uh great thing to do and and one thing that i usually
explain to people to help them bring you know come into my world is um i can't really imagine
something i haven't touched before whereas you can just look at tv and you see this i don't know
this this video of the lion but i don't know what the lions do. They, uh, I don't know, a kind of a panda, like hanging off a tree or whatever.
And you, you don't actually need to touch that panda to know what it looks like, but
you just need to have an image, but I don't really have that.
Um, and I mean, like if you had like this TV that would actually project, uh, tactile stuff,
maybe I could have that, but, but you know, the whole model of the world is built around
sight.
Visual.
Yeah.
Yeah.
So I can't really, no, I vision doesn't really mean the same to me and you.
So it's kind of like a, a, a kind of different, uh, terminology.
On, on Jared's note though, I do think I do think that there is an audience out there who would like to see what you do, may not be able to see it but others seeing it seeing
how you process things would inform a lot of uh empathy for one a lot of insights into those who
are actually leading or building those technologies um that have sites that can leverage the the
ability to see to inform them i can see that's a pretty awesome thing and obviously the light
the live side of it's not necessarily required,
just even a screencast.
I think just watching you interact with your screen reader
and to tell it, you know, to instruct it,
I just feel like that would be a powerful thing to behold.
Yeah, that's kind of interesting, though.
Yeah, I actually tried this with livecoding.tv.
It was an interview, And part of that interview
was they asked me to interact with the screen using my screen reader. And a huge issue we
had is the internet speed in Iran is really low. So I can't really broadcast. The screen
casting option that you just said is really a cool one. I might actually do that. I might do that. Yeah. It's really a cool one. I'm actually, I might actually do that.
I might do that. Yeah. That's a really cool idea.
Well, it's time for other breaks. Let's go ahead and close for that and take a break. When we come
back, I think some pieces we can focus on is, I love, we kind of teased it earlier, but carving
your own path. And I think in that section of your post, you talked about how as you evaluate your path, you evaluate whether or not your blindness will be an asset or I forget what the other word was that you used, but just basically an asset or not a good.
Was it a liability?
Yeah, it was.
That's what it was.
And I think that's kind of an interesting thing to look at.
So let's break here.
We'll come back.
We'll talk about kind of some advantages and disadvantages from your perspective.
So let's take that break.
We'll be right back.
If you're looking for one of the most fastest, efficient SSD cloud servers on the market,
look no further than our friends at Linode.
You can get a Linode cloud server up and running in seconds with your choice of Linux distro,
resources, and node location. And they've got eight data centers spread across the entire world,
North America, Europe, Asia Pacific, and plans start at just 10 bucks a month with hourly billing.
Get forward access for more control. Run VMs.
Run containers.
Run your own private Git server.
Enjoy native SSD cloud storage.
40 gigabit network.
Intel E5 processors.
Use the code changelog20 with unlimited uses.
Tell your friends.
It expires later this year, so you have plenty of time to use it.
Again, use the code changelog20 head to
lenode.com changelog all right we're back with baram dustar and uh you know this has been an
inspiring conversation i think because we get to see uh i guess using the bad pun you used before
um to say see where you said blindly uh navigating something, you know, it's,
I'll just restart because that's just stupid as crap.
Couldn't even talk my way out of that rather than put myself in, man.
Dang it.
That was a nice one though.
That was a nice one, yeah.
Yeah, I would actually keep that in somehow.
That is cool.
We'll leave it in then. We won't edit That is cool. We'll leave it in then.
We won't edit that one out.
We'll leave it in because he said so, so why not?
But, you know, we said before the break, you know, carving your own path.
We talked about that.
And I really appreciated that perspective of your post where, you know, everyone else might look at you.
And again, there's that pun um but everyone else might uh you know
see what you are and look at uh the way the way i can't stop uh describing it in ways that are
actually visual see it's impossible at least for me right but yeah that makes sense to read how you
speak of yourself around your blindness and how you use it and how you've used it to navigate your life.
And, you know, it brought a lot of empathy into me with reading that part because everyone
is carving their own path and everyone hits hurdles.
Your hurdles are different than ours, but I really appreciated how you described your
blindness being an asset or a liability to you.
Can you talk about how that, you know, the advantages and disadvantages of your blindness being an asset or a liability to you. Can you talk about how that, you know,
the advantages and disadvantages of your blindness
and show us some ways it's a superpower
and some ways that maybe it's not for you?
Yeah, sure.
I actually, I have a post called
The Advantages of Being a Blind Programmer.
And when I actually posted that on Reddit,
I got a comment that said, this just sounds like someone trying to push something that is negative, something that is a weakness, and convert it to something that is a positive point.
Whereas it's really not.
You're just forcing it to be positive.
And I was actually afraid of that post coming off like that. So I conversed with
this person and tried to get their perspective and edited my post so that it doesn't really
get this attitude. But what we usually don't get is people looking at what they don't have
and then trying to figure out where they can actually use this lack of whatever they
don't have.
Well, that sounds really complicated, but let me break that down.
So me, I don't really have sight.
So where can I actually use this lack of sight?
Well, I could do something that people thought may be impossible because I actually like that kind of thing.
So what I do is I just go to, I don't know, I go to programming classes or in my case, I just start playing around with programming languages.
Not because I want to impress people, but because I really like to do this. And there is no other person around who has done this.
And this kind of gives me kind of a, you know,
I just get a kick out of doing stuff that no one has ever done before.
So I use this fact and then I go forward.
And what happens is that when I go to an interview here,
most of the time, it's like the guy just looks at me.
He's like, so do you program?
I'm like, yeah, I do.
And this is like he's instantly caught.
So what I can do is I can use my blindness, which is usually a weakness, and turn that into a, you know, instant marketing pitch.
You know, I have my elevator pitch down.
I'm like, I am a blind program.
And that's like, I, you know, everyone goes like, wow.
And that's not, I haven't really done anything.
I have just done something that people thought was impossible.
And it's not, it's not really hard.
It's just that no one has ever bothered to do it. So that's when your weaknesses
start to turn to kind of an advantage. It's just that when you start having fun with your life,
then you start doing things that might be impossible for others, but you just had fun
and you just kind of did it without actually knowing that you were doing it.
So this is what happened with blindness for me.
But it does obviously have its disadvantages. As I said before, you can't really get kind of a great education.
You are limited with accessibility tools and accessibility of websites.
And for example, when Facebook comes out, you can't really use that for two or three years
until they get around to making that accessible. So everything has a positive and negative point.
And that's what I'm trying to say, because most people just see the negative side.
And it does have a lot of positive points. For example, another thing that I talk about in my post is how I actually talk to people.
So when you see me, well, that pun again.
But when you come up to me and you start talking to me, then you have this instant connection with me because you start seeing something different.
So I don't really get run out of talking points.
You know, whenever someone just comes up to me,
we can start talking about my blindness,
which is an instant conversation.
I don't know, like, what do you call it?
It's a, what's the word?
Conversation starter.
Yeah, yeah, or icebreaker.
Yeah, icebreaker.
Yeah.
Yeah. Yeah, so I get an instant Icebreaker. So it's a really great thing. And for example, let me just give you another insight into this. When I actually wrote The Tools of a Blind Programmer, this was my second post. And no one gets 60,000 views for their second blog post.
And that's really great for pushing me to write more.
But well, when sighted programmers are just writing, they're just one other
person in that really big sea of programmers, so no one really pays much
attention and they have to write for three or four years until they get to such a view account.
But I just did that with writing about myself.
I didn't really do something difficult.
But so what I'm saying is that the fact that you're different has its own really overlooked advantages.
And you need to look at your blindness or whatever you don't have as that. So when you don't have the knowledge to do something,
and when you learn that,
you can just start blogging about that
because a lot of other people
don't really have that knowledge too,
and they would appreciate your beginner input.
So that's just another way of looking at the fact that,
well, I can't really write about this.
I'm so much of a beginner, so I have nothing to say. So you can just take anything and turn that into
something positive if you look at it like this. Yeah. You know, hearing you use visual words,
to describe even from yourself, I feel less bad now about doing that. But it also kind of gave
me a new perspective. And I thought about, we use words like see or watch or show, and when we naturally think about them in visual terms,
but I think what they really are is a revelation term. If you kind of maybe
put the word reveal or revelation in place of most of your visual words, I bet that it changes
things because you can have a revelation,
we can have a revelation, and we both have different attributes
in how we see the world.
Exactly.
You know what I mean?
And so it's while the rest of the listening audience might hear that
and say, well, those are visual words.
They are, but those visual words are actually describing something
in a way that are non-visual.
To me, at least.
That's how I look at it.
Yeah, yeah.
But, you know, I never want to push off from the, you know, I have this favorite author.
His name is James Altucher, and he has written books like Choose Yourself.
That's his most bestseller kind of book.
Choose Yourself, yeah.
Yeah, and what he does in that book, he focuses on his failures and his weaknesses,
and that's how he actually tries to get his message across.
And that's kind of a new, fresh perspective.
I think we all do that.
I think we all have our weaknesses, right? I think we all, you know, we all have our
weaknesses, right? I got, I've got mine, Jared's got his, and you've got yours. It just so happens
that yours is, is so unable to, to hide it. You know, you can't hide your weakness. Whereas maybe
some of our weaknesses are less apparent and, you know, we don't have to lead with that.
And what I loved about what you had said there was I'd love to actually hear your elevators pitch on that you that you give to anybody about your blindness. But how you lead with that, you know, that's to me, that's super cool to like recognize that what would typically be seen as a weakness you you leverage as the key feature, right?
The selling point of who you are.
And I think that's exactly how you need to be, honestly,
because as you said before, early in your life,
you were upset that it was almost like it was your fault
that you were blind or almost like you blamed yourself,
I think you even said.
And now instead, you take what would typically be seen as a negative thing
and turn it into a positive thing.
And we've said that time and time again on this show
where we like to focus on the positive side of things.
I've said that in different podcasts about myself
that I don't like to let the negativity come in and define who I am.
I like to focus on the positive
side of things and see the positive side of things because the there's so much negative out there
that if you listen to it it would just drown you and that's not a way to be yeah i mean like listen
to music how many positive music do you hear daily like uh i don't know it's just uh sometimes you
just need to as you said focus on the positive to get the energy to
wake up you know because if you don't then you're like okay so what's the point of getting out of
bed today so i'm just going to so i don't know get whatever that happens to me happen to me anyway
but you know i for me a really uh great turning point in my life to accepting my blindness was the fact that I
kind of, well, a lot of people might disagree with me here. So sorry, sorry, I don't, I'm not
really trying to start a war here, but, and that's not the point. This is kind of a personal thing,
but I kind of, when I was 13, I kind of understood, and I still do, that whether or not God exists, this has nothing to do with my life.
I'm afraid to believe that someone or something is controlling my life.
And when I actually looked at my life like this, when I actually embraced the fear of someone else controlling my life, this actually made its way into my own life in
allowing others to control me. So it's like others can't really define what I can or cannot do. It's
only me. I can define whether I can or cannot program. If I can program, then great. But if I
don't, it's just because I didn't try hard enough or I didn't
know the solution. It's not that it's impossible. It's just that I don't know how to do that.
So when you look at it like this, when you start taking responsibility for what you do
or don't do, it just kind of, this is the kind of thing that allows you to go and say,
hey, I'm a blind programmer. Hey, just look. You know, this is just, as opposed to others who kind of run away from being blind.
I had a lot of blind friends before
who would even, you know, as children,
they would play like they were, you know, they were sighted.
They had this, they would act as sighted people
just because they were afraid of being blind.
You know, like I would even hear things like, I can read this or I can see this, whereas
they can't.
But as a, you know, as far as you're going on like this and you're not accepting your
weaknesses, this is not really going to work.
So at some point you're going to say, okay, I can't do this.
Right.
And this is just what defines me.
My weaknesses, my strengths, they're what define me.
So I might as well just accept them.
Yeah, I mean, I think we're all dealt a specific hand
and that hand has its advantages and its disadvantages.
And I think many times, you know,
certain people and all of us are given to kind of just complain about the hand,
you know, like, oh, these cards suck. Um, that's why I'm failing or that's why, you know, explaining,
excusing away as opposed to saying, well, these are the, these are the cards I got. And so I need
to go out there and do my best with the hand that was dealt to me. So I think in that regard,
you're a shining success story
of somebody who said,
so I'm blind.
I'm going to be a programmer anyways.
And I'm going to,
I'm going to make a life,
you know,
of something that I want to do
despite all of the drawbacks
of this particular disadvantage.
So in that way,
I would say you're,
you're super inspiring.
So thanks so much
for sharing that with us.
We're going to get to closing out here.
So let's do a couple of our closing questions.
And the first one is programming hero.
So no doubt there's people in the community that you look up to,
maybe a mentor, maybe somebody else who's inspired you
to want to be a better developer.
So if we had to ask you,
who's your programming hero and why,
what would you say?
Uncle Bob,
because he actually showed me the,
well, I read his book called Clean Coder,
not Clean Code,
when I was in a company,
a startup that was failing
because the software team didn't know how to act.
So his book came at the time when I was actually ready to hear that kind of thing.
So he changed me as a person.
His book actually did.
So both in terms of programming, his clean code book and his clean code book in terms of personality.
So I really got affected a lot by his book and I really thank him.
I haven't really got to talk to him, but if he listens to this, I'm really glad that I read his book.
Very cool. That's not the first time we've heard Uncle Bob, is it, Jared?
No.
At least once or twice. Maybe three times. Yeah. He actually taught me a lot about architecture, which is kind of something
like something that I focus on a lot when writing code. And the fact that I need the
functions and statements to be really small to understand them, it kind of helped me build
that kind of architecture. So, my functions are like six or seven lines only
because that's how much I understand, you know,
because if a function gets too long, then I get confused
because I can only focus on one line at a time.
So couple these two together
and I'm pretty much a really great architecture builder.
That's awesome.
That's like, that's an objective,
like that's a distinct
advantage there of
your disability.
Because your
necessity for
simplicity ends up
producing better
software.
Add that one to
your blog post.
Go ahead and
throw that one in.
Yeah.
Blog on with
that.
That's actually a
really good point.
It also reminds
people why too.
I was actually
going to say in a funny way, you should be
programming Ruby then, not PHP, because it's so expressive and tends to be very succinct
in its form, but you're a PHP developer.
Yeah, I actually dabbled with all kinds of programming languages, and I really love Ruby
because it's really so expressive. I love expressive languages.
And, um, it's just that I haven't really got a chance to use that at my job.
So I don't really list that in my resume, but I've, I've lot, I've
used a lot of programming languages.
Our next question we, uh, we tend to ask at the end of shows, which we haven't
done recently, but we're getting back to it is, uh, you know, we obviously
our roots are in open source.
It's sort of the the crux of this show is is this bend towards this influence towards the community of open source software,
the idea of open source software and those who are actively creating it, maintaining it, supporting it, doing it, all those good things.
And so in this case, we like to ask someone what's on their radar.
And so in this case, you know, if you had a free weekend and you're like, man, you know what, I'm going to
play with this new thing or whatever it might be, or what's something that's fresh on your plate.
That's something that's open source or some sort of technology out there that you would like to
hack on more if you had more time.
Docker is one of those technologies that I really want to try.
And I haven't really gotten around to doing that because we've been blocked by the Docker team because they just have to block Iranian traffic.
But I'm trying to figure out a way to get through that blockage.
And I've got a success so far.
So when I do get a free weekend, I want to play around with Docker in creating an environment for development, not just for production.
Because our team here has a lot of issues in creating development environments.
And I'm kind of the guy that does R&D all the time
because I can really read fast and type fast.
So that's one thing that I really want to, you know,
read more about and do more about.
And because Docker has a really huge community building effort
and I really like that.
And even the Go community, you know,
the Go programming language is doing a lot in building community
too.
And I like projects that are community driven because they kind of bring in a different
kind of outlook from every kind of person that joins.
So they're really great.
You can actually see this kind of difference in looking at community in PHP frameworks. For example, compare Laravel,
which became really popular really fast,
to Symfony, which has been around for ages
and is losing users to Laravel,
even though Laravel is much simpler
and, well, it doesn't really have as many features
and it's not really great for writing great code.
It doesn't really force you to write great code,
but a lot of people are doing Laravel
because it is building a lot of community.
And that's really a huge thing in open source.
And I hope that people start moving toward
building a community about the tools
that they are spending their nights and days
and I don't know, midnights coding.
I've never had the ability to kind of contribute to open source because I
never get the time and I have no idea how people do that.
So that might be something that they might have to figure out on another
weekend.
I've seen your recent activity on GitHub and you've gotten some commits at
some point back to NVDA, which is the screen reader you mentioned earlier.
It's open source.
I've seen that you've got some commits back to that and some contributions to
Vega and Vega and Vega and machinery.
So, I mean, it seems like you're getting some time there, but you know.
Yeah. Yeah.
Well,
it's just that your Indian companies don't really reward you for
contributing to open source. So companies don't really reward you for
contributing to open source so you can't really get that as part of your job right so they they
even try to uh get you to not contribute to open source at all so i don't really get the time to do
that as part of my job if i do that it's because i just have to do that at home right so so yeah
and when i get home i'm i'm just going to get my
wedding really soon it's like in two weeks so and and i'm really trying to yay and i'm trying to uh
get job interviews to be able to relocate and so i'm trying to handle a lot of things and i wonder
how people just handle these stuff and contribute to a source. There's lots of people we've had on the show
where Jared and I, we have no idea
how you do it, and somehow
they do. Yeah,
they're awesome. All of them are awesome.
Thanks to all of you open source
contributors. Absolutely.
It's been a pleasure to have you on the show. I know that
as Jared has said, you're an inspiration to
many, and we look forward to hearing
more of your story through your blog.
And obviously, we're excited about your wedding coming up here in a couple of weeks.
So congrats on that change in your life.
And good luck, obviously, because marriage is awesome.
But is there anything else you want to close with?
Anything else you want to share with our audience before, uh, before we close out the show? Um, I just want to thank everyone to, uh, for wanting to know more about how blindness works
and how different people work. It has been really, uh, a rewarding experience to share
and get such a great feedback from everyone because we could just go in the, I don't care
more than, uh, I don't care.
I don't know.
I have a lot of stuff to do.
But the fact that we want to know more about ourselves
and different people,
it's really a rewarding experience.
And I thank you all for being so curious.
And I hope to be able to share more of my story with everyone
so that we can learn more about ourselves.
You know, most of the time I have been the one that is learning about silent people,
but I think now I've gotten to a stage where I can just show a few points to silent people
so they could do the reverse.
Very cool.
And if you're a subscriber to ChangeMall Weekly, we'll link up.
I think we have actually in the radar right now one of your posts in there.
So if you have any more future posts that we think should be shared, we'll include them in ChangeLog Weekly.
So if you haven't subscribed yet, go to ChangeLog Weekly.
It's actually not ChangeLog Weekly.
It's ChangeLog.com slash weekly.
We should own ChangeLogWeekly.com, but that's just too many domains here.
We don't like that.
We're anti-many domains.
We want one single domain.
But listeners, thank you so much for tuning in.
And those members out there who support us, we think you're awesome.
Thank you so much for that.
If you haven't heard, we do have community membership where you can support what we do right here at the Change Log
and also join some of the behind-the-scenes stuff.
We give you an all-access pass to everything we're doing our members only slack room uh 50 off in our store
which includes one t-shirt now but many t-shirts in the near future so take advantage of that and
also offers from our favorite uh sponsors and partners that work with us we give you deeper
discounts that you can ever get anywhere else by supporting us it's just 20 bucks a year
changelog.com membership membership. Check that out.
But thanks for tuning in this week.
So it's time to say goodbye.
So let's,
let's do that.
Goodbye.
Bye. We'll see you next time.