Josh Nonet-Black is the newest member of the data science and AI team in the Risk Analytics function at Deloitte. He has been blind since birth, and this interview will reveal how he approaches programming without sight.
We will cover the following topics:
- About Josh
- Tools for blind programmers
- How to build accessible products and software
- Remote working experience
- Benefits of inclusion and accessibility for organisations
How did you get interested in programming?
I studied physics and astrophysics at university, and that is how I started coding. Not being able to participate well in more visual labs, such as using telescopes to make observations, the university arranged computational labs that were more accessible for me.
There are not a lot of blind people in sciences because of the stigma that they are diagram-heavy and visually based. When I told my school that I wanted to pursue Maths and Physics A-levels, they tried to dissuade me in the beginning.
Programming is reminiscent of speaking a language. You do think about it from a mathematical perspective, but it’s more about how to approach a problem in a way that a computer would understand. I’ve always had a good brain for numbers. I like seeing patterns and relationships.
Why did you decide to join our team at Deloitte?
What drew me to Deloitte was the emphasis on diversity and inclusion, which I value a lot going into a technical field where there is not much precedent for blind people. What resonated with me strongly was the willingness to be flexible and work with me.
Tools for blind programmers
What is a screen reader, and how does it work?
A screen reader reads out the text on the screen. It tends not to do well with images, although that has come a long way. I’m in a privileged position to have grown up with internet and a lot of technological advancements in the past ten years. There are still some compatibility issues; for example, PDF scanned images are impossible to read because there are no searchable text elements. With advances in optical character recognition (OCR), screen readers can interact with images much better than before.
What are your steps for understanding your data? Do you mainly work with tables over charts?
People would be surprised to hear I’m quite a visual learner. I tend to visualise things in my head to create a mental map and what the data might look like.
In school and in university, I had printers to print tactile graphs, which are useful for getting an idea of trend in data. I could also have a sighted person tell me what a graph looks like: does the graph have an exponential or linear trend? It’s about finding ways to work flexibly.
How do you debug your code? You must have a great memory and mental map of code structure.
Unfortunately, I have to go through code line-by-line. It’s a laborious process. Languages like python generally tell you the line and type of error so I can look it up.
I have a piece of equipment being sent to me this week called a Braille display. It’s my equivalent of a screen – a line of refreshable Braille input of the text. It is especially useful for checking indentation instead of counting the number of tabs with the screen reader, which can get confusing when dealing with more complex code.
A lot of it gets easier with experience. I’ve been coding for about four years now, in an all-computationally based lab.
Is it more difficult with complex models?
I tend to have a plan on how I want my code to look. I built convolutional neural networks to classify different types of stars for my Masters project, which was so complex with a lot of functions and output files. I had several different code files for pre-processing and for the model. XCode on a Mac works very well for me because you can navigate by function, which is helpful as the code gets longer and more complex.
Do you have IDE/PHP tools you prefer?
I use a lot of Linux-based tools. It is easy to run scripts on a Terminal window because it is text-based and accessible with a screen reader. I like having keyboard input compared to a visual UI, such as Spyder. I use Anaconda to set up a conda environment. The code I’m writing at the moment is in NotePad first because it is easier to re-format code in a simple text editor.
When you have a lot of clutter on the screen and have to tab through each window, it is a nightmare. The simpler the system, the better for me.
How to build accessible products and software
Do you encounter a lot of accessibility challenges with programming software?
Being blind, there aren’t prescribed ways of doing things. You have to be flexible on what to use. I might not be able to access some programs and packages, so I need to implement workarounds. It is easy to get frustrated, and it takes a certain mindset to code.
On the other hand, it is a language in the end. A lot of people would be very surprised at what is possible. There is a lot of stigma around coding for blind people, which deters people from trying it, but once you get started, it is generally very intuitive. You need determination and strength of character to get to a point where you have enough knowledge to be able to implement those workarounds effectively. In the beginning, it can definitely feel like there are a lot of unnecessary obstacles to overcome.
What can product developers do to improve accessibility for visually impaired users?
It comes down to keeping things simple. It takes so long to get familiar with the quirks of a piece of software. In my last project, I was using DBeaver, which was difficult to navigate and interact with, even with keyboard shortcuts. Interfacing with the results grid was impossible even in a plain text format, which can be quite frustrating when attempting to understand if your code has run successfully.
Encoding alt-text to images is very important. It was great when Facebook and Instagram added alt-text as a feature. It doesn’t take long to write a brief description, and it helps a lot to be able to have a little more information other than what is just contained within a caption.
Are there any assistive technologies you are particularly excited about?
Graph captioning would be helpful for me. There is a piece of software called Highcharts which uses audio representations to plot and represent trend lines, which is a really interesting concept. They have a neutral pitch as the equilibrium line, and the pitch goes up if the line is increasing and down if the line is decreasing – especially useful when dealing with time-series data or data with regular peaks and troughs.
I heard rumours that Braille tablets will be developed to show graphs, such as trendlines on a page. Right now, they can only show you a single line of text.
These very specialist pieces of equipment can be so expensive, though, that they end up being impractical for the average blind person as they are completely unaffordable. The gamechanger is pre-loading accessibility into existing products. Some of the new products have capabilities built-in, so I don’t have to pay for additional specialist software which can become very expensive very quickly.
Remote working experience
Has remote working been difficult for you?
It is difficult because it is harder to get input from people sitting next to me, but in some ways, it is great that unless I told people I was blind, no one would know. It is nice to be recognised for the skill I have rather than for the fact that I’m blind.
Do you think there is a limitation on what projects you can work on, especially ones that involve a lot of visualisation?
Not necessarily. On the OCR project I’m on now, I don’t need to be able to see the characters to write the code. Someone will then need to look at the outputs for sense checking. I recognise what skills I have and supplement them with other people’s skills.
I did a PowerBI (Business Intelligence) course as a part of my induction training, and I thought it would never be something I could do in the beginning. The software ended up being very accessible, and I really enjoyed creating dynamic dashboards. I may not be the go-to person for designing the most aesthetic dashboards, but I can do it.
In the end, I’d like to establish myself as a reliable programmer in a dev role because of my strong python background. I really enjoyed the theory and code building neural networks at university, and I see myself in these types of projects.
Benefits of inclusion and accessibility for organisations
What can leaders do to improve inclusion and accessibility in their organisations?
This is tricky because people are very cautious about showing their disability. There are unconscious biases on how people are likely to perform at their jobs. It was always a question for me on whether I should disclose my disability on my CV.
I’d like to think that people see me first as Josh. I’m able to code, and I play professional cricket for England – not that I’m blind. Removing the stigma around disability and instead focusing on what people are capable of and the skills they have is important. This goes for any type of inclusion: recognising people as people.
What are the benefits of having a more diverse development team?
The beauty of having a more diverse workforce with development is that the more people you can encourage to enter the space from different backgrounds and outlooks on life, the more representative the code will be. Everyone brings a different skill and different picture of what society looks like to the table. Promoting diversity and inclusion is not always easy, but it will end up building a better team because of it.
Interested in joining Deloitte? Explore our current vacancies here.