Удаленная работа программист java. Мой путь программиста. От студента-QA до удаленного Java-разработчика

Viber OUT 04.04.2019

FundCount - Зеленоград

70 000 - 180 000 руб.

...принятия инвестиционных решений управляющими. Продукт реализован на Java 8 по классической трехзвенной архитектуре. В состав ERP решения ... ...Испытательный срок - 2 месяца Возможность работы удаленно 1 день в неделю Гибкий график работы для «жаворонков» и «сов ...

12 дней назад

ИнЭкс - Москва

...Обязанности разработка ПО с использованием языка программирования Java и Java-технологий, web-разработка участие в работах по технической поддержке и развитию высоконагруженного Web-портала: участие в согласовании архитектуры; анализ дефектов и фича-реквестов ...

26 дней назад

101XP - Москва

...издательство игровых приложений, приглашает на работу backend- программиста. У нас вас ждут интересные задачи и работа с лучшими играми ... ...аудитория игры - весь мир). Требования: Отличное владение Core Java; Опыт разработки клиент-серверных и многопоточных приложений ...

13 дней назад

Объединённая компания РУСАЛ - метро Парк Победы, Москва

...ОК РУСАЛ приглашает кандидатов на вакансию Java Программист. Обязанности: Разработка, сопровождение и доработка программного кода Модели* на языке java; Создание web-интерфейса Модели для администратора системы; Доработка и корректировка структуры ...

1 день назад

Управляющая компания Помощь - Москва

1 905 руб./год

...Ubuntu, CentOS и др. Опыт работы: sql (mysql, jdbc), git Желательно опыт работы: docker Знание технологий Backend: o java, kotlin, С#; o spring (boot, mvc, web, data, security, thymeleaf). Знание технологий Frontend: o android support library ...

4 дня назад

Организация Агат, ФГУП - Бутырский р-н, Москва

...Наши ожидания Вы обладаете знаниями: основных алгоритмов и шаблонов проектирования ПО; Java 1.8, Spring framework, OAuth, ReactJS, Material UI, SQL, OSGi. Вы умеете: применять Maven/Gradle; писать unit тесты; применять паттерны проектирования ...

4 дня назад

Финстарлабс - Румянцево, Москва

100 000 - 150 000 руб.

...является разработчиком универсальных программно-аппаратных комплексов. Обязанности: 1. Разработка веб- и серверных приложений на Java с использованием Spring, Hibernate, AngularJS, Web Services, СУБД Oracle и MySQL. 2. Составление проектной документации, ...

1 день назад

ВТК Мегалит - метро Электрозаводская, Москва

1500 - 1700 $

...В небольшую команду по разработке высокотехнологичного продукта требуется Java программист для разработки проектов на Spring Framework + JPA. Проекты храним в git, а в качестве БД используем mysql и postgresql. Требования к знаниям: Java Spring ...

10 дней назад

ЛАНИТ-ТЕХНОЛОГИИ - Москва

1 - 2 руб./год

...проектов в авиастроении, двигателестроении, транспортном машиностроении, приборостроении. Требования: Опыт программирования на Java; Уверенное знание Eclipse как IDE и как платформы для построения приложений (Eclipse-RCP); Опыт написания плагинов для ...

11 дней назад

САТЕЛ, Группа компаний - Москва

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

12 дней назад

АМГ Бизнес Решения - Москва

Обязанности: Ведение рабочего процесса в рамках внутренней инфраструктуры: в системе управления версиями исходного кода(Git) Автоматизация сборки проектов(Gradle) Требования: Отличное знание Java2SE Опыт работы с JUnit/testNG, Spring, JMS, JDBC, SOAP...

10 дней назад

РОССИЙСКИЙ НАЦИОНАЛЬНЫЙ КОММЕРЧЕСКИЙ БАНК - Москва

...Обязанности: ~ Разработка и развитие платформы online-сервисов, а также веб- и серверных приложений на Java. Стек технологий: Back для платформы написан на Java, Camel, Spring. Движок BPM, используется Activiti (в том числе Groovy скрипты). ...

10 дней назад

Аптечная сеть 36,6 - Москва

130 000 руб.

...Крупнейший фармритейлер ПАО "Аптечная сеть 36,6" приглашает кандидатов на позицию " Программист Java" В ваши обязанности будет входить: - Анализ бизнес-требований направления "интернет-аптека"; - Разработка бизнес приложений на платформе e-commerce; - Разработка ...

