As software becomes indispensable for all economic activity, the demand for good software engineers only increases. But while the number of people engaged in learning software development seems to be growing, we know that not everybody has the same access to education or the means to successfully become professionals.

There are several reasons for this, including difficulties with access to computers or the Internet, and the more serious issues of gender and economic inequality.

Toptal has a mission to help underprivileged groups through software development education, via the Toptal Global Mentors program, in which enrolled developers become mentors for six months to one student. During this period, mentors and mentees are expected to meet for at least an hour every week and mentors are there to provide professional guidance.

This article intends to shed some light on the Toptal Global Mentors program, provide insights into how it works, and what mentors and mentees can expect from the program, and discuss some of the best approaches for this important opportunity.

The Problem

The world continues to evolve at an accelerating rate, driven by technological advancements that build one atop another at an unprecedented pace. Almost every day, new reports prove that this or that once-venerated skill or craft is quickly becoming obsolete, replaced by computer algorithms and robots that can do it better and cheaper. Among the few skills that continue to promise a fruitful and secure career is that of software development.

But software development is not an easy skill to learn; it takes a great deal of time and focus to become a proficient coder, and to the unversed, the core concepts can be utterly indecipherable without guidance.

The Toptal Global Mentors Program is designed to level the playing field.

The Toptal Global Mentors Program is designed to level the playing field.

It’s no surprise that more people are choosing to forego the alternatives, and shift their focus towards a software development career. Many are doing so with great success. Yet despite the immense demand for skilled programmers, women, minorities, and low-income individuals face major hurdles to reaching the promised land. The first obstacle is access to education resources. The second is acceptance by an industry that suffers from an embarrassing lack of diversity.

In short, the playing field is not even. As a result, not only do those facing these disadvantages suffer, but so does the tech industry as a whole. The Toptal Global Mentors program is designed to address this issue.

Toptal Global Mentors Program

Toptal has partnered with General Assembly to help solve this problem. Through its Opportunity Fund, General Assembly has helped students from disadvantaged backgrounds start learning the skills of the programming trade.

The Toptal Global Mentors program is an extension of this service. Through the program, Toptal developers, like me, have a chance to provide ongoing remote mentorship to Opportunity Fund graduates. By signing up to be a part of the program, I have committed to connect with my student for at least one hour, every week for six months, to help answer his questions and teach him new software development skills.

The Mentor-Mentee Relationship

I’ve been mentoring for about twelve weeks so far, and have found it to be extremely enjoyable and rewarding. Teaching is, as the saying goes, one of the best ways to learn, and now I find myself going through several concepts again, and experiencing a whole new perspective. There’s also another, deeper level of gratification with mentoring: Feeling that you’re helping someone change their lives for better and watching them open new doors to their future.

I always have a good time when I am connected to my student. I like talking to him about his background, experiences, and plans for the future; I think we both benefit from helping each other understand things better, be it technical or cultural. Many days, I feel like I learn as much from him as he does from me.

As a mentor, it’s important to be patient and remember where your students are coming from. My student, for example, has had to struggle witht a great deal of economic and social disadvantages, and has never had access to the kinds of educational resources that I had. Sometimes I am caught off guard by the things I have to explain. But these differences are symptomatic of the larger problems we are trying to solve, so I am always mindful to be understanding.

The mentor-mentee relationship has to be straightforward, productive and mutually beneficial.

The mentor-mentee relationship has to be straightforward, productive and mutually beneficial.

When teaching any difficult subject, there is a lot of potential, for both the student and the teacher, to get frustrated. If the student isn’t grasping a concept, both sides can blame themselves, or worse, blame each other, for being a “bad teacher” or a “bad student.” But, this isn’t fair to either side; at some point, both participants have had to prove themselves in order to make it into the Global Mentors program. My role is to help my student with whatever he is struggling with, not to force him to learn what I think he should learn.

Having said that, I’ve found it can take time to feel out what I should be teaching. For the student, it can often be impossible to know what information he or she is lacking, so the mentor must take responsibility for finding where the missing pieces are. My student and I started out building an application. The idea was that I would teach him design and procedural techniques along the way, things like cohesion, reusability, testing, versioning, and so on. But from the get-go it didn’t feel right. He didn’t find it engaging, and seemed to be struggling to appreciate why these things were necessary. After the first few weeks, I decided to switch to more fundamentals, and discuss trees and sorting algorithms. The change in his response was immediate: This is what he was missing! Now that we know where to focus our energies, every session is engaging and exciting.

Rather than get frustrated or impatient, I always see mentoring as an opportunity to grow. Helping someone else learn this amazing skill is immensely satisfying, and in the process, I become better at it myself. Although the commitment is for one hour a week, I usually find our meetings last a good deal longer.

Useful Tools for Mentors and Students

For mentors and mentees who are getting started with the Toptal Global Mentors program, here are some free tools you will probably find useful for connecting and working on software together.

A myriad of online and offline tools for remote learning are readily available, usually free of charge.

A myriad of online and offline tools for remote learning are readily available, usually free of charge.

Chat and Screensharing

You can’t do anything if you can’t talk to each other! Since mentorship time can be fairly limited, it’s important to use voice or video chat tools so that you can talk to each other while working, instead of stopping to type messages. Skype and Google Hangouts are both great all-in-one chat applications. Both also have built-in screen sharing capability, which is critical for seeing what the student or mentor is doing (unless you are using one of the pair programming tools mentioned below).

Document and File Sharing

For sharing documents, images, and other files quickly and easily, nothing beats Google Drive or Dropbox. This comes in handy for sharing lesson materials, one-off source code files, drawings, and anything else that students may want to have access to in the time between meetups.

Code Repositories

