Once upon a time I was a good fellow. And the young man screwed up on his old work, and went in search of the life of the new. And he came to a startup overseas with the founder of England. And he was happy. And he worked there for
thirty years and almost three years, and worked to break the nervous and burnout emotional. And I decided to tell about my adventures under the cut.

I will not bore you with epic language. In this article I want to talk about my nearly 3 years of experience in a small foreign startup, approaches to problem solving, personnel management, project management, my personal impressions and conclusions. Paraphrasing a famous song, there are a lot of articles about startups, I will write another one. What for? To show the founders of startups how not to do it, and for employees - at what moments it’s time to think about the future prospects and how to take care of yourself. Also, for obvious reasons, I will not voice the name of the project itself and will not really go into the numbers. The article came out long, with smooth overflows from project details to personal experiences. Yes reader forgive me.
How it all began
Without going into the reasons, at some point I felt the need to change jobs. For the sake of experiment, I was looking for a remote job, and it was in a foreign company. At Upwork, which was then still oDesk, I came across an ad for a recruitment in a young but ambitious project, focused on the US market. Sulili interesting tasks, and the salary offered higher. At that time I was not embarrassed by the fact that the emphasis was placed on employees from developing countries (where, accordingly, it is possible to pay less). And, probably, should. It is necessary to pay tribute to them, however. On the corresponding page of the site, they were not even too lazy to make a small converter, which translated the rate they offered to the currencies of different
underdeveloped countries of the world, including Pakistan, India, Nepal and other exotics, in the same row as Ukraine and Russia.
')
They responded to my application fairly quickly and assigned me the first part of the interview, where, in addition to general questions, there was one problem, the solution of which needed to be provided using
InterviewZen (useful thing if you need to track the course of thinking of the interviewee, by the way). If in brief, an array of currency fluctuation values ​​was given in a small limit, the general variation is <0.1. It was necessary to normalize and plot the oscillations so that they could be seen.
As the founder confessed months later, it was the first day of hiring, and over the course of it, he almost managed to lose faith in humanity. The account of the interviewers was already going into the tens, but I was the first to decide it. Either in the target countries everything is very bad with mathematics and algorithms, or it was just that everything was bad for those who agreed to work for the money offered, but the fact remains. In his experience, dozens and dozens of people, many of whom have been engaged in web programming for years, have not been able to solve a simple task.
At the second stage, which took place almost immediately, their CTO talked to me, he was the founder's brother, and I was offered a probation period in combination with the main job, and soon a full time job.
General conditions of work
Unlike some start-ups that I heard about, and where everything is based on the
ura-idio patriotism of the series “our idea is super cool, we will definitely cost two Google, so for now, wait without any salary,” the remuneration here was assumed. Moreover, it approximately corresponded to the market remuneration of a joon or a weak PHP middle language with knowledge of English in at least Ukraine (I suppose in other countries where employees were searched). But there were nuances. In particular, we were contractors. Accordingly, we were ourselves responsible for paying taxes, we were not supposed to be paid sick leave and vacations, and the number of unpaid was limited to 2 weeks per year.
All work was done remotely, the work schedule was free. It was very desirable that my working time overlapped with the rest as much as possible, but they already worked quite a lot, so it was not so difficult to do. The only requirement is 40 hours per week according to the activity tracker. And that means 40 hours of honest work. The tracker recorded almost everything you can: screenshots, webcam images, keyboard and mouse activity, websites visited. Naturally, no one shot to the toilet or for coffee for 5 minutes, but long idle products were easily fixed and completely discouraged. People who were not able to organize their work were quickly eliminated and sent out to look beyond the distance.
Also, as it is intended for startups, I was offered a stock option. I was supposed to be about 0.15% of the total pool of shares, spread over 4 years. I relied on the first quarter after the first year of working at full time, with a further monthly proportional addition. All this was recorded only in Google Sheets and in an electronically signed contract.
What is the difference between electronic signature and digital one?Taking into account the level of development of electronic document management as such in my former homeland, it was only during work that I learned the difference between the concepts of “electronic signature” and “digital signature”. In short, then:
- digital signature - a concept from the field of mathematics, programming, cryptography, etc., a way to confirm the authenticity of the signer with all these keys, certificates and other things;
- electronic signature - a legal concept, denoting the signing of something in electronic form. Depending on the laws of the country / region, it can even be your usual handwritten signature, drawn with a mouse on the screen, without any digital refinements.
And yes, in some cases in the United States a regular PDF with a handwritten signature will be a completely legal document recognized in court. Since it is not with our mentality that such proofs are accepted, in our realities both concepts usually go hand in hand, and therefore may seem interchangeable.
Advice to the owners. Offer even hired employees a share in the project. It still stimulates, because the employee starts working at least 0.1% for himself, and not just for salary. On this subject more than once was written on Habré, including the legal complexity of the practical implementation in Russia and Ukraine. But if you are doing a real project, and not playing a startup and / or sawing investors' money, try it. The loyalty of good, time-tested staff is still useful.
First months
When I came to work, they told me that we were preparing for a public launch of the product. Presumably it was supposed to take place in about 3 months or so. This detail will make a difference in the future, but for the time being, what was of primary importance is what task will be my first project. The general policy was as follows: letting a new employee do something that it would not be a pity to throw out if he adjusts. Those. some new feature from the project roadmap.
And it became the integration with the popular (and not so) online accounting systems. Tasks were set without specific detailed specifications. Not everyone likes this approach, of course, but personally I like it, because Challenges and gives room for creativity. After all, it was necessary not only to deal with several APIs and learn how to post data there. It was necessary to understand the basics of accounting, the basics of the US tax system, think over the structure on our side, understand how and what data to post, etc.
Council staff. If you like only one stage of software development (for example, just writing the code itself, only testing or only designing), you should pass by the startup. They usually need a Swiss, a reaper, and a dudee.
It took about a month to complete the implementation of the first integration (model, its verification with an accountant from the USA, embodiment in code, licking, unit tests). Then it went more fun, of course, because There was a ready-made sample for subsequent implementations.
Soon, a couple more people were invited to work, who were instructed to do other integrations using the finished model. Naturally, new people come along with their own style of writing code, which caused some complications in the future. Here, perhaps, it is worth making a lyrical digression and tell you what it was
Code base
It all started with a small family business - a call center in the Philippines. And the software was originally written specifically for accounting and control of call center employees. Actually, the monitoring mentioned above, which is so necessary when you hire Filipinos, grew from here. They have such a peculiar approach to work, whether they own, or inherited from the time of the Spanish colonization. As someone beautifully described it, “Filipinos too value their personal time to work efficiently.”
The bottom line is that the code was originally written for internal business needs and processes. At some point, they had the idea that it turns out very well, and it would be possible to transform the product for internal needs into SaaS. There were several potential areas: working time, payroll and tax calculation, preparation of tax forms (it is also payroll), an online solution for call centers (telephony).
The code has been written for at least 7 years by the time I joined the company. Those. It all started at a time when the currently popular frameworks were still in their early post-embryonic stages (and jQuery too). And object-oriented programming in PHP was rather a lot of advanced ones, and many still calmly managed with a procedural spaghetti code with a bunch of include, require, require_once. In this form, I found the project code: spaghetti, almost no OOP, variables and functions arising from nowhere and disappearing into nowhere, almost no unit tests, naked JS on the front end. Sometimes it proudly called our own framework (our own framework).
Above, I used the word "almost", since the era of change is overdue, and the first steps to converting the code base into OOP have already been carried out. Accordingly, all new features were necessarily written object-oriented, with unit tests, but with the core of the system, you still had to interact through require and global. At that stage, I was solemnly promised that I would not have to rake the Augean stables, and they would eventually convert their code themselves.
Advice to the owners. Follow current trends when writing code. Try to take into account and incorporate into the financial model the possible need for its updating / refactoring for new technologies or even other frameworks. Otherwise, at some point you may find that you are working with a mammoth dung a highly outdated code base. As a result:
- you will have to rewrite anyway, but the process will be much more painful, sometimes requiring several iterations of refactoring;
- It will be more difficult for new employees to understand what and how they work for you in general, and you will have to spend more resources on introducing them. Some at the sight of what you have to work with, they can simply
cross with a heel and leave.
Council staff. Be careful if you have to get stuck for a long time in some rare framework or legacy code. You can get a lot of economically useless (ie, not affecting your value as a specialist) experience.
Remote work and teamwork
When your team is scattered across countries, there are some difficulties in communication, both obvious and not so. For example, people have such a psychological barrier of concern. If you are stuck, or you have a question, it will be easy for you to approach the person sitting in the same room and ask. After a minute or two, the answer was received, and you can continue to work. If the person’s room is in another country, you will most likely write your question to him and wait patiently. Or ask if you can call, and only then call. Term of the decision is greatly stretched
There are other nuances. For example, it is difficult to assess whether a person does what you expect until he does push his code. And since we all worked in the master branch (crime, I know), pushing happened when the code was already working somehow. And here we return to a couple of people who were tasked to pick up my integration.
The integration code with the accounting system was implemented without any special refinements. One accounting system - one class with all the necessary functions for interaction. Not too much data was transmitted, and we considered that there was no sense in splitting into smaller classes. New people (both were from the same city and worked together, by the way) found it worth doing differently - composer packages, splitting operations into a bunch of small classes, etc. Perhaps it was beautiful and elegant from an academic point of view, but from a practical point of view it did not improve the work with the code at all (code similar in functionality was written in different styles) and did not speed up development (instead of taking a ready-made class with a ready structure and rewriting under another API, they twisted their own bike). In addition, people found it difficult to organize their own working hours: frequent breaks, gaps, low activity according to the tracker. As a result, what was supposed to be a simple replication of a ready-made solution, stretched by about the same amount as this solution was developed from scratch. The chief considered such an approach unproductive and had to say goodbye to both. After them, we said goodbye to their work, and I had to add a few more integrations.
Advice to the owners. Take care not only about the availability of the code style guide, but also about its attentive learning by new employees.
Council staff. If you see that something can be improved, do not engage in amateur activities. Consult with the "senior in rank." Either you will convince him of the need for improvements and the implementation of your recommendations in both new and existing code, or he will convince you of the need to do what others are already doing. There may be their own, well-founded reasons. For it is said: Do not make the zoo in your code.
I think it would be useful to mention what tools we used in our work (many of them certainly know that way).
- Trello - for task lists. The company did not use modern project management systems. Each had its own board in Trello, where the required columns were “To do”, “Doing”, “Done” plus any others on their own (for example, “To do later” for tasks that would be good to do but not light up , “To do - subsystem”, when you had to postpone work on something and switch to other tasks, etc.). All had write access to the boards of other employees, in order to add them the bugs found in their code if necessary. Everyone could see who is doing what now. At the end of the working day, the dump from the “Done” column was transferred to the tracker as a daily report. No additional reports tormented anyone.
- Slack - for individual correspondence and group notifications (from the series “I launched serious changes, make a pull as soon as possible”). By the way, not so long ago, Slack was implemented in UA-Hosting . Now, client service employees receive automatic notifications about new tickets and payments (both to the work computer and to the phone). This allows them to respond faster to customer requests and issue new orders.
And also whisper behind the bosses. - Skype - for phoned, sometimes for screen-sharing "on trifles."
- Mikogo - for a more thorough screen-sharing with joint testing.
- Intranet - own knowledge base on various issues. Dump all that once may be useful or can erode from the head. Strictly speaking, there were several of them - for developers, for call center employees, call center managers.
Vector change
Summer came, the launch did not take place. The chief decided to shift the vector from payroll to telephony. But it took a few more months to add the necessary functionality. I once again got “remote” tasks - integration of my own dial-in base with CRM systems.
The wording was again quite abstract - it was necessary to post the data about outgoing calls to the system as events of the lead / contact and using the already existing plugin for Chrome to find phone numbers on the CRM page and convert them into links to call through our own dialer. The second part of the task turned out to be especially “fun”, but on the whole it was possible to get it to work.
Then there was another integration - more exciting. With the payment system (and the implementation of payment in general; there were few customers before that, and the payments were processed manually, but we were preparing for a commercial launch). The parent company was registered in Hong Kong, and at that time (autumn 2015) the Braintree Payments payment gateway was the most profitable in this situation.
Running? The launch went
like a splash into a puddle very quietly. Just a few more call center clients appeared who were already paying through a Braintree card. And the vector was again shifted towards payroll.
Teamwork, or 8 months in the Philippines
Honestly, I vaguely recall my tasks for the first half of 2016. Perhaps they were not so interesting, perhaps the family crisis took the first rows in my memory. I only remember that there was a salary increase (already the second). Whatever it was, in July, the chief offered to fly to them in the Philippines and work as a team.
The conditions were as follows: I was paid for a one-way flight, accommodation and expenses for a visa extension, in return, I work for an additional 10 hours a week for free. Most self-respecting people should have worked the signal "why the hell?". In fact, I flew on a business trip at my own expense, because my hourly rate multiplied by “free” hours approximately and gave the value of everything that they “paid for” me. But I had to unwind, and I had long wanted to go to the Philippines. Approximately since I read that the average annual temperature there is about +26 .. + 27 degrees - just my comfortable temperature.
Geographical information about the PhilippinesMy first mistake was to read about the average, and not about the average daily temperature, which most of the months exceed 30 and are no longer at all comfortable for me. In general, in the Philippines there are two main types of weather: hot and humid, very hot and dry. Well, there is still February, when we, white people, are comfortable on the street in shorts and a T-shirt, and the local people are wrapping up in jackets and jackets. In all months except February, I literally sweated the entire T-shirt in 20-30 minutes walking down the street in quick steps. Of all the Philippines, only the mountainous Baguio is an exception to temperature, but I have not been there.
If you consider the Philippines as a place for wintering and feel comfortable at temperatures above +30 during the day, in general, it is quite cheap and pleasant there. However, the Internet there is quite expensive, slow and unstable. A couple of days to wait for the repair of the covered line is normal even for the business district of the capital. And when the founder of the company lived in the provinces (where they rented a nice house near the sea for less than $ 200 a month, by the way), about once a week for the whole day the electricity was turned off in the whole village. No warnings and schedules. You just need to come to terms with the fact that at any moment you can have a day off, even when it is the least in the subject. Well, if you live in such a place, it is advisable to rent a scooter, without it in Southeast Asia - as without hands.
They settled me in a small studio apartment on the
42nd floor, overlooking the South Manila cemetery. When it was completely boring, I could observe the life of the cemetery inhabitants from on high (yes, there are quite live people living there, they cook food, dry sheets on fences and so on). And the very next day I set to work.
Well, the next day ... The next night. After all, we were preparing to launch in 3-4 months, and since the product is focused on the United States, the chief decided to work at the same time as all the States. In the Philippines at this time is a deep night. But since A considerable percentage of the country's economy is made up of call centers targeted at English-speaking countries (Filipino English is much better and more understandable than Hindu, for example), night shifts there are something ordinary, and public transport runs almost round the clock. I still didn’t know if I would be able to combine 50 working hours and a night shift, but I decided to try to work 10 hours a day, leaving 2 weekends to myself. And, surprisingly, it turned out very well. It became easier to concentrate when everyone was concentrated around and worked hard.
In addition, I was able to give tasks that are closer in nature to the core of the product. I would not say that while they were more fun and exciting, however. I got work with the tax forms.
A little about payroll taxes in the USIt is well known that the United States consists of 50 states and the Federal District of Columbia (the island territories we were not interested in). It is less known that there is a little more tax jurisdiction: the population of New York is so large that it is divided into 3 separate tax jurisdictions. Salary taxes are divided into two large groups — federal and jurisdictional taxes (non-state, i.e., 3 slightly different tax systems operate in New York State). In total, there are 4 federal taxes and from 1 to 4-5 local.
Naturally, there is reporting for each tax. The reporting form (paper or electronic), as well as the reporting forms themselves, are different for each tax. Some are submitted exclusively in electronic form, some only on paper, some allow both options. Some can be simply printed on a paper sheet and sent by mail, while others can only be printed on special forms made using so-called “drop-out ink”, which cannot be seen by OCR machines that process report bundles. At the same time, for some forms made in such inks, there was a standard that allowed them to print them themselves in black and white without any ink.
And for some taxes there is a progressive payment and reporting interval. In other words, the more tax you charge, the more often you have to pay it to the treasury and report. And there are also new hire forms with which you simply report that you have accepted a person on the staff. And tax exemption certificate, which the employee informs the employer of the tax benefits due to him. And an absolutely living form, according to its rules, which the employer checks and confirms the employee’s right to work in the USA (and she doesn’t allow auto-completion of fields, even when using HR software). And at least in one state a county tax is practiced, reporting on which goes to the city / village where it is paid. And an absolutely normal phenomenon, when a village for a thousand people has its own tax form for this particular tax. All this darkness had to be considered when developing the system. And only part of it has already been taken into account.
At the time of transferring the task to my hands, the system already had a mechanism for adding scans of paper forms to the system and placing input fields with some validation / data formatting on them, and almost all the necessary forms were added. But at this stage they were just blanks. I had to immerse my head in the
sewage pool of poorly useful knowledge, partially described above under the spoiler.
Apparently, because I worked quite well for 50 hours a week, the chief decided to raise rates and offered to work 60 hours a week in exchange for doubling the option. The conditions were the same as the first - the first admission for the year, then - monthly. Those. if I fly from 60 hours earlier than in a year, I get shish fir. Counting millions from selling shares in the future, all 0 friends in the Philippines and celebrating my 30th birthday through Google Hangouts, I agreed with one caveat: I want to see the project launch before the end of my stay in the Philippines. The chief absolutely agreed with the reservation, after all it was already decided - we are starting in 3-4 months.
And spun. Small own markup language to pull up the necessary data in the form fields, type signatures, generate PDF from this stuff, forms that require several signatures, different people, reworking the client to-do to display the current list, the status and deadlines for submitting forms, onboarding new ones employees ... And at the same time, they slowly began to involve in refactoring the old code that they themselves wrote years ago. As a result…
I smell burnout
Something like that, I was told by a local for a beer, with whom I surprisingly managed to separate, working 10 hours a night, 6 nights a week. It was already the 5th month of my stay in the Philippines, the chief decided to switch to the human schedule and work during the day. And we did not start. Again. “There’s still so much that’s not perfect.”
Advice to the owners. Start up. At least closed alpha. A better open beta. Best the enemy of the good. In addition, the constant work "in the table" kills the creator.