5 дней назад

Тубокс Технолоджи РУ - метро Калужская, Москва

150 000 - 250 000 руб.

...легкого и увлекательного шопинга «в 2 клика» через интернет и на мобильных платформах. В связи с этим мы открываем вакансию: Java программист Обязанности: Участие в разработке marketplace tobox.com; Участие в разработке серверной части (back-end) ...

15 дней назад

Плорум - Москва

40 000 руб.

...Обязанности: Разработка новой Enterprise системы с нуля на Java Проектирование и архитектура проекта Разработка офлайн/онлайн клиентов Разработка сервисов Фиксирование и документирование доработок в Jira Требования: Законченное высшее ...

20 дней назад

Luxoft - Москва

...частный банк. Мы занимаемся развитием фронт решений для автоматизации процессов Розничного и Корпоративного Бизнесов на современных Java платформах Responsibilities: Участвовать в Банковских проектах реализации новых продуктов и услуг; Обеспечивать развитие ...

Привет Хабр! В этой статье я хочу рассказать о своем пути в области IT. На данный момент он занял у меня уже 6 лет, и еще отнюдь не завершен. Я начинал как QA инженер еще будучи студентом, а сейчас я работаю удаленно через Upwork на довольно крупную американскую компанию. Нет смысла указывать конкретные компании, в которых я работал, поэтому все названия будут в стиле “вот эта вот” и “другая”.

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

Этап 1: QA Engineer

Я начал работать QA инженером (пишу именно это умное слово, а не “тестировщик”, поскольку в трудовой стоит именно эта запись) летом 2010 года, тогда я перешел на 4й курс университета. Университет весьма уважаемый, впрочем, это не имеет значения.

Я твердо решил стать разработчиком, когда мне было лет 12. Тогда у меня еще не было компьютера, но была замечательная приставка СЮБОР, позволяющая писать простейшие программы. Но спустя 8 лет я стал тестировщиком… то есть, простите, QA инженером. Дело в том, что мне поначалу довольно тяжело давалось программирование, и я не мог схватить как следует идею ООП, да и с функциональным программированием у меня было тоже довольно посредственно.

Итак, я устроился по профилю, довольно близкому к разработке, и это меня утешало. К тому же, мануальным тестированием я занимался крайне мало, потому что мой лид практически сразу решил меня бросить на авто-тестирование. Спасибо ему большое за это! Я писал авто-тесты на Selenium WebDriver, используя Java. В процессе написания скриптов я познакомился с такими штуками, как JUnit и Eclipse. А параллельно почитывал книжку по Java – довольно хреновую, но определенные знания я все же почерпнул из нее.

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

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

Еще полгода я занимался саморазвитием. Я вышел на разговор еще раз, а параллельно сходил на собеседование в другую компанию. И – мои труды были вознаграждены! Ребята с проекта сказали, что я сильно вырос, и что, вероятно, смогу перевестись в разработчики через месяц. А еще через неделю мне позвонили из другой компании и поздравили – ведь они готовы взять меня на позицию Junior iOS Developer! До сих пор для меня загадка, почему именно iOS, ведь я собеседовался на Java и отвечал на соответствующие вопросы. Но знаете, что я сделал? Я отказался, ведь меня должны были перевести в разработчики уже через 3 недели!

Конечно, никуда меня не перевели. Примерно в это время я пошел на курсы Java-разработчиков в третью компанию, а через 3 месяца уволился. Курсы должны были закончиться спустя 2 месяца после моего увольнения, но я верил в то, что меня, как одного из лучших студентов, возьмут в штат. И не зря.

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

Этап 2: Java Developer

Да, меня взяли разработчиком летом 2012. Поначалу это была практически эйфория – ведь я теперь буду разрабатывать, и совсем-совсем не буду заниматься неинтересным мне тестированием! Мне нравилось это время.

