There are plenty of options for remoting. It is customary to distinguish remote work and freelancing, but more often we are in one of the intermediate states. And the state of the state of discord. Some options provide market coverage, others - the flow of orders, and others - the social package. And the prospects are different everywhere. So it is better to clearly imagine where you want to come.
For myself, I chose the format of remote work in a distributed team. Under the cut - about the reasons for the choice: an analysis of my experience and options that have come across personally.
There were many funny stories and interesting experiences in my working life. But so that the main idea was not lost behind them, all the lyrical digressions were removed under the spoilers.Already ten years I have been doing web development, and the total experience in IT has exceeded 15 years.
In terms of technology, it's closer to me what the end user interacts with. I like to make interfaces for people, but not to pick something “under the carpet”. It motivates me when work is appreciated - when you hear words of gratitude from end users for making it easier for them to live by the results of your work.
')

Over the years, I have not worked in the office in the traditional sense, but I tried various forms of freelancing and distant work, as well as ways to organize work.
It so happened that my first job (still as a student) was from home and on a free schedule. I liked the remote format right from the start.
A big plus was the flexible schedule, as well as the geography of the search for orders. Thanks to the remote, you can search for employers or clients not only in your city, and this is not related to relocation. You are not limited to the local labor market (in my region is very limited), but you turn to another plane, where geography no longer plays a role, but the market itself is a bit different. Even political boundaries cease to exist for you - if you wish, you can go to another country (of those that you can afford) or, on the contrary, cooperate with clients from abroad, where they pay more.

Of course, in the office there is socialization - a smoking room, a kitchen, corporate parties and even a personal life. But there are a lot of moments that reduce overall efficiency - I know this from my own experience, because at one time he rented a cabinet in such a “standard” office, and it was interesting to watch from the outside what was happening there. And socialization on a remote site can be realized through coworking.
If there is not enough communication, I work like that.There are some other people there, sometimes acquaintances, and sometimes they come to our city to live and work for a month or two. In general, rotation in coworkings is usually quite decent, and you can communicate with various interesting people, who also mostly work remotely. It is even more interesting than seeing the same people every day in the home office. Although any coworking also has the backbone of regular customers. Moreover, you can choose different locations to work even every day.
The situation change itself helps the brain not to stick, stimulates mental activity. And personally, I’m easier to tune in to the workflow when work is also around, even if it’s just a barista fusses behind a counter in a coffee shop.
If I decided on a choice between the office and a remote place rather quickly, I didn’t notice a particular difference between freelancing and remote work in full time. Yes, probably, there was no full-fledged market for full-time offers. But after so many years, I see many options for interaction between the customer and the contractor. And I consciously choose a remote team in a strong company. My article is about the reasons for this choice.
Of course, opposing freelancing and remote work is not entirely correct. But in order not to turn my thoughts about typical pros and cons into a philosophical treatise, I will continue to talk about some opposite entities - “classic” freelancing (single projects from exchanges like FL and Upwork) and a remote distributed team of full-time specialists from by the company.
Freelance - small budgets and projects
There will be no big budget for freelancing
In that segment of IT where I work, the time of small projects “washed down on my knees” has passed. To compete successfully for a place in the sun, you need to do well and quickly. One specialist (freelancer) in theory may well do something substantial, but it will take a long time. And when time plays a key role, it is unprofitable for business to wait, it is more profitable to hire a team.
Even if for some reason a business hires only one person for the implementation of a serious project (suppose he has a rare competence), he will most likely be on staff to retain expertise in the company and subsequently support the decision. In the context of our conversation, this will already be full remote work.

Hiring a freelancer - always saving at the expense of risk
Freelancer - a kind of free artist. Today he works with the customer, and tomorrow (as the classic stereotype says) may simply not get in touch.
Even if you are a hyper-responsible freelancer and have not missed a single working call in your life, stereotypes work against you: at the start of the project, while hiring a contracting organization or developer, you will always be at increased risk for the customer. So, he will turn to you only if necessary to save. One can only guess what caused this savings - will not the money run out tomorrow?
Big tasks are not found
The consequence of the previous two points - if you act alone on freelancing and avoid hiring for full time, you have to work on small and inexpensive tasks. For example, for some small online stores to add functionality to small things. They and in a portfolio not to show. It often looks like this: “Look at this site - the design sucks, but it's not me, but this feature is mine.” All the same, from the side, your feature will be perceived in the context of that very settling design with all the consequences.

