Embracing Dyslexia As A Software Engineer

Josh Brunner
Helpful Human
Published in
6 min readMar 14, 2017

--

Idea for this image came from Wired. Redone in the OpenDyslexic font.

Growing up in a small private school, I did not have much exposure to other types of thinkers. So, when I would slip up when reading out loud in class or when it would take me two to three times longer to read and comprehend textbook content, I would be left thinking that something was wrong with my brain.

Fortunately, that’s not the case.

When I made it to university, I wanted to see if there actually was anything wrong with me — so I took an IQ test. Results from this test concluded that I was, in fact, dyslexic.

“Dyslexia is a language-based learning disability. Dyslexia refers to a cluster of symptoms, which result in people having difficulties with specific language skills, particularly reading.” — International Dyslexia Association

In essence, it’s a learning disability that makes it difficult to comprehend textual content.

While attending university, the pace at which work was expected to be done caught me off guard. I quickly began to fall behind, until my mother urged me to investigate various disability options that the university might offer. Reluctantly, I did so.

Taking advantage of the university-offered support ended up being my saving grace. I was able to have the time I needed to complete the tasks I was assigned. All the while, I was subconsciously learning how to cope with dyslexia.

One of the ways I did so was finding a dyslexic-friendly font, OpenDyslexic, that helped alleviate the difficulties I had with reading articles and documents for class. Additionally, I installed a Chrome extension that changes fonts on almost any website to OpenDyslexic.

Enough About My College Days… How Did I Make It As A Software Engineer?

Truth is… I haven’t “made it”. Every day has its various challenges that I now pass off as “benefits” of being dyslexic. These include the constant typos, syntax errors, longer time understanding a problem space, and more. Perseverance is key.

Being a dyslexic software engineer is actually something I’ve grown to be proud of. While there are some aspects that are difficult to overcome, I have used the tools and strategies that I taught myself in university to solve difficult problems and think critically in the workplace.

Engineering Software Is Tough

— Especially in the consulting environment that I am currently in. It requires a combination of client communication, expectation setting, teamwork, collaboration, and — you guessed it—coding. There’s a lot of reading and writing as a software engineer, but that doesn’t mean that it’s impossible for a dyslexic.

Although things may take me longer to complete, the end result is oftentimes more thought out and reliable for future refactoring. I’ve found that when it comes time to hand off code to others, they are able to pick it up with a relatively light explanation of my thought process.

I, by no means, feel that I produce my work at a speed slower than I should as a professional software engineer— which was a major fear that I had when I entered this field. I’ve developed a skill-set that actually allows me to benefit from my dyslexia and, in some cases, put me at a competitive advantage over other developers with similar seniority.

What Has Helped Me The Most?

Since dyslexics are visual learners and thinkers, I make sure to integrate that into how I work throughout the day. I always approach architecture decisions via white-boarding. I use metaphors when I explain things to other people or when I try to reason about the problem space in my head.

Thinking out loud and explaining a problem space to my peers ends up helping me extensively. Aside from manually doing things to help me throughout the day, I’ve set up automated tools help me do my work.

Syntax Highlighting

Having the colors of various words represent different things is immensely helpful. It enables me to parse a code block quickly and effectively. Take, for example, the following Fibonacci Algorithm written in JavaScript.

const fibonacci = function (number) {  
if (number <= 1) {
return 1
} else {
return fibonacci(number - 1) + fibonacci(number - 2)
}
}

Adding syntax highlighting to this example enables the developer to quickly and easily parse the code block to reason about it.

The Right IDE

Choosing the right IDE (Integrated Development Environment) is crucial to being able to get work done at a rapid pace throughout the day. Having a good IDE will allow you to customize your code writing experience; changing font types, colors, syntax highlighting, IntelliSense, autocomplete, and more.

I currently use VSCode to write JavaScript and C# for work. It has great plugin support and allows me to overwrite nearly all of its default settings so I can make it work for me.

Creating Mental Models

As I mentioned above, dyslexics are visual thinkers. The way we problem solve is usually fundamentally different than other non-dyslexics. There’s nothing wrong with this — it’s simply different.

As Beth Andres-Beck says on her blog site, “[dyslexics] rely on metaphor[s] and examples a lot.” I know this to be true because I often do this in my head as I’m solving problems throughout my day. While collaborating with others, I then use these metaphors to provide explanations and examples of the problem we’re trying to solve.

As I navigate a codebase, my brain is subconsciously creating a mental model that represents how each piece of the code connects to another. I find it very helpful because this is how I am able to debug software as well. Being able to “see” the various paths that a bug may be found within the mental model I’ve created allows me to usually diagnose and solve complex problems with ease.

Having mental models to reference whenever you revisit a codebase takes away much of the ramp-up time involved when needing to switch contexts. In the consulting environment where projects constantly change and every minute is needed to be highly productive, this skill is very valuable.

What Has Challenged Me The Most?

With dyslexia, there are various challenges that you are faced with as you are expected to produce content. One of the key things I focus on throughout my day-to-day is mitigating various hindrances before they ever become a problem.

Explaining Things To Other People

It’s ironic because I mentioned above that my dyslexia helps me to explain problems to other people through the use of my mental models. However, there are times when I find myself at a loss for words when trying to explain how I understand something.

JavaScript

I do most of my coding in Javascript, but this has been a big challenge for me. JavaScript’s combination of loosely typed variables and event-driven architecture was initially very challenging for me as I was taught Object-Oriented Programming (OOP) in university.

Being dyslexic, thinking in OOP comes very easily. Reason being, components make up other components. Whereas in an event-driven system, anything can happen at any point in the program’s execution (i.e. mouse clicks, sensors getting triggered, network-related events, etc.). Fortunately, developing in React and Redux has helped to mitigate this challenge for me.

Conclusion

Growing up with difficulty in reading and writing, I always thought there was something wrong with my brain. After going through a process of denial, embracing my dyslexia was the best thing I could have done.

As a software engineer, it is my job to solve problems all day long. These problems exist not only in code, but also in written communication with my clients and peers. As the Yale Center for Dyslexia & Creativity phrases it, I’m able to come up with “unexpected ways to solve a problem or tackle a challenge.” To me, this is crucial to the way I write code.

I’ve identified ways in which I can mitigate the negative effects of dyslexia while promoting the benefits of it — I wouldn’t have it any other way. I love the work I do and I feel like my career is off to a good start as a dyslexic software engineer at Helpful Human.

Resources

--

--