Сразу по приходу в компанию я попал на бенч, потому что компания не смогла сразу же определить меня на проект. На бенче я сидел около двух недель – в это время я занимался простеньким учебным проектом, где я мельком познакомился со Struts2 и Mercurial. Затем мне написал мой Resource Manager с радостной новостью, что меня готовы рассмотреть на настоящий, боевой проект! Там уже работал ведущий разработчик, и ему требовался смышленый товарищ, но желательно уровнем повыше, чем junior. И еще здесь была ужасная деталь – мне необходимо было пройти собеседование по скайпу с человеком из Москвы! Наверное, как и большинство неопытных новичков, я паниковал от одной только мысли о собеседовании (это сейчас мы рассматриваем это как приятное времяпровождение, где можно выявить пробелы в знаниях, верно?). Буду краток – собеседование я прошел неплохо, и даже написал Ping Pong на двух потоках в качестве тестового задания. Параллельно со мной собеседовали еще одного разработчика с бенча, но в итоге предпочтение отдали мне. Скрывать не стану – мне было очень приятно, особенно на фоне новости, что хотели брать хоть сколько-нибудь опытного человека.

Поначалу для меня было все в новинку – ant, SVN, JDBC, ну и конечно же Java Core. Всего было так много, что я решил даже не заниматься дополнительно, ведь итак много всего изучал каждый божий рабочий день. В итоге я более-менее научился пользоваться некоторыми инструментами, но не имел четкого понимания, как именно они работают. Вследствие этого довольно часто я изобретал велосипед и усложнял вещи.

Совет: всегда досконально изучайте то, с чем имеете дело. Знание деталей поможет вам писать более эффективный и лаконичный код. Многие скажут, что для того, чтобы водить машину, необязательно знать устройство двигателя. Скажу лишь то, что это довольно бредовая аналогия, и что для меня разработчик – это не водитель, а механик. А вот ему уже все-таки надо знать хоть чуть-чуть, верно? Задача плохого разработчика – сделать, чтобы работало. Задача хорошего разработчика – чтобы работало эффективно. (Задача совсем хорошего разработчика – чтобы еще и код было приятно читать).

Около года я проработал на этом проекте. Я помню, что офис находился далеко от дома, и я решил ездить на работу к 7:30 утра по следующим причинам:

  • Не попасть в пробки
  • Успеть занять место на парковке
  • Мой лид приходил часам к 11. Следовательно, до 11 я мог читать книги по джаве – такой был мой план.
В это время я прочитал книгу Брюса Эккеля “Философия Java” и первый том книги по Java Кея Хорстмана и Гари Корнелла. Честно говоря, чтение давалось с трудом. Думаю, это из-за того, что я не до конца представлял, что произойдет после того, как я их дочитаю. Я не особо представлял себе свое будущее, были лишь размытые цели типа “стать хорошим разработчиком”.

Совет: всегда ставьте цель при прочтении книги. Прямо так и спросите себя: “А зачем я читаю эту книгу? Что я хочу узнать после ее прочтения? Как мне это поможет?”. Простое чтение быстро становится рутиной, которой заниматься хочется все меньше со временем.

По различным причинам проект свернулся, и где-то летом 2013 я попал на другой проект. Пожалуй, худший проект за всю жизнь. Я ничего не имею против SAP, но этот проект был на SAP. Я не помню очень много – наверное, мой мозг нарочно оградил этот участок памяти, чтобы защитить меня, поэтому опишу лишь вкратце, что там было:

  • Мы туда попали вдвоем с другом, с которым вместе ходили на курсы. Это плюс. Единственный.
  • Сами мы занимались правками JSP страничек и Struts классов. А на стороне ABAP сидел лодырь, правки от которого мы могли ждать часами. Простейшие правки.
  • JSP странички содержали практически всю логику приложения.
  • Отвратительное подобие менеджера проекта, который раз в неделю появлялся в скайпе и спрашивал: “Ну как, все хорошо?”. Следовательно, все проблемы с заказчиком мы решали сами.
  • Невозможно было сразу увидеть результаты своих правок. А деплой мог тоже длиться часами, к тому же деплои нужно было согласовывать.
Проект длился всего 2 месяца, но мы успели почерпнуть массу эмоций.