In general, this is similar to the scope of repair and construction.One person, of course, entrusted to put tiles in the bathroom. But for the repair of the apartment as a whole, most likely, they will already be looking for a small brigade in order to parallelize and speed up the process. In addition, the competencies here already require different ones - wiring, plumbing, heating, etc. Well, if you need to build a normal house from scratch, here, in an amicable way, you need a contracting organization with an architect, a landscape designer and a foreman.
One craftsman was doing repairs in my apartment. The tile laid very even nothing. Wanted to take up the wiring. But when, in the process of discussing the task, I heard from him that here, they say, here’s a plus in the outlet, and here’s a minus, I realized that I need to call a specialist - an electrician-freelancer :).

Permanent “free” search
The nature of the tasks, the minimum budget that must be saved, determine the mode of loading: occasional non-rhythmic employment. Today there is work - tomorrow is not. And this is nerves and anxiety: you do not know exactly when the next order will happen.
To ensure a reasonable income, you will constantly look for customers. This search is a separate topic for conversation, sometimes it takes even more than the direct execution of tasks.

Nobody pays for the search. You have to somehow put this work into the cost of your time on the project. But you cannot raise this figure indefinitely either - you will not be able to compete with other freelancers.
The way out which I found for myself is to focus on long-term cooperation, so that for every conditional hour of the search, there are as many hours as possible on the project. A “long” client also loads you up irregularly, but when he is not one, but several, you get a more or less even load and decent earnings.
True, the work in your own name and the background search for clients you still do not stop - and you never know what?
A “long” client eliminates some problems, but adds others
With the transition to long-term cooperation, a new level of responsibility appears. I work with business critical systems. If the online store suddenly “falls”, sales stop at the customer, and these are direct losses. In this context, it is problematic to simply schedule a vacation. Money can be put off, but you feel responsible to customers for something that has not happened yet. You are like a one-person firm. A firm must work 365 days a year, at least in technical support matters. Therefore, if you go on vacation, you take a laptop, dragging it around museums, and do not plan trips to regions without a normal connection.

Prehistoric Zoo
When finalizing the functioning projects in the described format, a collision with the Legacy is inevitable. And usually on such projects you are not the first performer. Tasks are implemented by a whole stream of specialists constantly replacing each other (customers are also looking for their ideal performer), and some of them dragged their own technology into the project. It all works - the client's business problem is solved, but a real zoo can be created under the hood.

Part of the work is not visible or appreciated.
It is clear that to work with such a zoo, one must possess a fairly wide range of technologies. But even with the necessary knowledge, you will have to face banal organizational problems: there is, of course, no documentation for what has been written before, accounts for various related services (up to domain management) are written in the personal mailboxes of previous developers, only they have passwords. In general, the horror. In severe cases, version control systems are not even used. And it seems to the client that he has everything in a bundle and the task that now needs to be done is a penny.
Experience suggests ...... if a client seems promising to you for some reason, it makes sense to step on your throat and take a risk, do the first task, taking the cost of understanding the project yourself. Perhaps this will bear fruit. Or maybe not.
The client will not invest in improvements (not broken - do not fix it)
It would seem that having an understanding how it should be, you can make the client “good” and fix at least some of the problems. But as I mentioned above, the client saves, which means that there will be no talk about writing autotests and documentation. And updating the stack is not included in the plans. What is on the project, so work.
Self-development against business (the best is the enemy of the good)
What kind of self-development in the described zoo?
It happens, of course, that business needs to solve a problem, but it doesn’t matter how, and then you can try new tools.
For example, not in the same online store, rooted in zero, I found business problems that could be solved on vue.js instead of the existing jQuery project. Updating the stack is generally good, and I solved the problem. But the problem is that my decision only aggravated the zoo technology. The circle is closed. And frankly, the task for me as a freelancer was set small (as is usually the case), so I could not fully turn around and cut out jQuery - there was no such task. So vue.js and jQuery graze alongside in one aviary, pinching traffic.
Specialization is necessary for self-development, but contradicts the format of freelancing
The ability to “turn around” would give specialization in a particular direction. But it is not in my freelancing segment. A small task simply makes no sense to divide into a team - each will be involved for 15-30 minutes. Many simply will not agree to this - no one is interested in spending more time on immersion than on execution. Easier to do everything yourself. We have to close all the questions, from analytics to testing: at the same time on the backend to twist something, to typeset, and to think over the UX, and even sometimes pretend to be a designer (which, for example, is not mine at all, but it is saved by Bootstrap and Font Awesome).
A wide range of knowledge and practical experience (fullstack) is, of course, good. But sometimes it seems to me that because of this diversification you simply do not have time to plunge deeply into each of the required aspects. You really don't study any of the technologies. And as you dive into the details, you realize how little you know about all this — in itself, this even slightly demotivates.
Care in specialization is a natural process as the industry develops ...It is like in medicine. Once there was one specialty - the doctor. And now even in such a narrow segment as dentistry, there are even narrower directions - surgeons, orthodontists, etc. So the movement towards narrowing specialization is inevitable, it is a question of survival in the industry.
Loneliness
Freelance by nature is a one-on-one job with a customer, usually a business owner. He thesis formulates a small task, and we begin to unleash it with joint efforts - how exactly to realize the required piece. In the end, we develop a solution.

