ДонНТУ   Портал магистров

Введение

Во время учебы на старших курсах я активно работал на таких иностранных биржах как oDesk(сейчас Upwork) и Elance. За время работы я получил очень много опыта, которым я делюсь в своем блоге jff.name. Для индивидуального раздела я решил обобщить свой опыт и объединить всю накопленную информацию в одну статью.


Секреты работы фрилансером на иностранных биржах.

В данный я уже более двух лет работаю на иностранных биржах и Elance, которые в данный момент обьеденились в одну биржу – Upwork. Я занимаюсь разработки десктпоных приложений на Java, а также разработкой игр и приложений для мобильных платформ iOS и Android, как нативных так и при помощи кросплатформеных решений, таких как Unity.

odesk + Elance = Upwork

Почему иностранные биржи?

Потому, что оплата труда них в среднем выше ,чем на российских биржах, и на мой взгляд более профессиональные заказчики.

Данные биржи наиболее популярны, на которых работает большое количество фрилансеров, в том числе и низкоквалифицированных. Но Также существуют биржи, для регистрации на которых стоит пройти некий экзамен, уровень заказов там намного выше, но в данный иностранных биржах меня полностью удовлетворяет.

Мой путь от новичка до настоящего уровня.

На данный момент мой профиль выглядит конкурентоспособно, но до этого я прошел долгий путь.

Upwork profile

С самого начала я пытался взять заказ на маленький проект, чтобы получить свой первый отзыв. Но это не получалось у меня очень долго. Наверное, все проекты на 5$ забирают себе фрилансеры из Азии, готовые браться за любую работу.

Я начал пробовать себя в простеньких проектах размером примерно на неделю работы. В итоге за 4 месяца я сделал десяток викторин, фактически приложений-клонов друг друга, с разным дизайном. Я тратил очень много времени и получал не очень много денег. Зачастую заказчик манипулировал мной, заставляя делать дополнительный функционал, говоря, что не заплатит деньги.

Затем был сложный проект, связанный с низкоуровневым кэшированием данных на Android. Это был первый почасовый проект и первый финансовый успех.

Следующий проект — создание прототипа большого приложения на Java SE c последующей почасовой разработкой, а после и долгой его поддержкой.

Но почасовая работа отнимает много времени и забирает свободу. Таким образом, я полностью перешел на fixed-price. С этого момента я занимаюсь проектами c фиксированной оплатой от двух месяцев и затем поддерживаю их за некоторую сумму в месяц.


Профиль

Профиль иностранных биржах, на мой взгляд, не очень важный пункт, но для большей эффективности в общении с заказчиками на начальной стадии я хорошо поработал над ним. Важно, чтобы он не был пустым.


Фото:

Нужно фото, на котором хорошо видно ваше лицо. Важно, чтобы на фото не было никого, кроме вас, а ваш вид был достаточно серьезным. Особенно важна серьезность для молодых фрилансеров, так как я зачастую сталкиваюсь со стереотипами о возрасте среди заказчиков.


Информация о себе:

Когда я только начинал фрилансить, я просто составил список своих технических способностей и записал их по группам. Например:

- SQL, SQLite, MySQL;
- JSON, XML;
- etc.

Так я проработал примерно полгода и после очередного удачно выполненного проекта мой заказчик меня удивил. Его сообщение было похоже на:

«Вы хороший исполнитель, с вами приятно работать, но у вас жутко неудачный профиль, хотите я вам помогу?»

Если учесть, что клиент был американцем и по специальности маркетолог, то я сразу согласился.

После этого вместе сухого списка моих способностей в моем профиле красуется довольно большое количество текста. Суть информации обо мне не изменилась, однако она приобрела иную форму, форму рассказа.