И вот, где-то в 2013 году, я попал на уже настоящий Enterprise. Там я познакомился с Maven и рядом продуктов IBM: WebSphere, RAD, DB2. Что мне особенно понравилось, так это то, что я плотнее познакомился с JavaScript и jQuery (тогда его еще вроде как использовали). А еще там был очень суровый самописный аналог Hibernate. Это объяснялось тем, что Hibernate “тормоз”, а нам нужен был реактивный механизм ORM, который мгновенно положит записи в базу и заберет их оттуда. Не сказать бы, что я с этим согласен, но на тот момент это вполне могло иметь смысл – система имела миллионы запросов ежедневно, поэтому дело осталось за JDBC (если вы не из мира Java, то JDBC – это Java DataBase Connectivity, просто механизм взаимодействия с базой без каких-либо преобразований записей БД в объекты).

Где-то спустя полгода я начал понимать, что застаиваюсь, поэтому попросил перевести меня на другой проект. Я так и мотивировал эту просьбу: мне проект надоел, он довольно древний, а мне хочется чего-то нового. Руководство отнеслось нормально, и спустя месяц я попал на еще более древний проект. Тогда я решил что пора принимать более решительные меры. В целом цель была достигнута – я стал разработчиком, но надо ставить новую цель – стать хорошим разработчиком и работать с современным стеком, двигаться дальше. А еще я тогда решил, что нужно заниматься своими проектами, потому что на одной теории далеко не уедешь. В это время я и перешел в новый этап.

Этап 3: Смена работы и свои проекты

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

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

  • Собеседование. Меня собеседовали не в переговорке, а в обычном кабинете, где сидели и работали люди. Думаю, это напрягало не только меня.
  • Переработки. Я пришел как раз в период аврала, и спустя 3 рабочих недели мне пришлось целый месяц выходить по выходным. За это я получил компенсацию за полтора рабочих дня по ставке один к одному с формулировкой: “Ну ты же ничего полезного особо не сделал, проект не знаешь еще”
  • Процессы. Точнее их отсутствие. У нас была Jira, но ей никто не пользовался. Активности отмечались в гуглодоке, а задачи ставились либо по скайпу, либо менеджером по телефону. Само собой, все всегда забывалось, и что-то не делалось или делалось не так.
  • Отвратительный офис с маленькой кухней, сделанной из комнаты, и общим на этаж туалетом.
  • Требование появляться в офисе в 10 утра. Жутко неудобно, так как по утрам я люблю заниматься спортом. Конечно, можно вставать пораньше, но это уже я не люблю.
  • Все мои предложения по улучшению процессов не возымели эффекта.
  • Учиться было особо не у кого – не было действительно сильных разработчиков.
Чем дольше я работал, тем отчетливее понимал, что этот этап будет недолгим. На этом проекте я познакомился с GWT, Spring и более плотно поработал с Hibernate. Собственно, GWT мне очень не понравился, я посчитал его абсолютно недееспособным на фоне современных инструментов. Ну, и дополнительно изучать GWT я тоже не стал. Оговорю сразу, что это лишь мое впечатление от столкновения с ним.

Зато в это время у меня появился общий с друзьями небольшой проект. Проект был довольно простенький, но все же было интересно его проектировать и реализовывать. Я ближе познакомился с JavaScript, Spring, Hibernate и JUnit.

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

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

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

P.S.: без фанатизма. Я не пропагандирую идею прыгать с места на место в попытках поднять свою позицию и оклад. Прежде всего, нужно постоянно чему-то учиться и применять знания во благо компании. Но если вы ощущаете, что застаиваетесь, что ваши знания не востребованы или что на вас ездят – тогда перечитайте совет выше.

Этап 4: Возвращение на родину

Итак, я вернулся в ту компанию, которая дала мне старт как разработчику. Мне попался довольно крупный проект с Big Data, и мы использовали вполне современный стек: Spring, Hadoop (и его экосистема: HBase, Oozie etc), Maven, TestNG. Вероятно, многие посчитают Hadoop уже не таким современным, но это не умаляет современности самого направления. А еще именно тогда я познакомился со Slack и очень оценил этот инструмент.

Наш проект состоял из менеджера и двух Java-разработчиков в нашем офисе, а также менеджера и Java-разработчика в США. Вернувшись, я сразу почувствовал всю разницу между хорошими процессами и их отсутствием:

  • Мы использовали Jira и работали по Agile.
  • У нас были действительно короткие стендапы по утрам и не было затянутых нудных коллов.
  • Было чему поучиться у второго разработчика в нашем офисе.
  • Адекватные код-ревью.
  • 3 раза в неделю у нас были короткие созвоны, где менеджер предоставлял нам краткую выжимку того, что происходит в компании и на соседних проектах, а также планы по проекту.