This team development is not here and never will be. If you intersect with colleagues, then one-time - to ask something again, consult. Even if the project has more than one freelancer, each has its own task pool, and in general they are not related to each other, with the exception of some degenerate situations, when one task begins, and he develops something as a result of the other.
Only once I came across a customer who had formed a whole team of freelancers - 5-6 people ...There were dedicated team leader, designer, layout designer, developers, tester, etc. It seems to be here! Freedom of freelancing with simultaneous teamwork. But taking into account the fact that each member of such a team is a freelancer to himself, he is still a bicycle. Tandem, where everyone pedals with his speed and in his own way.

Everybody has a hogging and the presence of other projects, which is why a ragged work schedule is obtained on this particular project. One was studying, another took up a more interesting affair, and the third one pulled an old client to an urgent task (and freelancers will not leave “long” trusted clients for a project for a couple of months). As a result, there are difficulties with interaction, and even greater ones with planning. And the tasks for which it would be possible to get together, distribute responsibilities and close the question for a couple of days, stretch for weeks. Well, the idea of ​​a zoo is also relevant here, because such a gathering of freelancers is like a team of a pirate ship - anyone can go ashore in the nearest port, and the authority of the captain is very fragile.

In general, despite these difficulties, it was interesting to work on that project (more interesting than freelancing alone). But, frankly, this is not quite freelancing, but a degenerate case of a remote team with organizational problems. In most cases, you are alone in pure freelancing.
However freedom
I will not be limited to shortcomings. Freelance gives freedom, inaccessible in other formats. Nobody sets a task for you to “close 160 hours per month”. There is a piece or hourly fee. When there is no task, you simply understand that you will not receive money during this time. However, you are not accountable to anyone except yourself. I didn’t work today at 8 o'clock - it’s okay, there will be less money, but you have a free day or a couple of hours to communicate with children, hobby, building a house or any other things. For some, this factor is fundamental, outweighing all the others.
But I wanted more.
Remote work - team on a fresh stack
The format of several clients, the load on which is on average more or less constant, is already striving for full-fledged remote work in full time. You work out a schedule of employment for N hours a day, you have more or less stable incomes. Unless administration remains on you, and tasks not on ambitions. But for me, the format of the remote team on fulltime was more appropriate.
The scale of the projects is much larger

