General Questions
Africa? Really? Are there developers there?
Yes really!
Africa is now the fastest-growing internet population, having grown almost 12,000% (twelve thousand!) over the last two decades and now has more internet users than North American.
Today there is a robust software development community in Africa with many talented software engineers. Many experienced developers are working for domestic African software companies, as well as remotely for companies all over the world. Similar to the rest of the world, engineering is one of the best opportunities for individual success in Africa.
Many US-based companies have offices in Africa, just a few examples:
- Uber
- Microsoft
- Cisco Systems
- General Electric
- IBM
- Oracle
- Intel Corporation
- LG
- Sony
Do they speak English?
Yes, many African nations use English as their primary language. They are taught English in school, use it for business, and throughout government institutions. There are over 700 million English speakers in Africa.
New graduates learn English as part of their requirements. Earlier graduates have learned it on the job, along with other work experience. In any case, we only hire developers who can hold a spoken conversation in English—this is one of the steps in our interview process.
What about the infrastructure? I've heard it is poor in Africa.
While it's true that the infrastructure is not the same as you get in the developed world, it has improved by leaps and bounds over the last decade, and continues to improve rapidly.
Africa is now the fastest-growing internet population, having grown almost 12,000% over the last twenty years, with most of that growth in the last 10; It now has more internet users than the North American continent.
Power can be a concern as well as some African countries do not have reliable power distribution networks. This can be easily managed with generators and battery back up systems, which is something we handle for all our engineers.
Engagement Model
How do you engage with new clients?
Each situation is different; therefore, we will accommodate your specific needs, but we follow this general approach:
- First, we schedule a call to discuss how you operate, what you are looking for, and how we can best help you hit your goals.
- As soon as the contract is signed (and sometimes, sooner), we begin recruiting engineers for the specific skills you need.
- We have another conversation with you to figure out how you currently build your software to identify any gaps in tools and processes (i.e., what we use versus what you use).
- Once we've identified the right candidate, we begin training them in any areas they need improvement, and how they can fit into your organization.
- We then set the start date for the engineer to join your team.
- For the first month, we do a weekly check-in with our account manager and your team to make onboarding is moving forward smoothly.
- After the first month, we schedule a check-in every 1-2 months, depending on your preferences, to make sure the process continues to work optimally for you.
How can I keep track of what is going on?
If you have a current development practice, our engineers will participate in the system that you are using.
If you don't yet have a development process, we will help you build one that works best for you. Typically this will be structured in the following way:
- Set up a weekly or bi-weekly planning meeting to set the goals for the week.
- Daily "standup" meetings. The developers will briefly go over what they did in the last 24 hours, what they are planning to do today, and any issues they have that need to be addressed. These short, 10-15 minute meetings are critical to keep on top of what is going on, keep the team in sync, and quickly identify and roadblocks.
- Every team member communicates online using an online collaboration tool like Slack, Hip Chat, or something similar.
We will work with you to ensure you have everything you need to manage your product development process effectively.
Recruiting
What kind of people do you look for?
We are looking for people that are skilled communicators, well organized, and have excellent technical experience.
While the breadth and depth of their expertise are essential, and we look for that first, we sometimes find young talent with “superstar” written all over, and those candidates go to the top of the list as well.
First and foremost, candidates are required to have fluent English, both spoken and written.
They have to fit and work well with your current staff. We are looking for self-starters with positive attitudes, but you will always have an opportunity to speak with them before a final decision to ensure they fit well into your teams.
How quickly can you staff a new team?
This largely depends on the skills you require. For common programming languages, such as JavaScript, Python, and Java, we can typically place an engineer within 2 weeks. We are constantly looking for the top engineers and have built a large pipeline of pre-qualified engineers, which allows us to move quickly.
How do you find people so quickly? Do you just grab the first “warm body” that applies?
Absolutely not, we are very selective! On average, we hire about 0.5% of the applicants. To put another way: On average, we have about 200 people apply for every new job opening.
We can move so quickly because we are always looking for talent and keep a long, up-to-date pipeline of candidates. Even when we do not have an open position, we accept applications, allowing us to accelerate the hiring process once a new post becomes available.
We follow a rigorous multi-step recruiting process that allows us to identify the top candidates quickly:
Recruiting Process
-
Initial technical screen. We do an initial evaluation to identify professional strengths and weaknesses. We focus on the primary programming language the applicant knows, other relevant technologies based on their experience, and their understanding of general programming concepts.
Only 10% of applicants make it past this stage.
- We review the resume and technical screen to ensure the candidate has strong skills in the specific technologies for which you are looking.
- Next, they speak with one of our project managers to evaluate their communication skills.
- In the one-on-one, we ask candidates to be specific about what they did in their resumes. Not what the company did, or their team did, but about their individual contribution.
- Next, we ask them to complete a coding challenge so we can evaluate how they go about programming in a real-world situation.
- One of our engineers evaluates the code callenge, looking for quality coding practices.
- After evaluation of the code challenge, we schedule a one-on-one with one of our engineers to go into further depth of their technical expertise.
- We do a final "yes" or "no" evaluation by the interviewing team.
- If they get a positive evaluation, we extend a provisional offer to ensure they are ready to join the team and identify when they can begin working.
- We conduct reference checks.
- We are now confident that the candidate would make a great member of the team. We schedule a final interview with one or more of your team members for final approval.
Questions of Fit
Do you have people with [fill in the blank] experience?
Our team has experience with many languages and platforms. But since we assign each engineer to a specific client, we have to build a new team from scratch. Doing this gives us the power to make teams specifically to your needs. We can quickly find highly skilled people that have experience with exactly what you require, and we train our engineers on less common skills that you may need.
Will your engineers be able to work with our existing team?
Certainly! We look for engineers that are adaptable in how they work. We are happy to follow any development process that you use.