Работая на этом проекте, я уже имел определенный опыт и проявлял определенную инициативу. И на этот раз все мои предложения выслушивались, при необходимости корректировались и принимались. Впервые я принял участие в проектировании модуля, а затем и реализовал созданную мной же артихектуру. Конечно, мои коллеги помогали мне выявлять подводные камни, но, тем не менее, я был достаточно мотивирован и ценил тот факт, что меня воспринимают как хорошего разработчика и общаются на равных. Почти полгода я работал и не знал бед, но потом все равно что-то начало меняться.

Я внезапно почувствовал острое желание работать ближе к клиенту, возможно даже заняться front-end. Мне начало жутко надоедать работать с Big Data. Мне надоело ходить через несколько удаленных рабочих столов на сервер. Мне надоело запускать свой Job и затем подолгу копаться в логах и анализировать их. Ни в коем случае не назову это скучной и нудной работой, но что-то изменилось. То, что поначалу показалось весьма новым и интересным, спустя время начало надоедать и становиться рутиной. Я пошел к начальству и честно все сказал: я хотел попробовать front-end. А параллельно с этим отправил “шальное” резюме на случайно увиденную, но очень интересную вакансию.

Руководство снова выслушало меня и обещало подумать. А я в это время сходил на собеседование и получил тестовое задание. И, скажу честно, тут я начал метаться. С одной стороны, вакансия была очень заманчивой, а с другой – не хотелось уходить из хорошей компании, которая мне доверяла, спустя полгода после возвращения. На тестовое задание выделялось 2 недели, но я тянул месяц. В конце концов меня позвали на второе собеседование и сделали оффер.

Если кратко – я принял предложение, после чего меня ожидал неприятный разговор с RM. Неприятный потому, что, как я и предполагал, я услышал что-то вроде “как тебе доверять после таких поступков”. Но я решил не принимать это близко к сердцу, ведь за эти полгода я принес компании определенную прибыль, да и проекту помог. Забегая вперед – я не жалею об этом.

Совет: еще раз – вы никому ничего не должны. Если есть возможность – не упускайте ее. Это ваше развитие. Но отнеситесь с пониманием к работодателю – сделайте все возможное, чтобы ваш уход не сказался на проекте. Работайте усердно в эти последние 2 недели и закройте все свои задачи, создайте документацию по вашим наработкам, если еще этого не сделали. Посоветуйте кого-нибудь на ваше место. Но возможность не упускайте.

Этап 5: RoR Developer

Да. Я начал писать на Ruby on Rails. Не буду подробно писать о процессе изучения нового языка, лишь самое главное:
  • Меня практически сразу бросили на боевой проект
  • Коллега по проекту, также бывший Java-разработчик, активно помогал и рассказывал об особенностях языка
  • Руководитель направления также весьма активно участвовал в моем развитии и обучении
  • Я прочел документацию и несколько книг по теме
Как видно, в этой компании все было весьма неплохо. Где-то полгода мне потребовалось, чтобы перестать испытывать какие-либо сложности в процессе написания кода. Еще полгода потребовалось, чтобы лучше изучить тонкости языка и начать писать по Rails Way.

Итак, поздняя осень 2015. Я уже полгода работал в новой компании, зарплаты хватало на все, проект хоть и не самый интересный, но для меня было много нового, следовательно я не скучал. На проекте я познакомился со множеством интересных инструментов: некоторые сервисы Amazon, Heroku, rspec и множество гемов для rails. Но самое главное – я пощупал динамический язык программирования. И если поначалу было абсолютно ничего не понятно, то спустя полгода началась эйфория от этой магии. А потом снова стало непонятно.

Мнение: динамические языки это очень круто. Можно буквально в одну строку писать мета-код, который на лету напишет другой код, который сделает кучу работы. ActiveRecord – круто. С другой стороны, когда эйфория прошла и настали серые будни, эта магия начала нравиться все меньше. Временами код было тяжело читать и неудобно дебажить. В конце концов я пришел к выводу, что лично мне статические языки нравятся больше, на них приятнее писать. Хотя, дело лишь в прямых руках, которые я не до конца успел отрастить за год работы на RoR.

