📜 ⬆️ ⬇️

Nigerian stories of the Russian developer

Recently on Habré an article appeared about the everyday life of a Nigerian developer . In the comments there are quite a few stereotypes about this country, for some reason, “Nigeria” is closely associated with the “banana republic in a vacuum”, while it turned out difficult for many to believe in the contrasts mentioned in the article (IT development and universal poverty population, such that even get a computer - the problem).



It just so happened that for the last few years I have been working remotely for one small Nigerian IT company that has been developing custom payment systems of all kinds. In this article I will describe what I managed to learn about this country, sitting at home in Russia, and what nuances of local African business I encountered. Stories of high crime, corruption and poverty of the population against the background of the IT sector that is growing up and the development of mobile technologies are under the cut.
')

About the country as a whole


For some reason, many who are not particularly well-versed in geography believe that Nigeria is something so small and insignificant, a banana republic is somewhere in the wilds of Africa (though probably all African countries think about this, maybe except for a couple of more or less well-known type of South Africa). In fact, Nigeria has the largest population among African countries and the seventh place in the world - 194 million people according to 2015, i.e. more than in Russia. On the "small banana republic" no longer pulls.

Nigeria is a major exporter of oil (7-8 places in the world), while oil accounts for most of the budget revenues and a significant part of GDP. It would seem that with such resource abundance they could live well, but the inefficiency of the economy, the corruption of the government and the complex history (like in most African countries, the history of Nigeria after gaining independence is replete with military coups, civil wars between different ethnic groups and other fun) interfere.

Nevertheless, things are quietly settled. For example, in 2015, more or less fair presidential elections were held, in which the current president (who has been in power for more than one term since 2010 and actually appointed by the previous president when he couldn’t remain in power for health reasons, doesn’t look like anything?) Lost and lost place new. The elections were accompanied by riots, outbreaks of violence, attempts by the current government to postpone or disrupt the elections, but despite this, the opposition candidate still won by a margin of two million votes.



This fact is associated with high expectations from the business, since the new government set a course to modernize the economy and rectify the situation in the country.

About population and money


The population, as has already been said, is large, but absolutely impoverished, and at the same time often not properly accounted for. We did one project for the tax service of one of the states - it was necessary to make an application for the registration of citizens in the tax service and get a local analogue of the TIN. The application worked on an Android smartphone, to which an external fingerprint scanner was connected via bluetooth. The operator first filled out a form with the data (name, address, place of work, etc.), then photographed the visitor and scanned the fingerprints. Immediately surfaced a couple of interesting points:

  1. The easiest way to identify citizens by passport number or any other document confirming identity is not a ride - a significant number of people in Nigeria do not have any documents at all.
  2. The questionnaire must be filled out by the tax officer, sites like our “public services” are not claimed there for self-submission of applications, since a third of the adult population is banally illiterate and cannot fill out the questionnaire on their own
  3. The population is so poor that the vast majority live on 1-2 dollars a day. Therefore, a very simple taxation system is used - a fixed head-tax. So how to calculate the real income of such citizens is virtually impossible,
    no one at all knows what they do and how they survive, and it is too expensive for everyone to put a tax inspector above the soul, given the cheapness of their incomes and taxes from them.


Banknote in 1000 Nigerian naira, approximately 150 rubles (course approximately 6 naira for 1 ruble)

One unpleasant conclusion follows from general poverty and misery - local IT companies are not ready to pay a lot of money for custom software development. Requests like “make us a bundle from a web portal and a mobile application with a bunch of functions and just over a thousand dollars” - rather the rule than the exception. At the same time, there are really a lot of people willing to order something there - now the Internet, mobile communications, smartphones are appearing among more and more people in Nigeria, there are new markets that business wants to occupy. For example, mobile payment systems alone and all sorts of web money I saw dozens there. But to find one fat client and live well with his orders will not work, they pay little and with difficulty.

About currency


With the currency in Nigeria, a rather unpleasant situation. It is difficult to get it out of the country. First of all, the official rate of naira to the dollar is useless, in practice for a dollar they demand much more. Secondly, dollars are just hard to get! The country has a serious imbalance in foreign trade, in fact, only oil is sold, everything else is bought, and there is a catastrophic shortage of dollars. From time to time, the government even imposes restrictions on the purchase of dollars and on their withdrawal from the country, which may have a negative impact on freelancers and other foreign trade contracts. It’s very unpleasant to learn that the whole salary will not be transferred to you, because the government restricted external transfers, and the price of dollars on the black market soared one and a half times and the company stopped paying for the necessary amount of dollars for your salary.


Currency exchange point

Of course, any tricks such as foreign accounts and the gradual accumulation of money on them, purchases and withdrawals of currency through any illegal channels, etc., are used, but the process is complex and unpredictable. And therefore between "the company received payment under the contract" and "the company was able to sell naira, buy dollars, take them out of the country and pay me my part" often lies a long and thorny path.