I did not read this book myself, but the title looks appropriate.
On the 5th month, I began quietly to hate my work, tasks, management approach ... In short, almost everything. But he continued stubbornly to attack his throat, get up in the morning and go to the office. I already felt my nervous system getting damaged and less edematous. I had some reactions that I had not noticed before.
At the end of February, I pulled out 2 weekends in a row instead of 1. Well, how did I pull out ... I worked 12 days without weekends and received 2 weekends in a row. And flew for a couple of days to the neighboring island (Cebu), to travel and meet with one old friend. We sat on the beach, drank wine, talked, listened to the surf ... Apparently, at that moment I breathed out for the first time in 6 months. For another week at work, I was drawn to all my gut by that Saturday evening and peace.
Council staff. Let us exhale. According to statistics released by the Center for Disease Control, 2.7% of suicides occur in mathematicians and the IT field, and 85% of this number are men. There is also a memorial category on the Wiki , also suggestive. The goal of your employer is to get the maximum from you for the money paid. At the same time, your goal is not to ruin your main working tool, i.e. brain and nervous system. If the machine chops off your hand, you will get a disability and a pension (albeit a beggar one). If you have a burnout, and you will be turned out of the type of code, you will not get anything, although in fact it will be the same disability. Just too non-obvious.
Homecoming
As planned, in early April, after almost 8 months of living in the Philippines, I flew home. A small week-long vacation to “see something else in Asia,” and again to work. And then 10 hours a day, 6 days a week. Only it was harder. I was myself, that atmosphere was not. And without the enthusiastic look of the boss, who believed in his project so much, my faith slowly began to dry up. Although the launch was planned for the summer, and it was necessary to quickly modify the onboarding file and refactor their old spaghetti code to object-oriented. Moreover, I also had to come up with a class structure in which I could beautifully pack their spaghetti.
Somewhere in a month I came to a deep understanding that I was stuck in a swamp. I didn’t grow at all: neither professionally (refactoring legacy code - so-so line in resume), neither career (and where in the company of 4-5 developers?), Nor financially (salary revision had been foreseen for a year). I gathered my courage and said that I wanted to return to the 40-hour working day. Moreover, changes were brewing in me, for which I also had to prepare. I still do not quite understand what is wrong with me, and why for this I needed to gather with the spirit. The terms of the deal were simple: I work 60 hours each, if we run while I'm in the Philippines. I have been at home for a month now, and the launch does not really smell. The chief proposed to preserve the conditions for doubling the option, if I finalize the remaining 4 months during the year from that moment.
Council staff. . , . , .
(, , ) , . , . , , . .
, . , .
, . , . , , , . , , . . . , , , . .
, . , , . , , — . - 5-6 , . 40 - . - .
. , . , , ( : ?) .. . , — . , , . , , . , — , , , , . , — , .
- , , , — . , , , . , 40 .
, 4 60 . , , . 2.5 183 ( 0 0), - . , 4 . .
, — -. , , — . . , . - « , » ( ), . , — . , .
...
, PHP . , . , . .
, . . , . , . , , .
, . , , .
, . , . (- , «good job»). . - .
- , — .
, . Do you like our articles? Want to see more interesting materials? Support us by placing an order or recommending to friends,
30% discount for Habr users on a unique analogue of the entry-level servers that we invented for you: The Truth About VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps $ 20 or how to share the server? (Options are available with RAID1 and RAID10, up to 24 cores and up to 40GB DDR4).
Dell R730xd 2 times cheaper? Only we have
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV from $ 249 in the Netherlands and the USA! Read about
How to build an infrastructure building. class c using servers Dell R730xd E5-2650 v4 worth 9000 euros for a penny?