Итак, прошло полгода, как я пишу на Ruby on Rails. Примерно в это время я заинтересовался Upwork. Но заказ я нашел на JavaFX и занимался им около месяца по 10-20 часов в неделю. Понравилось, но график 40 + 10(20) начал утомлять, поэтому после окончания проекта я решил отдохнуть от Upwork пару месяцев.

Затем я нашел другой проект, уже на Ruby on Rails. Ставка была $25/h, а также было условие: работа fulltime. Длительность – от месяца до трех. Если кратко – я работал месяц, дальше проект свернулся по причине стартапа. Это было очень тяжело – первую неделю я отработал все 40 часов вдобавок к тем 40 на основной работе. Далее я работал 35, 30 и 25 часов во вторую, третью и четвертую недели соответственно. Это настолько меня утомило, что я решил еще несколько месяцев отдохнуть от дополнительных проектов. Хотя, стоит отметить, заработал я вполне неплохо за это время.

Итак, я решил сосредоточиться на основной работе, а по вечерам отдыхать либо заниматься самообразованием, а не работать на другой. Некоторое время продолжался такой режим – я не перенапрягался, изучал новое и жил спокойно. А затем проект отдали индусам, а меня кинули на… наидревнейший проект на старых Ruby и со старой легаси-системой, которую мы поддерживали. Видимо, это мой рок – работать на старых проектах. Вдобавок к этому я начал все отчетливее видеть косяки в процессах компании, на которые не обращал внимания поначалу. Основные из них: скудный набор проектов и полнейшее отсутствие аналитики, а также отсутствие тестировщика на проекте.

Совет: если в вакансии в разделе “ожидаем от соискателя” фигурирует пункт “умение работать, не имея законченных требований”, то лучше знайте перевод: “У нас в компании нет аналитики, поэтому ее следует провести вам. И реализовать задачу потом тоже по своим же требованиям”.

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

Я решил вплотную заняться Upwork.

Этап 6: Fulltime на Upwork

Я немного поискал и нашел подходящую мне работу. Это long-term сотрудничество с довольно крупной американской компанией. Первые 3 недели я работал параллельно на двух работах, а уволился лишь после того, как получил email с указанием того, что работодатель очень доволен качеством моей работы, и классным задачам и морю веселья для меня не будет конца.

На данный момент я работаю здесь чуть более 2 месяцев, и пока что меня все устраивает: стек, процессы и коллектив. Западный стиль управления мне нравится больше. Мне нравится слышать слова “amazing”, “fantastic”, “awesome” при оценке моей работы. Само собой, со своей стороны я тоже прикладываю максимум усилий, чтобы услышать эти слова.

Я не буду описывать, как найти работу на Upwork – на хабре полно статей на эту тему. Опишу основные, наиболее важные моменты на мой взгляд:

  • Заполнение вашего профиля очень важно. Это то, что работодатель увидит во вторую очередь.
  • Конечно, хорошо пройденные тесты вам на руку.
  • Cover letter крайне важно. Это то, что работодатель увидит в первую очередь. Укажите, кто вы и откуда, какой у вас часовой пояс, и готовы ли вы работать по бизнес-часам работодателя, хотя бы частично. Укажите свой опыт и стек, а также дайте понять, что вы хорошо знакомы со стеком работодателя. Не врите. Скиньте свой профиль на linkedin/github/stackoverflow. Если вы только начинаете и у вас пока нет репутации на Upwork – можете указать о готовности выполнить тестовое задание на пару часов.
  • Портфолио также будет отнюдь не лишним.
  • Работайте только с работодателями, у которых рейтинг стремится к 5 звездам. Читайте отзывы. Помните, что неадекватный клиент может подпортить вашу репутацию.
  • Кто-то рекомендует хвататься поначалу за любые заказы, будь то даже пятидолларовый фикс-прайс. Я не думаю, что выполнение дешевых заказов красит вас как опытного разработчика, поэтому я изначально брался только за почасовые заказы с прайсом не менее $20/h.
  • Избегайте «евреев».