About infrastructure


Nigeria has big infrastructure problems. And not only with the standard for Africa, lack of drinking water, normal roads, social infrastructure, which to me as a resident of another part of the world have no direct relationship, but also with electricity and the quality of the Internet.

Power outages regularly occur even in the capital. As a result, they all have gasoline generators and use them regularly. My boss said that in his youth he was doing the first business for the delivery of gasoline for generators - he went to the countryside where gasoline was cheaper, bought and drove home in the capital with a good premium.
Local fuel tycoons regularly arrange "fuel crises", lifting up gasoline prices to the skies (for example, selling gasoline at 100+ rubles per liter can be the norm - and this is in the oil-exporting country!) And chopping off acidic profits.


Photo to the article about the next jump in fuel prices

For this reason, data centers do not really live in Nigeria - it is difficult to ensure reliability. Their hosting providers there either not, or almost none.
The second problem is the internet. It is actively developing there, but the quality still leaves much to be desired, therefore, often sending large files to colleagues is very slow and sad.

About corruption, administrative resource and incompetence


In the ranking of perceptions of corruption, Nigeria goes hand in hand with Russia (140th place vs. 134, a couple of years ago, they were generally in neighboring positions). With regards to IT, this means that if you want to start a business in the B2B segment, then be prepared for kickbacks, bribes, administrative pressure and other non-market mechanisms of work.

For example, in order to push our system of collecting payments into one of the systems of electronic money, we had to agree with the head of the payment direction and unfasten his rollback as part of our commission of the amount of payments. Only in this way was it possible to get the business off the ground, when inside the company a chiefly interested in the implementation appeared.

Government agencies in Nigeria do not like healthy competition. For example, their main processing center NIBSS - Nigerian Inter Bank Settlement System - is owned by the state and legislatively strangled its main competitor InterSwitch, forcing it to carry out all card transactions through itself. At the same time, as is usual in the absence of competition, the quality of services falls. In this NIBSS, no one at all knows what and how it works for them; as a result, it took us several months of trial and error to connect to their processing. They simply could not tell us that in our requests they didn’t like their system, because they don’t even have their own developers there who would understand something in the guts of their system. If there was an alternative, they would quickly be left without clients with such an approach, but there is no alternative.

In general, in Nigeria, this is a frequent problem when integrating with some third-party services. Almost no one has their own developers, all development is outsourced, and as I wrote above, they save up to the maximum. As a result, they are left without support and maintenance, and if problems arise they cannot help with anything. Well, if there is some simple API that is easy to figure out for yourself. But here the same transactions on bank cards go on the extremely tangled and implementation-dependent ISO 8583 protocol, in which they can break their legs without the help of the devil.

About information security


In short - Everything is very bad. To outsource the development of a key system dealing with payment data to an outsourcing freelancer, of which they only know the username on Skype - this is considered normal.

We made an application that turns a smartphone into a POS terminal. An external bank card reader is connected to the smartphone and you can pay by card. Then a whole heap of problems surfaced, from which I smashed my face with a facepalm. I really hope that in Russian banks things are somehow better (maybe someone will enlighten in the comments).

Some kind of security audit seemed to be once - in any case, we transferred the source code of our application to these guys from NIBSS, corrected some remarks on the protocol and message order, and received a certain certificate. However, then no one else followed the updates, i.e. in theory, after the audit we could have done anything that was not good, and no one would have noticed.

The terminal works with the NIBSS server using an open, unencrypted protocol. It would be a stretch to forgive in the case of "real" POS-terminals connected to the server by some dedicated channel. But our mobile solutions are sitting in the usual wifi network, and in theory it’s worth stopping the card data. Only PIN is encrypted (during online check).
But these clever people cannot even implement SSL support for three years already (remember, this is the main and only processing center in the country that strangled all competitors, that is, there is no choice), although it’s easier.

The level of developers in Nigeria is quite low, so when I had to refine someone else's solutions, even I, considering that I myself am not an expert in information security, found all sorts of SQL injections and a wagon of other vulnerabilities.

In short, do not keep money in Nigerian banks. I am even surprised that for all the time I have not heard of any serious hacking and theft of money there. Whether they hide, or the level of Nigerian hackers corresponds to the level of their programmers.

About theft and robbery


In Nigeria, there is a very low level of trust in employees (in general, I don’t know, maybe we have the same, and in general, this is the norm), because employees steal. For example, the motivation for introducing an electronic payment acceptance system was protection against theft of employees. Who could collect money from customers, put them in his pocket, and then honestly say that there was nothing. There is a lot of room for the introduction of any software for control and accounting. But at the same time, implementation is sooooo slow, because apart from business owners, no one at all is interested in it, nor ordinary employees who steal, nor their superiors, who apparently also steal or have a share from it. One such project of ours cannot be implemented for a year due to strong opposition and sabotage (all deadlines are broken, they don’t respond to our requests, no one wants to learn how to use them, etc.).