Most mentors will already be thoroughly familiar with GitHub or BitBucket, but students may not have worked with these tools before. The code repository services let you manage and maintain code that you are actively working on. They provide both student and mentor a centralized copy of the code so that you can make changes without stepping on each other’s toes, track all changes that have been made, and experiment with new ideas without losing anything if you mess something up.

Another benefit of these repositories, is that the student can understand the importance of code versioning and learn the mechanisms of a distributed version control system, such as tagging and branching.

Text Editors

A programming text editor is where you actually write the code. Good text editors are a dime a dozen these days, so I’ll only recommend a couple here. Atom and Sublime Text are popular, thanks to their beautiful user interfaces, great functionality, high customizability, and strong community support. They also have good pair programming plugins, which can be extremely useful for teaching; another reason I’m recommending them here.

Pair Programming

Pair programming is when two people work on the same code at the same time. It’s a popular method both in teaching and in professional development, because it allows the two coders to help each other catch mistakes and figure out solutions within the actual code itself, instead of just in theoretical discussions.

As an Atom user, I’m partial to the motepair plugin. Another option that works for Atom, Sublime Text, and several other editors, is Floobits. Both options provide a powerful tool for teaching and learning programming together.


Programming is not easy work and even seasoned programmers find themselves struggling while learning new languages, tools, and algorithms. Imagine how the students must feel!

By participating in the Toptal Global Mentors program and having a dedicated mentor to help them along their journey, students have the opportunity to fast-track their learning, and find their way into an awesome new career.

About the author

Rodrigo Alves, Brazil
member since September 26, 2014
Rodrigo is an experienced and results-driven full-stack software developer with great problem-solving and communication skills. He strives to deliver efficient and reliable products that delight both clients and users. [click to continue...]
Hiring? Meet the Top 10 Remote Developers for Hire in October 2016


where do the students come from, i.e., how does one become a student?
Rodrigo Alves
They are General Assembly's Opportunity Fund fellows and other alumni and, for now, you should head over to General Assembly - - to start the process.
Amos Njoroge
Hey Alves, I would like to be a mentee. I am a self taught 'programmer' (in quotes since I don't think I really qualify to 've called one). Am at a point where I feel I need guidance to push to the next level, however, I don't know where or how to get someone willing and qualified to assist me in this journey. How do I get into this program? Thanks.
Amos Njoroge
Alves...please note am from Africa, Kenya Thanks
Rodrigo Alves
Hello Amos, I'm happy to hear that you taught yourself how to program. Right now, the Toptal Global Mentors program is accepting only students from the General Assembly's Opportunity Fund You can go there to apply, keep it up :)
Amos Njoroge
Hi Alves, Thanks for getting back to me. Unfortunately the GA's Opportunity Fund application requires I be physically present in either Europe or America. Unfortunately, I don't have the capacity to do that. I am really interested in finding someone or an organization that is willing or has the capacity to help guys like me remotely. Do you know any organization(someone) like that? Also, if its not a bother, we can communicate via Twitter (my Twitter handle is @sannleen). Thanks again.
Rodrigo Alves
Hey man, I see. Unfortunately I can't do it myself because I'm enrolled in the program and still will be for a long time but I'll let you know if the program's admission process changes and we start finding mentors to people who come not only from GA's Opportunity Fund. BTW, I have sent a request to follow you on Twitter. Cheers!
Nick McCrea
<p>Hi Amos. I'm an editor for Toptal, and worked with Alves on this article. I recently corresponded with another man from Kenya, I'll call him D, who had the exact same questions as you. As you've discovered, this program is currently only available to those who can attend one of General Assembly's physical campuses. We are hoping to find ways to expand the reach of the Global Mentors Program so that people like yourself can benefit with a more even playing field.</p> <p>However, as I told D, there are a ton of great resources online that you can take advantage of right away. General Assembly itself has several online courses, although these may not be affordable to everyone. However, there are excellent, 100% free courses, many from major universities, available through sites like <a href="">Coursera</a>, <a href="">EdX</a>, <a href="">Udacity</a>, <a href="">Khan Academy</a>, and <a href="">Udemy</a>. We have also published <a href="">this article</a> and <a href="">this handbook</a>, which list some other great online resources for learning computer engineering.</p> <p>D tells me these resources have been very helpful. He has already enrolled in a course from University of Maryland on Coursera. I hope you find this helpful as well. If you'd like, send me an email at, and I can try and put you in touch with D. I'm not sure if you are both located in the same part of Kenya, but, regardless, you may be able to work together and help each other progress.</p>
Shaafi Irfan Syed Rx
Hi mentor, I am Syed irfan ,from India from a non computer science background learning programming (seriously) from past 4 months have came across few technologies JAVA, CSS,HTML5. as I have came go know what is what but I think I am missing something in my learning and in search of some good learning paths. Will this program benefit me somehow ??
Rodrigo Alves
Hi Syed, sorry for taking so long to answer you. Anyone in your current stage can benefit from the Toptal Global Mentors program, especially by helping you figure out what's important next in your learning agenda and help you get going with the technologies that you choose to work with, but like it was mentioned before by Nick, the program is yet to be expanded by students that come from places other than General Assembly's physical campuses. But don't let that discourage you in any way. Keep learning :)
comments powered by Disqus
The #1 Blog for Engineers
Get the latest content first.
No spam. Just great engineering and design posts.
The #1 Blog for Engineers
Get the latest content first.
Thank you for subscribing!
You can edit your subscription preferences here.
Trending articles
Relevant technologies
About the author
Rodrigo Alves
JavaScript Developer
Rodrigo is an experienced and results-driven full-stack software developer with great problem-solving and communication skills. He strives to deliver efficient and reliable products that delight both clients and users.