По поводу последнего пункта приведу пример. Я как-то нашел неплохой почасовой заказ, а у клиента был хороший рейтинг. Закончилось это тем, что клиент сразу же попросил оценивать задачи в часах и сказал, что платить будет только за то время, которое проставлено как estimate. В итоге у нас случился диалог примерно следующего содержания:
– Эта задача может быть выполнена быстрее, чем за 12 часов. Я заплачу только за 10.
– Если вы меня наняли, то извольте руководствоваться моими оценками. Я очень подробно описал, почему это займет именно 12 часов.
– Я работал в прошлом разработчиком и кое-что понимаю. К тому же, я не согласен с тем часом, который вы выделили на риски. Его можно исключить.
– Эти часы нельзя исключать из эстимейта, так как мне необходимо поддерживать старый код – в процессе внедрения фичи что-то может пойти не так.
– Артем, вы же профессионал и должны понимать, что это бизнес – я плачу только за фактически выполненную работу, а не за ваши часы.
– Во-первых, ваш бизнес меня не касается. Вы тоже профессионал и должны понимать, что вы вкладываете деньги не только в фактически выполненную работу, но и в знание проекта разработчиком, который будет его поддерживать. Если я потрачу 12 часов на выполнение задачи, я буду ожидать оплату за 12 часов. Если потрачу 8 – оплатите мне 8 часов. Иными словами, я ожидаю оплату за все время, что я потрачу на ваши проекты. Во-вторых, у нас была договоренность о почасовой работе, а текущее развитие событий меня не устраивает.
– Хорошо, пожалуйста сделайте коммит всего, что у вас есть. Я найду другого разработчика.

Так что снова повторю – не бросайтесь на первый же проект, показавшийся интересным. Изучите сначала историю этого работодателя.

Позволю себе отойти от лирики и опишу основные плюсы, которые я вижу на текущем рабочем месте:

  • Укомплектованная команда: аналитика, разработка, QA, devops.
  • Работа по спринтам с четкой постановкой задач.
  • Заработная плата в 3,5 раза выше, чем на прошлом рабочем месте.
  • Работа из дома – для меня это плюс, так как не испытываю проблем с самомотивацией и дисциплиной.
Если честно, я не знаю, как долго небо над головой будет безоблачным. С одной стороны, работа в России в соответствии с ТК РФ выглядит надежнее. С другой стороны, пары месяцев работы удаленно хватит для создания очень комфортной подушки безопасности. На данный момент ничего не предвещает беды, работодатель имеет большой скоуп задач на много месяцев вперед, а моя работа его вполне устраивает. А еще с каждой неделей растет моя репутация на Upwork, так что я смею надеяться, что в случае необходимости я найду новую работу довольно быстро. Также добавлю, что я работаю строго по ТК РФ – я зарегистрировал ИП и плачу налоги.

Совет: не торопитесь. Суммарно за 4 проекта на Upwork я видел немало ужасного кода. Люди часто уходят на вольные поля, не получив достаточного количества опыта. Их банально никто не тыкает носом в их косяки и не говорит, как надо это делать правильно. Мой путь пока что занял у меня 6 лет, из которых 4 я посвятил разработке и постоянному самообразованию. 80% времени мной повелевали опытные и мудрые тимлиды, которые передавали мне частичку своего опыта. Не торопитесь уходить во фриланс/удаленную работу.

Заключение

Да, 6 лет – это немного. Но все же довольно длинный путь уже пройден. Я не жалею ни об одном своем шаге на протяжении этого пути. По большей части, эта статья – просто мои воспоминания и выписка основных моментов. А все советы, которые я позволил себе озвучить – это те советы, которые я дал бы самому себе, если бы мог. Но, тем не менее, я буду очень рад, если это подобие мемуаров кому-то поможет или вдохновит на что-то. Успехов!

Россия

...Какие знания для этого необходимы: MSSQL, MySQL уверенный уровень, опыт составления сложных запросов CMS: Joomla 3! базовые знания Java SE желательно (будет плюсом): система контроля версий: Mercurial (hg) yii2 framework опыт работы с js-фреймворками: Angular X (CLI), ...

3 дня назад

Blackbird Ventures, LLC - Россия