Hi, My name is XXX YYY. In my portfolio, are a few of the programs that I've developed. I believe my strong points are my Creativeness and Punctuality. My #1 goal will always be to meet your needs and deadline. When working on a new project, I like to speak with the client, so that I can have a clear understanding of his/her needs and vision of the project. I'm honest and fair. Since 2010, I'm programmer in CRDF project for the visualization of meteorological data. Developing UI (Eclipse RCP) and server (big data, cluster programming, high load).
Also from 2011, I develop Android applications and games.
Please take a look at my work history for comments from other clients. Thank you in advance for your time and consideration. I look forward to working with you soon.
I have a Bachelors in Software Engineering from Donets'k National Technical University, in the Ukraine. Listed below are my experience and skills.
- Android (2.x & 4.x) : Fragments API, Location and Sensors API, SQLite, UI, Services, Maps ,ActionBarSherlock, Parse.com, admob, etc;
- Java Core: Java Core, Multithreading, Collections API, etc;
- Frameworks: Eclipse RCP, JUnit;
- Core web: XML, JSON, HTML/CSS, JavaScript;
- IDE: Eclipse;
- OS: Linux, Windows, Mac OS X;
- VCS: Git, Mercurial, SVN;
- Bug/Issue trackers: Jira, Assembla, Redmine;
- SQL;
- UML.


Список технологий/способностей:

Я добавил все, с чем хоть чуть-чуть знаком. Зачастую при поиске кандидата заказчики устанавливают фильтры на определенные технологии. Популярные технологии можно посмотреть в описании работы, в последнее иностранных биржах ввел возможность заказчикам указывать необходимые для задачи способности.


Тесты:

По моему субъективную мнению, тесты на биржах абсолютно не отражают реальную картину знаний. Заказчики тоже редко смотрят на них, хотя и иногда фильтруют в поиске по балу теста. Так как тесты занимают слишком много времени, я сдал несколько тестов, чтобы попасть в Top 30%. Хороший результат по профильной технологии даст заказчику уверенность, что я хоть немного разбираюсь в теме. Однако, когда у меня стало больше 3-4 выполненных проектов, тесты стали не так важны.


Employment History/Education/Other Experience:

Мне этот пункт кажется совершенно бесполезным, но для того, чтобы профиль не был пустым, я заполнил и их тоже.


Портфолио:

Не сильно раздуваю его, 10 работ вполне достаточно.

Upwork portfolio

Описание работ достаточно маленькое, главное внимание заказчиков — к количеству и к скриншотам. Неплохо так же указывать ссылку. Особое внимание к скриншотам: добавить фон и макет телефона дело 5 минут, но какой эффект!


Уровень английского:

Однозначно нужно ставить как минимум 4-й уровень (Conversational). Извиниться и отказаться от работы вы всегда успеете, а при низком уровне потеряете большое множество потенциальных заказчиков.


Группы:

На мой взгляд, группы выглядят довольно престижно и выделяют вас среди остальных. Получить их легко — можно просто вступить в различные группы и участвовать в конкурсах иностранных биржах.


Фиксированная и почасовая оплата


Фиксированная оплата труда

Upwork fixed-price project

При фиксированной оплате труда заказчик заранее устанавливает бюджет для проекта или для текущей фазы. Когда я предлагаю свои услуги, я также должен указать свою оценку стоимости работ. Обычно она совпадает с бюджетом заказчика, или является меньшей, если я действительно считаю, что работа стоит меньше. Просить меньше, чем бюджет заказчика, не стоит: клиент уже определил, с какой суммой он готов расстаться, зачем просить меньше?

Если поставить цену поменьше, то получится так называемый демпинг (и вы получите больше шансов получить работу). Да, это сработает с некоторой категорией заказчиков, но с ними лучше не связываться. Клиент, который выбирает исполнителя в основном по предложенной цене (если, конечно, она сильно не превышает первоначальный бюджет), скорее всего окажется жутко дотошным и скупердяем. И, таким образом, на него будет потрачено очень много времени и нервов.

Я пользуюсь немного другой тактикой: я всегда ставлю цену немного больше первоначального бюджета, примерно на 10%. Для меня не так важны эти 10%, как адекватность клиента. В cover letter я всегда объясняю, почему я поставил бюджет немного больше, и, если клиент готов обсуждать бюджет, то это большой плюс, значит в будущем он готов будет платить за мелкие доработки, за косяки со своей стороны etc.

При фиксированной оплате труда также есть возможность получить оплату до начала работ — это так называемый upfront payment (аванс). Я лично считаю, что получать деньги, ничего не сделав, — не хорошо, поэтому я никогда не прошу upfront payment. Однако и в этом случае можно обезопасить себя от обмана.