The crime rate there is quite high, which is typical for poor African countries. Armed robbery in broad daylight is common. My boss, for example, was recently robbed right on the street: they took money, a laptop and a whole bunch of all kinds of gadgets needed for work, all these card readers, fingerprint scanners, check printers with a pistol. They cost not very expensive, but the restoration of the kit took a long time - until they ordered, while delivered from China. The police, of course, did not find anyone, and indeed it didn’t seem that they were bogged down with such trifles as street robbery.
After this news, the desire (and so not very large) to go to Nigeria and see my colleagues live, I finally disappeared.

About remote development


When we started to make a system for accepting card payments, a problem has surfaced: to develop an application, I would have to have access to hardware - card readers, check printers (in Nigeria, unlike in the Russian Federation, printing a paper check is not necessary, so it’s much easier to implement MPOS solutions on base smartphones, not necessarily bother with the printer, but some customers still want this opportunity to have) and other peripherals. I just could not get it. In the Russian Federation there are no representative offices of those companies whose iron we order, and when you try to send me a reader via DHL, the parcel was wrapped up at customs, such as this cannot be imported into the country without permission from anyone. In the end, I was left without a device, under which somehow I had to write code. At first, they were still considering the option “deliver to a neighboring country such as Finland and go there to pick it up personally”, but DHL said that such equipment (connected with payments and cryptography) could be wrapped there, while the cost of delivery was not returned, and the money was tight then and decided not to risk it.

WisePad is an external PIN-pad for a smartphone, it is connected via bluetooth, it has a pin-keyboard and a small screen, some models also have a built-in printer for checks.

I had to somehow get out. First of all, the interface for the card reader was highlighted in the application (this later came in handy when we began to use readers from other manufacturers or other models) and a mock implementation was created that always returned hard-coded data. I could work with her locally without any real device. She later came in handy for demonstrations to potential customers when the reader was not at hand.

But a significant part of the pitfalls was precisely in the work with the SDK reader. I think everyone who has worked with Chinese hardware is familiar with such things as lack of documentation, comments in the code in Chinese, the inability to quickly receive a response from technical support due to the large time difference, etc. And here the impossibility locally to be debugged was also added.

I had to allocate a special computer in the Nigerian office, put TeamViewer and all the tools for development on it and debug it. A smartphone was connected to the computer, the necessary peripherals, specially trained afro ... uh ... African by my commands poked the necessary buttons on Skype, inserted cards, pulled off checks and did other manual work, and I sat in a debugger through TW.

The process is not so fast and convenient, but in general, and not so scary. The main problem is the need for a live employee at that end. If it were only a smartphone, one could put some VNC Server on it and sit remotely on the smart itself. But in our case, we still had to carry out operations with the cards and an external pin-keyboard, which could not be done remotely.

How did I get in touch with all this and why do I need it?


The comments have already asked this question several times, so I will describe it here.
Some time ago I was engaged in freelance on Upwork, quickly found a regular customer - an American of Nigerian origin. After about a year of performing various tasks for him, he offered me a partnership. We (I, in the face of a small office that already existed in Nigeria, and another American acting as an investor) made an LLC in the USA (an approximate analogue of our LLC), where I received my share, and started working. As a result, I became something of a technical director, hired two more programmers here in Russia. One of the Americans moved back to Nigeria and began to sell what we hid and command the staff in the local office (sales, support), while the second paid salaries from his pocket until we started to get some income from the sold software.
Those. This company is partially owned by me - if it shoots, I will get my honest piece of cake, and not a miserable hand-wage. At the same time, I’m my own boss - I set up my own work schedule, deadlines, choose technologies, etc.
As a result, with such a level of freedom and potential incomes (which the truth still remains potential), I can afford to work there despite the difficulties described above, and to the fact that I get less than I could earn here in St. Petersburg. When it became tough with money for 9 months, I worked in one office here for twice as much money and quit nafig, because I finally realized that having tried a breath of freedom to work “for my uncle”, I no longer want other projects.
Something like this.

About prospects


So far, doing business in Nigeria is a very difficult thing - in spite of the huge new markets, there is still not very much money in them, it makes the population know poverty. But with the competition so far everything is simple - the level of services offered in the same field of MPOS solutions is still quite low and it is not too difficult to quickly outrun competitors and win a significant share.

Everyone hopes to improve the political climate, to establish a truly democratic regime and finally break the chain of endless coups and dictators, this began in 2015. Maybe in five or ten years, if they manage to keep this trend, Nigeria will become a richer country than it is now, and the companies that are now mortgaged will come to success. Well, maybe everything will end again with another coup and a new period of military dictatorship, yes. We'll see. In this regard, I am glad that even though I work in this country, I still live in another.

Source: https://habr.com/ru/post/346514/


All Articles