Remote teams recruit either for the development of their own products, or to provide these services on the side. Whether it is an internal or external customer, the team as a whole is ready to give a larger project that requires a larger range of competencies. Especially if the team has already shown itself in action.
“Big Fish” just doesn't work with freelancers. They usually need longer negotiations, administrative red tape. And even if, as a result, the work is based on the model of a dedicated team, an intermediary is required who will take on the risks of working with the staff.
Business is interested in new technologies.
New technologies help to solve new problems or change existing solutions, making them more effective and making the product competitive. Anyway, technology upgrades are a vital necessity, because the support of old technologies on new platforms is gradually disappearing. Therefore, a large-scale business is itself interested in using a modern technological stack.
In addition to solving design problems, new technologies help large companies to attract and retain developers - those who, like me, want to learn in the process.
Self-study on live projects
I always wanted to work with a fresh stack because self-study in my free time (on the table) is ineffective. Those. it will not be possible to study Angular by watching the video course, but without having any projects on it (or by writing an educational project like “Hello world!”). It is much more effective to comprehend new technologies in real projects. When you come to a new task and the first 2-3 weeks frantically trying to enter what is happening. And then, when the puzzle suddenly begins to take shape in your head, you take pleasure in the fact that you went here, overcome your fear of the unknown. You understand that in these couple of weeks you have pumped up much more than in the whole of last year on the old project, although you know it well. This is a cool feeling - as if overcoming oneself, which greatly helps in development, motivates to move on.
Additional motivation due to the nature of the project
An interesting task in itself involves. “For sweetness” in large projects there is continuity: the tasks are interconnected, since there is some logical chain of product development. This evolution inspires me — when you realize where the product you are working is headed. At least, for me it is important, because programming as such is for me only a tool with the help of which a new world is created. Evolutionary, in small steps (as it seems, when involved in this), but it changes.
And by the way, according to the results of work on a large project, there is something to write in the portfolio. It is not a shame to show such things entirely, even if you “sawed” a separate layer in it.
The problem of search is leaving
Obviously, being a part of a team, you pass on the task of finding customers to specially hired sales managers or managers (again, it doesn't matter if it is internal it will be a client relative to the company or an external one). To some extent, you lose control over which projects to go to work on (although this depends largely on the company). But tomorrow you can no longer worry about employment: the company is interested not only in not being idle, but also in using your potential to the maximum - to put you on more complex projects that mean greater financial returns for it.
Teamwork

On large projects, division into areas of responsibility and narrow specialization of each participant is inevitable. And this is a completely different team history.
People are predictably available for communication, and the time of release of a solution in production can be estimated with known accuracy. The effectiveness of the team is much higher than that of a collection of freelancers. All this additionally motivates, especially if you are focused on results in your work.
Of course, working for a large company can also be confronted with tasks where teams are minimal. But this is usually a temporary phenomenon, and the employer is looking for a “team” project (as I noted above) - he is also interested in this.
Professional communication
I, of course, an introvert, but not a misanthrope. I need professional communication and enjoy teamwork. So you feel your own professional development much quicker - when there is not only one who can ask something, but also someone to prompt. You begin to understand what you really are in the great mass of other specialists. There is someone with whom to brainstorm - perhaps the best way to make decisions (not to be confused with meetings).
Spoon of tar: responsibility on the other hand
However, remote work is no longer freelancing. There are some advantages of freelancing on the remote site, in particular, full geographic freedom. It's important for me.
But on my own skin I felt some discomfort of the transition, for example
in terms of reporting time.In case of remote fulltime, the main way to record working time is to report hours spent in the context of tasks set in the tracker (cases of hypercontrol through special utilities with screenshots and camera recording I don’t consider here because I wouldn’t go to work for a company with such wild processes ). In the end, it all depends on the projects and specific tasks. When a task or project is the only one, you write off as many hours as you have completed. But sometimes you work on several parallel projects, between which it is necessary to divide the hours in the reporting, because it is important for the employer. The question is how to take into account the time to switch between tasks? Write to one of the projects? Share between them? Write off on idle time? And if the project rests on a business that does not always respond quickly? How to take into account the waiting time?
From each of these questions (especially after the complete freedom of freelancing) you experience discomfort. And in my case it is even more unpleasant than on the “pure” freelancing.
Once in one article I read that people working remotely are more responsible than office workers, because it seems to them all the time that it is necessary to prove that you were not idle. This is the source of anxiety to get used to. Unless, of course, you are looking for opportunities in remote work not to work.
Compensation
The lack of complete freedom, which gave freelancing, is compensated by material benefits.
Now for the first time I work in a company (just distributed), where I am entitled to paid leave. And they even demand from me to schedule it for the next calendar year. And I understand that I can not do this, because just not used to such luxury. There is a formalization of income, compensation for equipment and a gym. Now I have a salary and bonuses, and they do not depend on the relationship between the company and end customers. The risks of downtime and payment delays from customers, the company assumes.
Instead of totals
When you work alone, you swim finely anyway. Companies “float” much deeper, they have access to larger and more interesting projects, which, as a freelancer, I could not afford in principle. Of course, I could leave my freelancing option in my own business - open my own studio. But I felt that I was not ready for this - I don’t want to prefer administrative tasks to real technical ones, and there are problems with finding adequate performers and customers. Therefore, the distributed team for me was the best way to develop.
However, my thoughts should not be taken as the opposition of two worlds - freelancing and remote. It is not uncommon when, within the framework of a specialist-company relationship, one evolves into another and vice versa.
After leaving the freelance company, I lost something, I gained something. Everything has its price. In this sense, the remote format of work in a distributed company allowed me to minimize losses by getting the maximum profit.