Изначально я разделяю весь бюджет на 70%/30%. Затем составляю смету на всю протяженность работ. Получается некоторое техническое задание + примерные сроки выполнение каждых модулей + их стоимость. Вся протяженность работ делится на промежутки(1-2 недели), и я выставляю цену на каждый промежуток отдельно, поровну поделив 70% между промежутками. Таким образом, меня могут обмануть только на неделю-две моей работы. Остальные 30% я получаю после финиша всего проекта, это гарантия того, что я закончу проект.


Почасовая оплата труда

Upwork hourly project

При почасовой оплате труда выплачивают деньги каждую неделю.

Засекать потраченное время нужно при помощи ПО иностранных биржах или путем добавления потраченного времени на сайте вручную (manual time).

иностранных биржах засекает время по 10 минут. Причем оно засекает промежутки, кратные 10, то есть xx:00-xx-10, xx:10-xx:20, … В течение этих десяти минут в случайное время делается скриншот вашего экрана, но только один скриншот в 10 минут. Таким образом, если в текущие 10 минут уже был сделан скриншот, то не стоит бояться, что он сфотографирует что-то еще. Не стоит также переживать, если скриншот сделан, когда вы занимались чем-то не тем: можно удалить его сразу на сайте и заказчик даже не узнает этого, просто вы потеряете деньги за 10 минут.

Также в течение 10 минут собирается информация об активности (движение мыши, клики мыши, нажатия на клавиатуру). На самом деле считаются только факты активности, а не ваши конкретные действие, так что достаточно раз в пару минут нажать стрелки на клавиатуре и поводить мышкой.

Стоит заметить, что таким обманом (отслеживание времени, когда фактически не работаешь) можно заниматься только тогда, когда ты реально быстро выполнил какую-либо часть работы и теперь просто хочешь получить адекватную оплату за нее. В противном случае ваши действия легко обнаружатся и вы потеряете клиента.

Некоторые клиенты запрещают добавлять manual time, что для меня жутко неудобно, потому что я часто отвлекаюсь и мне сложно все 10 минут уделить работе. Более того, это говорит о том, что клиент мне не доверяет, и я стараюсь с такими людьми не работать.

Оплата приходит раз в неделю. Каждый иностранных биржах отправляет отчет о вашей работе заказчику, он его пару дней проверяет и, если все хорошо, то еще через три-четыре дня деньги попадают вам на счет.

иностранных биржах ввел ожидаемый уровень стоимости почасовых работ для клиента (значки «$», «$$», «$$$»). Они определяют, сколько денежек клиент готов платить за каждый час.

Примерно:
$ — до 7$ в час
$$ — от 7$ до 15$
$$$ — более 15$ в час

Но оценка во многом зависит от клиента. Например, уровень $$$ для заказчика из США (больше 30$) и для заказчика из Индии (15$) или России (20$) - совершенно разные цены.


Уровень английского

Английский язык — основной на иностранных биржах. Для большинства специалистов в сфере IT это не является проблемой, но даже если это не так, то не стоит откладывать старт работы, чтобы выучить английский язык.

Примерно 99% всей работы на иностранных биржах ведется на английском языке. Конечно, встречаются заказчики, которые хотят общаться на русском или китайском, но это скорее исключение. Поэтому стоит приготовиться, что вся работа будет вестись на английском языке.

Основной способ общения для меня — email переписка. Немного реже используется skype-чат, но без него никуда. Будьте готовы, что вам придется вести живое общение с заказчиком, пусть даже и не в речевой форме. За полгода работы не было ни одного случая, когда клиенты требовали провести звонок по скайпу, однако возможность свободно общаться на английском предоставляет намного больше шансов взять дорогой проект и вести более продуктивную работу.

Если для вас тяжело писать на английском, то не стоит пытаться сначала выучить, а потом начинать работать. Этот навык приходит в процессе работы, хотя и придется в самом начале каждое сообщение загонять в переводчик.

Правильность написания, грамматика не особо важны, главное чтобы заказчик и вы понимали друг друга. Клиенты понимающе относятся к тому, что английский язык не основной для вас, главное, чтобы работу работали.


Cover letter (письмо заказчику)

На мой взгляд, самая важная часть поиска работы на иностранных биржах — грамотно написать cover letter. Все в нескольких предложениях необходимо убедить заказчика, что:
— я справлюсь с заданием;
— я полностью понимаю ТЗ;
— со мной легко общаться и взаимодействовать;
— не будет непредвиденных ситуаций;
— … можно продолжать очень долго.

