Skip to content
Get 30+ hours of free content from GitHub Universe! Watch now.
Photo of Salah Al-Dhaferi

Learning to code against all odds

After a challenging 15-year education journey in Yemen, Salah pays it forward by teaching aspiring young coders.

Salah Al-Dhaferi // @tech-chieftain

Hi! I’m Salah. I learned to code with books 📚 and CDs 💽 (the internet wasn’t in Yemen when I was 11!), and got my first job as a freelance programmer when I was 15. I now have a startup with my friend, Maher Al-Aqil called Tektonic Labs, and help teach young coders at the Sanaa Re:Coded bootcamp 🍎. I also watch anime, love to play basketball 🏀, ping-pong, and video games.

Sanaa, Yemen

@tech_chieftain

Organizations

The ReadME Project amplifies the voices of the open source community: the maintainers, developers, and teams whose contributions move the world forward every day.

Growing up in Yemen, it was very difficult to get internet access, which made it nearly impossible to learn how to code. When I was 11, the only way for me to learn was to go to an expo held at the end of the school year and hope they had software engineering books. The one thing I found was a pack of three CDs that taught me Visual Basic.

It was my treasure, and I memorized the whole thing. Like everyone else, my first project was a Hello World project, but I added a twist: It said, “Hello World, Marhaba,” which means hello in Arabic. I was so amazed, and made sure to show every single person I knew what I’d done.

Then my father, who was a financial manager, told me he was going to pay someone to code a feature for him. But I said, “I’m your son! How about you pay me?” So he gave me all this data in a Microsoft Access file, and said he wanted his reports in a tree view. It took me a month, but I did it, and my father became my first client. That was the first $100 I made.

Trying to learn without 24/7 electricity and during a civil war

I focused on high school until I graduated in 2011, and then I went back to coding. Because of the Yemeni Civil War, we kept moving from city to city and our whole lives were rooted in uncertainty. I couldn’t go to university, but I could apply to scholarships online. I applied to so many schools. Too many to count. There was one class in IT available at the International University of Technology Twintech (IUTT), but never computer science.

There were new technologies, so I started working in C++, but there was still no good place to learn. This time, however, I did have the internet, so I could use YouTube. This really opened up a new world of possibilities for me, and I started reading about version control systems and discovered GitHub.

In 2015, we moved to the city of Aden. I didn’t have internet access at my house, so I made a deal with this guy at an internet café. He would allow me to use his internet all day so I could learn web development, and in return, I would help him download movies. It was a good deal, and the movies helped him attract more customers. I used to stay for up to 10 hours a day teaching myself how to code: At 10 hours a day, for 30 days, that’s 300 hours of internet, which would have been a lot of money for me. I did what I had to do to learn!

Living in Aden was quite stressful because electricity was not available 24/7. In the summer of 2016, it would work for maybe 20 minutes, then go out for six hours. That summer, thankfully, we moved back to Sanaa. And in 2017, I found a computer science program at IUTT, and finally started my formal education.

From learning alone to finding an equally passionate community

Photo of Salah Al-Dhaferi coding from home on his laptop.

In 2018, I discovered Re:Coded, which started in Turkey. They had been holding coding bootcamps in Turkey and Iraq, and were testing a pilot program in Yemen that year. It was a free bootcamp with a five-month course in HTML, CSS, JavaScript, and React. I’d never heard of React, but I applied anyway and got in!

Up until this point, I was basically on an island trying to figure everything out. I’d been coding and learning alone, which means I didn’t know a single developer in real life. I had studied at IUTT for three months, but I needed more. Finally, at Re:Coded, for the first time, I got to work with other developers who shared my passion for code. They were working hard to learn—something I could relate to. They would compete in hackathons, complete coding challenges, the whole thing. Even if they didn’t know everything about coding yet, I could see the passion.

When I graduated from the bootcamp, one of my Re:Coded instructors hired me at his startup. There were only four of us: the CEO, the CTO, me, and another friend from Re:Coded. The first project was with Android, and was a major shift compared to everything I’d worked on so far. Even though the project never saw the light of day, it was one of the greatest projects I’ve ever worked on.

In 2019, I started working full-time at Black Gem, and part-time as a bootcamp trainer at Re:Coded. The greatest thing about programming is that it keeps you humble. No matter how much you know, there’s someone who knows more than you. This made me want to both keep learning, and pass along the knowledge I had worked so hard for—which I did by teaching at Yemen’s second bootcamp.

Portrait of Salah Al-Dhaferi happy and contemplating.

The daunting pandemic has a silver lining

Before 2020, there was no such a thing as coding from home here in Yemen. The internet is so unpredictable across the country, that if you try to code and it goes off, it’s a huge demotivator. So when the pandemic happened, we were so scared. The fear was three-fold: First, we thought, “We’re going to lose our jobs. That’s a given.” Second, we thought “We aren’t going to be able to teach the Re:Coded bootcamp.” And third, which was more personal for me: I thought, “I’m not going to be able to finish my degree.”

Amazingly, things actually worked out better than we could have ever anticipated. Using GitHub meant we could work from home. I didn’t lose my job or endanger myself or my family. In fact, we all worked even more efficiently this way. At the office, we joke together, talk, take an hour or more for lunch. But at home, I was able to focus on the code.

On top of this, in 2020, the major pipelines that bring the high-speed internet to Yemen were attacked three times, taking down 60% of the internet. People were screaming, “We’re doomed! We’re not going to be able to work! Nothing’s going to happen!” But again, things went so well with our work because of the tools that enabled us to keep coding, we just doubled down.

Working from home was so successful that we started talking about holding the bootcamp online. Since GitHub CLI was added, it meant that we could manage projects right from within GitHub because everything was in our terminal. To send an assignment, I would just share the link from GitHub Classroom. When students were ready for me to look, they would submit a pull request, which I could check directly from my terminal without needing to open the website.

We tried to do as much as possible in the morning, when the internet was better. This generally went well, except for some students who also had university classes during this time. But as long as they got the work done, it was OK with us. And they all successfully graduated from the bootcamp in the winter of 2020!

I’ll also be graduating soon, and I can’t wait! Learning how to code with no clear educational options, amidst war, and without consistent internet access has been rough, but it was more than worth it. I’m also excited to stopping worry about how to find an education, and refocus my energy on a new project: In September 2020, I left Black Gem and founded a startup with a friend of mine. We named it Tektonic Labs because we want there to be a tectonic shift in the tech community in Yemen.

Yemeni tech companies are quite traditional, and nothing like Silicon Valley, where things are more open and you can easily give and receive feedback: The tech community in Yemen is only beginning its journey. I want to help pave the path and make it easier than it was for me to learn. Everyone deserves an accessible, open and rewarding education experience that is only challenging in its hackathons and coding prompts—not the actual logistics of how to learn. Our aspiring youth deserve it.

About The
ReadME Project

Coding is usually seen as a solitary activity, but it’s actually the world’s largest community effort led by open source maintainers, contributors, and teams. These unsung heroes put in long hours to build software, fix issues, field questions, and manage communities.

The ReadME Project is part of GitHub’s ongoing effort to amplify the voices of the developer community. It’s an evolving space to engage with the community and explore the stories, challenges, technology, and culture that surround the world of open source.

Follow us:

Nominate a developer

Nominate inspiring developers and projects you think we should feature in The ReadME Project.

Support the community

Recognize developers working behind the scenes and help open source projects get the resources they need.

Thank you! for subscribing