...От 3-х лет опыта разработки веб-приложений с использованием Java платформ; Опыт работы с PostgreSQL; Знание OOP, OOD, and и ... ...Опыт управления серверами приложений с Tomcat; Условия: Удаленка со свободным графиком Хорошая заработная плата (фиксирована в ...

3 дня назад

Litota Labs - Ульяновск

110 000 руб.

...кодовой базы. Пиши нам, если есть: Опыт разработки на языке Java не менее 3 лет, умение эффективно его использовать, знание ... ...удаленно (в часовых поясах от GMT+2 до GMT+6) или в ульяновских офисах. ...

28 дней назад

Altarix - Москва

...Мы ищем ведущего Java разработчика для работы на международном проекте. В задачи будет входить разработка платформы для автоматизации ... ...РФ Гибкий график работы, возможность периодически работать удаленно В офисе курсы английского, спортзал с душем, оборудованная ...

26 дней назад

«Почта Банк» - Ивантеевка, Московская обл.

Должностные обязанности: Java разработчик с частичной занятостью. «Почта Банк» и ООО «Мультикарта» приглашают к сотрудничеству всех, ... ...знаниями и навыками JAVA разработки. Работа сдельная, можно работать удаленно Основная задача для реализации, обязанности: Написание ...

2 дня назад

CONSORT Group/КОНСОРТ - Москва

2 013 руб./час

...логистической компании производим поиск. Требования: Знание java core 7/8 Знание spring 3.0 Знание и использование software ... ...013/2016 знание SQL умение разбираться в чужом коде Существует возможность работать удаленно или в офисе компании. ...

4 дня назад

RBK.money - метро Серпуховская, Москва

60 руб./час

...открывать лучшие фичи для мира opensource Наш основной стэк: - Java 8/11, Spring Boot 2, Postgres, Kafka, ClickHouse; (также на бэке ... ...скайп); - техническое собеседование с командой в компании или удаленно; - простое тестовое задание домой; - оффер. Всё. Плюшки ...

11 дней назад

Сайпикс - метро Арбатская, Москва

80 000 - 120 000 руб.

...телекоммуникационных компаний. Требования: Опыт работы с Java 7 и выше; Знание Spring framework и Hibernate; Git; ... ...задачи Мы предлагаем: Достойное вознаграждение; Комфортный график работы; Возможность работы удаленно; ...

6 дней назад

VOICE Communication - Владимир

2 009 руб./год

...мир к лучшему, то мы ждем именно тебя! Работать у нас можно удаленно или в уютных офисах в г. Москва или г. Владимир. Чем именно ... ...многоуровневых Web-приложений, с реализацией серверов на Java; ~ участие в определении и выборе архитектурных и технических ...

10 дней назад

СимбирСофт,ООО - Пенза

...нового. Пиши нам, если есть: Опыт разработки на языке Java не менее 2 лет, умение эффективно его использовать, знание ... ...между командами. Гибкий график работы. Возможность работать удаленно (в часовых поясах от GMT+2 до GMT+6) Оформление по ТК РФ. ...

18 дней назад

it-aces.com - Переславль-Залесский, Ярославская обл.

50 000 руб.

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

21 день назад

Электронный бот - Санкт-Петербург

150 000 руб.

...и мобильных приложений Требования: Опыт работы с Tomcat, Spring; Опыт работы с SQL; Опыт разработки REST API Условия: ~ Наш офис находится в центре Санкт-Петербурга, возможна работа в офисе, удаленно или удаленно в отдельные дни. ...

27 дней назад

Itella - метро Киевская, Москва

...Sonic ESB (Eclipse); Разработка информационных сервисов на Java. Требования: Опыт работы разработчиком; Знание SQL ... ...транспортом от м. Киевская), есть возможность работать из офиса в районе м. Киевская (шаговая доступность) или удаленно. ...

25 дней назад

R-Style Softlab (Эр-Стайл Софтлаб) - Новосибирск

60 000 - 100 000 руб.

...поэтому расширяем наши проектные команды! Мы ищем разработчиков Java middle и senior уровня прокачки. У нас Джавистам ... ...рабочий день, гибкое время начала рабочего дня (с 8 до 11). Возможна удаленка! Добровольное медицинское страхование, хорошие клиники и программы ...

27 дней назад

COMTEK Inc. - метро Василеостровская, Санкт-Петербург

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

18 дней назад

Септагон - Москва

90 000 - 200 000 руб.

...законченное высшее техническое образование; опыт работы с Java - от 3-х лет; опыт промышленной разработки на Java EE (очень ... ...резиденте инновационного центра "Сколково"; ~ возможность работать удаленно из любой точки мира, где есть доступ в Интернет; ~ или ...



Рекомендуем почитать

Наверх