Рассмотрю пример одного из моих cover letter (прошу прощения за английский), который дал мне один из самых прибыльных проектов:

Job description:

Our goal is to build an Android library which other app developers will use to speed up their app.
The scope as described in that doc is still under change a bit, which means that features are added every now and then. Everything in there currently is highly likely to stay in scope.
We want to make a modular system where it is easy for different developers to work on it, concurrently even. First phase
In the first phase of the project, we want the following chunks developed.
1) Basic skeleton (http client) - This is a wrapper (or clone) of HTTPUrlConnection. Does everything HTTPUrlConnection does. Each request/response should be logged along with timing information into some kind of database on the phone. This should also keep track of requests in flight.
(By now the lib should act as a regular http client, with things going into logs)
2) Plug in a custom caching solution which is based off HTTP/1.1 specs ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html ). The http client would do its own cache lookups before sending requests over the wire.
(By now the lib should act as a http client with disk caching)
3) Request collapsing - the http client should keep track of requests in flight. If a request is made for a URL where another request is in progress for the same URL, the client should block the second request until the first is finished, and serve both callers the same response.
(Now if the user accidentally makes multiple (GET) requests for same resource, only one real request would go over the network)
4) URL rewrite module - This should provide a function where given a URL, the function would run some operations to return a new URL. So whenever the http client wants to make a request, it would check with this module for the re-written URL.

Cover letter:

Hi, I am Yevhenii from Ukraine(UTC+2).
Quick introduction:
1) Basic skeleton (http client) - i was create android apps for website based on soap/rest and xml/json
2) Plug in a custom caching solution which is based off HTTP/1.1 specs - i have experience in caching, but on based on HTTP specs
3) Request collapsing , 4) URL rewrite module - I can imagine how to do it, but need more information
Also, I read google docs and this is a good technical requirements, and I am ready to explore deeper on interviews
I am very interested in this project because I like to program in java for android, but I do not like to deal with the UI.
In my profile, you can see portfolio already completed works, but it is not a complete, because last year I worked as android programmer for the outsource company with NDA, I can not share projects I worked on in this time(11 projects).
One of these projects - was android library for web site based on the rest, the other on the basis on soap. More than two years, I was the project developer cwikience application (included in my portfolio), where on java i implemented own language of communication server and client(based on SQL).
Also, i have experience in java libraries for network communication and web, and integrating it's in android apps.
For this project, it would be wise to use the unit tests, I can fill the same experience in this.
My rating - 25$, but I only have one feedback on odesk, so I work more for feedback, rather than money. We can start with 20$ per hour.
From the time I was ready to eliminate research time if they were going to take a long time.
I am ready to test job if needed.
Also I have experience with many cvs and bug-tracking system and I will share current progress with you such often as you want
Kind regards

Далее идет обсуждение технических моментов.

Выделю основные моменты, которые считаю важными:
— исходя из описания работы, клиент хорошо технически подкован, а значит, необходимо показать, что ваш уровень не хуже;
— более того, у клиента есть определенные тезисы по работе, стоит сразу задать по ним вопросы или высказать свое мнение, тем самым вы покажите, что разобрались в теме;
— если описание содержит ссылку на какой-то большой технический документ, то стоит обязательно его прочитать и в cover letter показать, что вы изучили проблему клиента от и до;
— я показал, что имею личную заинтересованность в проекте. На самом деле это 100% правда: я берусь только за те проекты, которые мне действительно было бы интересно делать, иначе работа превращается в сущий ад;
— в тот момент у меня в портфолио было немного работ, поэтому я сослался на NDA(соглашение о неразглашении) которое не дает мне показать большое количество собственных работ. Это было отчасти правдой, так как в тот момент у меня было несколько успешных проектов, которые все еще были под NDA;
— стоит также указать, что вы уже делали подобный проект в прошлом, не обязательно его показывать, но сказать стоит;
— далее, я понизил свой рейтинг, что на самом деле было неправильно, но в процессе работы с ними я повысил рейтинг до 30$/час; — готовность сделать тестовое задание — гарантия клиенту, что вы адекватный человек и сможете выполнить работу. Как правило, никто тестовое задание не дает;
— в своем сообщении я показал, что очень хорошо разобрался в проблеме клиента.

Статья написана по материалам моего блога про фриланс – jff.name. Также на данном сайте вы можете найти дополнительные материалы по фрилансу.