Agony of an African programmer
iafrikan.com
iafrikan.com
The problem begins with the word "Africa". Obviously, this is a meaningless word, describing an entire continent full of radically different countries. And yet we use it. I know how I get annoyed when my country gets generalized as "Eastern Europe" (first, we're Central Europe, and second, countries in this part of Europe are quite different from each other). I can't even imagine what it feels to be thrown into an "Africa" bucket.
Then there is the issue of whom to work with (and where), how to start, how to build trust. It's just immensely difficult. I know next to nothing about African countries, much less about major cities, good schools, places where I could find programmers and business partners.
I am hoping for more ties between European and African developers and entrepreneurs, so that we can start working together. Which would hopefully make the life of an African programmer easier, at least on a practical (economic) level.
Good point, I'm not fond of that oversimplification, either.
I wrote about it: https://news.ycombinator.com/item?id=6584077
That's a classical read worth recommending for those willing to understand the subject better:
http://www.euroculture.upol.cz/dokumenty/sylaby/Kundera_Trag...
In Ghana a few good points of contact would be:
Ghana Consulate Warsaw: http://www.worldembassy.us/embassy/ghana-poland-warsaw.html
Google Ghana:
Mark Davies: http://markdavies.net/
Ghana Telecom University College: http://gtuc.edu.gh/
Meltwater: http://meltwater.org/
University of Science and Technology: http://www.knust.edu.gh
It's a weird situation where we have vast power available on our local environments and burn it all to run JavaScript VMs to access huge server farms for functionality which in many cases was already available in local applications.
Most of the apps I want to use don't make sense without internet access anyway.
Native applications mean you own the data you work with instead of surrendering it to a remote server you have no control over. It means you will be able to use that data even after the provider decides that the application is not profitable any more and they take it offline.
1) sharing data between apps is near-impossible, unless format converters are written (they never are) and explicit manual steps are taken.
2) linking between apps is impossible (e.g. you configure an address for a client then click/tap on it to navigate to said client when the application is not made by microsoft).
3) searching across apps is impossible. You can't just go to google.com, type in what you remember and have it show you the app.
4) native apps are expensive, because they never have a huge market (compared to online apps).
5) native apps are really badly supported.
6) you can't give anyone else access to your data (easily, just look at how long it took microsoft's army of developers to give office some semblance of real sharing. And it's still not up to par).
7) anyone you want to give access to a doc now has to buy your (expensive) mobile app.
I'm not saying you're wrong, just that you are forgetting quite a few facts here. Native apps are usually self-contained, small, unmaintained things. Yes, that does have some advantages, but it also has large disadvantages.
I would even agree with the "ads are good for you" argument to some extent : these companies are "spying" on you in order to attempt to create (theoretically) win-win economic transactions. Essentially they show you stuff you want, in order to make you want to buy/have/rent/... it. That is good for you (you get "value" in the economic sense), the other side gets some money, and a small "tax" is paid to the intermediary. Economic activity goes up, and it becomes easier to get a job, ... etc. Of course this argument only holds for pay-for-transaction ads (ie. not for banner ads, not for things like facebook, essentially only for google's model).
Other than that, I think you are mostly confusing cause and effect - none of those are results of technical limitations of "native apps" per se, but rather an effect of the marketing push towards "the cloud". After all, Firefox is a "native app" - as you might have noticed, it's an "expensive small, unmaintained and badly supported thing with very few users".
This is different for online?
> 2) linking between apps is impossible (e.g. you configure an address for a client then click/tap on it to navigate to said client when the application is not made by microsoft).
This is not true, all major operating systems support custom URI handlers.
> 3) searching across apps is impossible. You can't just go to google.com, type in what you remember and have it show you the app.
This is somewhat of a fair point, but if you already have the app installed you can search your installed applciations, which will be a limited search space.
> 4) native apps are expensive, because they never have a huge market (compared to online apps).
This is true, but I believe the cause is closer towards ads/datamining.
> 5) native apps are really badly supported.
What?
> 6) you can't give anyone else access to your data (easily, just look at how long it took microsoft's army of developers to give office some semblance of real sharing. And it's still not up to par).
There no reason something like Google Docs couldn't be implemented in a native application, APIs are still just APIs. It may just seem less natural to do so for some reason, though.
> 7) anyone you want to give access to a doc now has to buy your (expensive) mobile app.
What?[1][2]
[1] https://play.google.com/store/apps/details?id=com.dataviz.do...
[2] https://itunes.apple.com/en/app/documents-free-mobile-office...
Sometimes I find my internet totally sucking only to find out there's some app like iCloud photo sync trying to download some photos from one of my contact's streams. Or at one point Mac OS decided to download a sizeable XCode update in the background.
These features are a big convenience back in Canada, but really frustrating when travelling and using slow connections. I really wish there was one setting somewhere to turn off all background syncing and downloading.
So far the best solution I've found is to install Little Snitch and just manually approve connections.
Electricity was reliable only between 11PM to 5AM and we spent New year's eve in the dark.
My data provider had a special 3G plan where you get 1Gb data between 12AM and 6AM for $1. This worked well for the first 2 weeks only then connection became non-existent. The only thing the provider had to say was "sorry but we don't have coverage in your area."
Yet I met some brilliant folks who would make amazing programmers if only they had access to all the resources we get with reliable internet and electricity. I spoke with many of them about starting a computer club where we meet weekly, share ideas and learn from each other. Some were kin but many were skeptical because they're used to unkept promises.
Edit: Forgot to mention that the state has installed fiber optic in some parts the capital city but nobody wants to use it because they know the government will abuse it and extort millions from users. And the country's ccTLD .cd is still one of the most expensive in the world.
I reckon a big piece of being productive involves learning how to get as many needed resources available offline as possible. If you have offline resources, your biggest hurdle is limited to electricity availability, which I imagine can be solved with batteries and renewable energy.
But this very constraint is what drives projects like M-PESA, and Ushahidi, and BRCK.
Also, Software Developers in the US and Europe don't necessarily make 100,000 Dollars. In some spots you'd be luck y to make half that.
This is correct. Moreover, European salaries are also often lower than those in the US tech hubs.
I would also go so far as to say that nowhere in the US does a median web developer's salary afford her/him a particularly luxurious lifestyle. Salaries are always adjusted, among other things, for regional cost of living.
When I made 6 figures in Washington DC, it afforded me roughly the same standard of living I have in Pittsburgh while making $30k less. That is to say : access to a studio or 1-bedroom apartment, a low cost vehicle and the ability to socialize occasionally while still contributing modestly towards my savings.
On the other hand, we have every piece of software available in the pirated form and had no shame of using that. Haven't we?
"at least $100,000 dollars per year"
..."at least $100,000 dollars per year"
Where can I find one of these mythical minimum-100k-salary programming jobs, without having 10+ years of experience and working for a massive tech company?
Source: UK twenty-something.
Honestly, if an African programmer makes $20,000 per year, he's not that far behind a starting Dutch programmer (though programmers here are seriously underpaid compared to managers, for example).
Apart from the UK, Switzerland or Germany, there are countries like Greece and Portugal, and there's Central and Eastern Europe, too.
Median programmer salary in Poland is 5500 zl, which is about 3900 zl after deductions and 1 USD = ~3 zl, so it's 22 thousands per anum (gross pay) or 15.6 grand net pay.
Grass is always greener, huh?
If you choose to stay in Africa and have your potential limited by silly things like bad Internet and no electricity, then make that choice consciously, and for good reasons, like wanting to be near family. If you stay because you feel some deeper connection to Africa because you were born there, get over it. Get out of your comfort zone, live your own life. Consider carefully the costs of maintaining that irrational connection. Personally, I think it's a cop out, an excuse to be mediocre. It's a global world, stop thinking locally.
What would Elon Musk have achieved had he stayed in Africa? Substantially less. Get yourself into an environment that is supportive of your dreams and goals, not one that works against you.
You need a visa. But it's impossible to get a visa to work in US/Europe unless you have a job. And even trying and applying for a visa costs more than most people's monthly salary. And there is no money-back guarantee.
But finding a job is also not easy. Applying to some IT company in the US without being able to show of significant work experience? No college education from a well-known university? How can you get job experience that is sufficient to apply for an IT job when you live in a country that has the problems the article talks about?
And no, you cannot just apply to some junior entry-level job. You won't get a visa unless you are so qualified that the host country has a huge demand for people with your skills. And this is just one of the hundreds of problems you're facing when deciding to leave Africa.
So yeah:
>Get out of Africa. Africa will steal your life.
Thanks for that advice. Very helpful.
Frankly, if the factors you describe are really what's stopping you from reaching your goals, you're likely to fail anyway.
A very narrow perspective of the world.
Though I hope not, but some day if you fail for reasons beyond your control despite your best efforts may be you will see for yourself why not all failure happens due to a individual's short comings.
The world is full of examples of people who work heroically only to meet chronic failure.
But those things ARE actually under your control. Just move to San Francisco :-)
I'm not sure what your point is.
I'll bet that a large percentage of those people worked in Africa
I am also working at emigrating, and it is a painful process. Huge amounts of bureaucracy. I have to shell out for English exams (despite English being my first language). I then have to shell out more for my work experience and degree to be assessed by the Australian Computer Society. Getting letters from ex-colleagues has proven to be challenging, because the letters need to be notarised - hopefully these will be acceptable- no guarantees.
I then lose an arbitrary two years of work experience points (at least) because I didn't study in Australia. Finally, assuming that I have enough points, and there isn't a revision to the Skilled Occupation List, and I am invited to apply for a Visa, there is another small fortune to be spent on visas. Any small oversight or error, and my money is gone. If I don't have enough points, I have to spend the same amount to have my experience assessed again in six months.
Fortunately, I have enough saved up enough money to play the emigration game, the same probably applies to you. Most people have not.
If you ask me, winds are blowing the right way for Africa. It's a good time to be there.
The calculus changes once children enter the picture though. The continent (a huge place to generalise about) isn't exactly the sort of place to risk raising a family, unless you are rich enough to be able to maintain a ready escape plan for them, and to educate them privately. You don't want to risk having them complaining in 20 years about the same things the OP talks about and being stuck here.
One thing to consider is that it might be easier to grow into a big fish in a small pond than in a big pond. I've seen people in small pond countries grow into big fish then move to a bigger pond with their big fish credentials. Whereas when a small fish moves from small pond to a big pond, with only small fish credentials, it becomes food, forever battling it's way nowhere. Not always, of course.
This is one of the reasons for the mass exodus away from certain US states and into others. People vote with their feet, and eventually policies catch up due to consequences.
Growing these areas will help. With that being said Africa is a large continent and a large portion of it lacks the basic infrastructure that we are used to. For example I met a guy through a friend who's entire business is setting up and maintaining generators for lodges and other businesses in northern Botswana. He was telling me that there are many areas up there where there is no access to a power grid so your only option is to have a generator (or solar farm) for power.
With that being said some of these challenges have also spawned some interesting solutions. There is a reason why Whatsapp sold for the amount that it did. It is really exciting to see technology begin to make it's way to this continent. The rest will come with time.
The question that I looked for an answer for in the article is : where is the silicon valleys of Africa?, I know that there have been many attempts to create tech hubs , like the "cyber parks" in Algeria and Tunisia, where you can rent offices with a symbolic price and create your startup where the process is covered by professionals of different fields (juridique,financial, banks ...) , but these cyber parks remains pretty much empty , or just occupied by big international companies selling their stuffs or promoting dead technologies to young students (like Microsoft)
My family on my fiancee's side is from South Africa and I regularly travel back and forth between South Africa and the US. Whenever I'm there I try to line the trips up with tech conferences and/or local meetup groups. South Africa has a strong tech community that is doing really interesting things.
The thing that surprised me was that on my last trip I found out that one of my fiancee's family members is a investor in a startup. This guy is not very tech savvy, but even he could see the possibilities. Does the community still have a ways to go, yes. But with that being said I do think they will get there.
Also, the stuff happening in Cape Town is really exciting.
The chances are good that the African startup revolution, if it comes, won't start in South Africa.
I think the the situation in South Africa will also improve as we start developing the square kilometre radio telescope array to the north of Cape Town - which will require large amounts of server and computing power for data processing. This will attract more international interest, and Cape Town is also the home of an Amazon dev. centre.
It is true that Ghana has good internet access, the same is true for Zimbabwe (even though it has such a bad reputation, fibre optic internet is available). I think in the future we will see more data centres being built in Africa for worldwide redundancy. I think this will happen in Ghana and Nigeria as they have oil reserves to power the data centres as well as low risk for earth quakes.
I think there are lots of opportunities for tech hubs to arise in Africa, even though there are still lots of problems, it may even happen in an unlikely place, for instance Mauritius is trying to be forward thinking and is going to start providing tablets to every child on the island. Zambia are pushing for improved tech infrastructure - widespread rural telecommunications, which may lead to the development of large mesh networks. I think we have many opportunities to solve these problems we face in Africa with technology, with many opportunities for growth, and Africans are particularly hungry for change.
Unless some amazing changes in infrastructure have happened in Lagos since the last time I was there in 2008, reliable electricity & internet is still a luxury a lot of people cannot afford.
African countries are not the only nations lacking in indigenous technical solutions. A place like Canada has over the years lost all of its comparative advantage in the technology sector to massive US companies.
One of the many consequences of "free trade".
Before I go any further I would like to state first that I'm speaking from the point of view of a Ghanaian entrepreneur and not an African entrepreneur because I am more familiar with the situation here at home and I would only be speculating about what transpires in other African nations.
Cost of equipment:
------------------
It's true that the duty slapped on the importation of IT equipment makes you wonder what the rational is because I was under the impression that one taxed heavily the importation of luxury goods or items that are manufactured locally to protect indigenous industries. However the market is flooded with used computers/laptops from abroad that are cheap and can get the job done (albeit a bit slower that one would prefer). A core 2 duo desktop with a 15" lcd monitor and a UPS will set you back Ghc700 ($260).
But if the cost is still prohibitive then you have to come up with an alternative solution. For example, when I got my first freelance project, I couldn't immediately afford a pc so I leased one from an internet cafe and agreed to share the work and revenue with the owner.
Availability of learning material:
----------------------------------
I think IT is one of the few industries where so much leaning resources are available online for free and more so now with the advent of MOOC. If you don't have an internet connection at home or a usb modem then go the an internet cafe.
PayPal blacklisting:
--------------------
Now this is a very annoying and unfortunate situation! West Africa is made up of the following countries: Benin. Burkina Faso, Cape Verde, Gambia, Ghana, Guinea, Guinea-Bissau, Ivory Coast, Liberia, Mali, Mauritania, Niger, Senegal, Sierra Leone and Togo (http://en.wikipedia.org/wiki/West_Africa). Of all the listed countries PayPal isn't in 4, namely: Ghana, Nigeria, Ivory Coast and Liberia (https://www.paypal.com/webapps/mpp/country-worldwide). One of the reasons PayPal doesn't want to do business with us is because of credit card fraud which I think is a rather lazy excuse. If Skrill can make it work then really...
However iTunes, Skrill, iStockPhoto, Hetzner.de, Linode, AWS, Rackspace, Register.com, Gandi among others all accept visa cards from Ghana so you can get by without PayPal (although you can't register your copy of Sublime Text so you have to I've with the annoying reminders or switch to Komodo IDE).
Banks here don't issue Visa Credit cards willy nilly but you can more easily apply for an international Visa Debit card and if your bank doesn't offer one then change to another institution!
I'm going to end this comment here because it's getting too long and I'm running on a UPS (lol) but my main point is that yes, there are challenges but they are surmountable. You either solve them head on or work around them but there is always a solution. And besides entrepreneurship is all about the fun of solving challenges anyway so come over to Ghana and have some REAL Fun!
Companies also don't really care: phones stolen in one African country are sold in others (South Africa to Nigeria seems to be one popular route), and blacklists aren't shared cross-border. In South Africa, SIM-swap scams result in people's bank accounts being cleared out with cellular networks and banks both disclaiming responsibility.
Until the attitude to this sort of fraud changes, I don't blame payment companies for staying away from Africa.
The article writer speaks in this general direction, actually:
It is also high time our governments start to stand firmly behind young African men and women developers ... It is not enough to congratulate them vocally of their achievements, it will be right if you can support them with your resources be it financially, intellectually, skills and much more.
I would call taking their reputation seriously and dealing with the problems falling under the "much more" category.
You could even start an exchange in Ghana, like these guys do in the Philippines: http://buybitcoins.ph/
Finding staff is difficult because of the scarcity of developers and anyone talented almost always has a job paying far more than a startup can afford.
Training juniors is the only alternative, but in doing so your company ends up being a training shop for other companies to headhunt from.
Honestly being a training ground for young graduates isn't that bad. It was very good for my personal development because teaching/training inexperienced but bright coders really raises your game because believe you me, they will challenge you and put you on the spot! Lol. I should probably make a living of organizing bootcamps for CS graduates and after 3-4 months, "auction them off" to companies … evil laugh!
Either he doesn't consider Eastern European softwware developers as colleagues or he thinks all of Europe is London, which it certainly isn't. The upper limit he gave is more than most Eastern European developers make.
The only people making more are working directly for foreign entities or governments and that is a very small community of people.
In reality most people I worked with were making around 1400 dollars per year.
>Add to that, a good number of African countries have been blacklisted from PayPal.
I actually tried to set some friends up doing work on odesk and elancer. It is simply not possible this part of the world(west africa, cote d'ivoire, ghana, togo, benin, nigeria) is basically cut off from international money transfers unless you are part of a high income elite that qualifies for real banking. So they could do work, but would never be able to get the money.
Uh that's pretty decent anywhere in Europe for anyone doing actual 'programming', i.e. not management or consulting, so basically meaning all junior- to mid-level software development jobs. I'm not even sure what 'PhD level programmer' means - it's not like 'programming' is an academic exercise.
I don't think this is factually true.
That said, the article really makes you think how much easy we have it in the developed world, yet we always find the time to complain about everything.
And genuinely I'm not complaining.
Thankfully it doesn't matter to me as I speak the language fluently.
Of course you can grow with time, both in salary and in responsibility, for now I'm the classical code monkey but I have an idea for a startup that would like to develop so I will leave the job before the end of the year.
I would probably be able to rent a small 1-room flat but for now I prefer to save money.
Junior 17k in Italy? That sounds a little bit wild...
NOTE: Sorry, I understood 17k per MONTH. Scratch the comment (keep the congrats! :-P )
For a small IT consulting firm.
My girlfriend studies Italian and we might move to Italy for a year or two, hence I'm curious. Significant differences in terms of salary?
Some planning is needed if you want to a nice living.
10K in the vast majority of African countries puts you way above average.
To add to this comment, I live in Silicon Valley, and spend ~20k/yr on rent alone, for a 600 sq. ft. apartment. I'm also not in the worst areas, price-wise. Of course, salaries tend to be higher here.
Looking at Ruby developer salaries it looks like there is a bit of a different between Atlanta and the midwest, but the spread between New York, Atlanta and the Midwest appears to be a 30k difference from what I could find online. Which skill set does the developer with 7 years of experience have making 50K?
I'm genuinely curious.
I work in a US metropolis. I don't know any web developers making $100,000 per year. I know seasoned software developers and engineers making that, but that is what experience costs. I can't really speak to the author's experience, but often, this downtrodden treatise on salary disparity tends to come from the younger, less-experienced programmers out there, regardless of nationality.
Ultimately, comparing salary to distant economies is fallacious. This is why things like cost of living should be taken into account. As an example, I'm currently earning less than a similarly-experienced software creator in San Francisco, while also spending at least an order of magnitude less on housing. I don't begrudge my SF compatriots their salary.
Yes, and it's easy to take things for if you aren't used to different cultural contexts. I know Kiwis who look enviously at Californian salaries without really properly understanding how much of that salary difference may go on e.g. healthcare costs that are taken care of from general taxation in New Zealand.
3-5 years of experience seems to be enough for 100k as far as I can tell. I don't think his lament is that far off.
edit: I may just be assuming that my peers make more than they do, though. It might be more accurate to say that it seems like most of the peers I meet socially make as much as me or (sometimes much) more, and when I hear about companies that are looking for someone, it's always in the 100k+ range.
So unsurprisingly it's just a sliding scale depending on your local GDP, there's not some universal pay grade.
I think part of the problem is class, there's a psychological barrier in the UK that employees shouldn't earn more than managers.
The other part of the lower pay is that we had a lot more people dabble with development in our school system in the 80s/90s because of the BBC programs and the Micro/Archimedes in schools which means we started running short of developers a lot later than other countries.
Both of those are speculation, but that's my belief.
C and C++ also has a calling up here, but more specialized to the particular company (think Ubisoft).
Recently saw a posting for a Linux kernel dev.
I haven't really seen calling for more niche languages, but I'm also only looking at the postings that come into my email.
Re the comment about management salary, I have been given that as a reason during salary negotiation as to why they can't pay what I'm asking.
The salaries I've been seeing have risen quite a bit in the past 2 years (after dropping suddenly, recession and all).
What, these students only work on getting good results in school, where they're studying? What a bunch of slackers.
Edit: On closer inspection, that post was blogspam, so I changed the url again.
Currently the barrier to this solution are the immigration controls inspired by irrational fear (rationalized by unquestioned assumptions and generalizations).
Fixing African institutions to a point where they can compete with the rest of the world will take decades or even a century or two. The process could be accelerated by returning expatriates.