Замість intro
Досвід розробки на PHP - 5+ років, Laravel - 4+, на фронтенді з реактивного працював в основному з Vue, місцями Liveware є досвід розробки телеграм-ботів в зв'язці з Laravel та Yii2 (адмін-панель). Останнім часом все частіше роблю мікросервіси на Python з використанням FastAPI (AI-асистенти, чат-боти, конвертори аудіо)
HTML/CSS/JS/jQuery/Bootstrap, SQL/NoSQL, Unix(apache/nginx), HTTP/WebSockets, Git, Jira/Asana/Trello, Agile(SCRUM/KANBAN) - все за замовчуванням. Чого не вистачає - можна буде доповнити, поставивши задачу)
Почав комерційну розробку в Samsung на C++, після трішки грався з C# на Юніті, в PHP стартував з розробки онлайн таблиць рекордів для ігор, і після вирішив ціленаправлено піти в web, чим і займаюсь вже майже 5 років (квітень 2024).
Для себе шукаю компанію, в якій зможу побачити результат своєї роботи в довгостроковій перспективі. Окрім базового Software Engineer цікавий розвиток в напрямку Staff SE та посади, які дають можливість оптимізовувати процеси в компанії з технічної точки зору, впливати на продукт та працювати з цілеспрямованою командою.
Бажаний рівень зп - від $3000, мінімально комфортний - від $2500 в залежності від посади та рівня відповідальності.
Контакти роботодавців та тімлідів з минулих місць роботи можу надати.
Скіли, проекти та досвід нижче.
PS: резюме оновлюю від джунівського, тому перелік складений як є)
Досвід
Нуу... колись я писав код на плюсах по темі інверсної кінематики для Самсунга, и навіть отримував непогану, як для студента, зпшку, але то було давно, неправда і мало кого цікавить...
PS: Хоча ось розробників Unreal Engine 5 через 6 років зацікавило, як виявилось)
Навчання, танки, дотан, супрімка, життя общажне, спроба попрацювати на 10+ нікому не потрібних роботок для студентів, та трішки геймдев. За цей час довелось прогати та кодити на C (мікроконтроллери), C++ (лабки), перекладати код с допотопного Basic на додинозаврський Fortran (уфф, краще не згадувати), а також лабати свої перші ігрові білди на C#
Робив замовлення по іграм ( Who I Am, Space Shooter, Football Head (multiplayer) ), в один момент дійшло, що без веба ніяк. Закупився онлайн-курсами по вебу, в тому числі php. Через тиждень забацав алгоритм автопідбору противників для своєї гри на php, ще через тиждень отримав своє перше замовлення на $250, яке зробив за тиждень. З цього моменту вирішив всерьйоз зайнятися вивченням PHP для потреб як геймдева, так і веба.
За цей час освоїв:
- PHP ООП (1 тиждень, був досвід в C++, C#)
- MySQL, SQLite, PostgreSQL
- HTML, CSS, JS, jQuery, Bootstrap
- Паттерни MVC, Singleton
- Laravel
З того, що дала мені робота в даній компанії:
- Досвід в проектуванні та реалізації архітектури реляційних БД з нуля
- Laravel Passport
- RESTful API
- Паттерни Factory і Chain Responsibility
- Yajra Datatables
- Vue.js
- Досвід роботи з клієнтами і складання тасків як для бека, так і для фронта
- Навичка спілкування на одній мові з фронтенд-розробниками :)
Пропрацював буквально 2 тижні, двіжок в задниці сказав рухатись далі :\
З того, що дала мені робота в даній компанії:
- Досвід розробки ботів для Telegram на Laravel і Yii2 з нуля
- Досвід роботи з готовими рішеннями (2+ роки розробки)
- Базові навички роботи з Cron
З того, що дала мені робота в даній компанії:
- Робота в команді с динамічним стеком (під кожен проект найбільш підходящі мови/технології)
- Розуміння основ мікросервісних архітектур, робота з монолітом (з перспективою подальшого розділення)
- Робота з Lucid-архітектурою, розуміння як можна безболісно переносити проекти з одного фреймворка на інший
- Більш глибоке вивчення паттернів проектування, робота зі Strategy, Facade
- Розробка і реалізація архітектури додатку по бронюванню білетів (аналог Busfor). Вперше зміг доказати сеньйору доцільність свого підходу на одному з етапів :)
- Доробка і підтримка проекту з мікросервісною архітектурою
- Доробка, підтримка і рефакторінг проекту з "еталонним говнокодом" (слова сеньйора). Через нестачу часу/проблем з підняттям тестового сервера доводилось працювати на проді і вчитися розуміти як не завдати замовнику тысячних збитків в процесі переписування окремих фіч. Так-собі досвід, але мене впевнили, що я після цього повинен бути безстрашним бійцем :|
- Робота з адмінпанеллю Vuexy на Vue.js. Кров'ю і потім познайомився з Vuex, AgGrid, дізнався що таке проміси, які проблеми з некогерентністю системи існують завдяки всім цим "зручностям" і як краще їх вирішувати
- Нарешті познайомився з PHPUnit і Docker
- В перервах нахапався трохи по криптографії та кібербезпеці :)
При тому, що спочатку прийшов на позицію звичайного міддла, з'явилася можливість вперше спробувати себе в ролі Team/Tech Lead компанії, що розвивається, де доводилося налагоджувати всі процеси з нуля і боротися за кожного нового розробника з керівництвом, аргументуючи важливість кожної позиції. Вивчив нюанси роботи безпосередньо з керівництвом у компанії на 30+ осіб, а також побачив, які бувають підводні камені управління IT-командою.
Чим займався, і що дала мені робота в даній компанії:
- Більш глибоке знайомство з apache/nginx та питаннями кібербезпеки
- Проектування архітектури високонавантажених мікросервісних систем, більш глибоке вивчення архітектурних паттернів
- Рефакторинг коду та зміна архітектури вже працюючої на проді системи без втрат по даних і трафіку
- Досвід проведення технічних співбесід, зокрема з розробниками рівня Senior, відповідальність за кожного прийнятого в компанію співробітника
- Досвід навчання мотивованих та немотивованих джунів, а також делегування навчання іншим міддлам
- Контроль працездатності підтримуваних систем і якості розробки своєї команди
- Досягнення в розвитку IT-відділу компанії з нуля до рівня ефективної взаємодії з іншими відділами
- Статус "супергероя" всередині компанії за здатність підтримки одразу на декількох фронтах :)
- Відпале бажання бути "супергероєм" :D
Прийшов за рекомендацією колег з попереднього місця роботи. Від початку працював в соло, під час масштабування так само розширив IT-відділ до 5 осіб, налагодив бізнес-процеси взаємодії веб-мастерів, дизайнерів та програмістів. Працював з дуже потужною самописною CRM-системою, яку довелось освоїти з нуля з майже нульовою підтримкою попереднього розробника без документації як такої в принципі.
Чим займався, і що дала мені робота в даній компанії:
- Ще більш глибоке знайомство з apache/nginx та питаннями кібербезпеки
- Більш явне розуміння нюансів масштабування високонавантажених систем вглибину та вширину
- Досвід розгортання інфраструктури під різні вертикалі
- Робота напряму зі складними SQL-запитами, без використання ORM
- Прокачування frontend і backend-розробників з рівня зелених джунів до рівня strong junior/middle
- Регулярне рев'ю коду молодших розробників
- Вирішення нетипових задач, пов'язаних з серверами, доменами та соцмережами, які не вирішують розробники класичних напрямків
- В певний момент зміг досягти рівня автоматизації процесів, який зменшив навантаження IT-відділу втричі, порівняно з першими місяцями розробки. Маркетологи могли робити необхідні їм речі на серверах та дивитись аналітику, без необхідності кожного разу пінгувати розробників, які могли цим часом займатися більш глибокими (довгостроковими) і цікавими задачами
Компанія, в якій вперше вдалося реалізувати свої ідеї щодо AI-асистента, отримати багато досвіду за короткий проміжок часу.. але з тайм-менеджментом і застарілими підходами в розробці якої змиритися так і не вдалось :)
Чим займався, і що дала мені робота в даній компанії:
- Інеграція одного з проектів компанії з сервісами OpenAI: автоматизація процесів на маркетплейсі за допомогою текстового/голосового асистента, робота як з CompetitionsAPI, так і з AssistantsAPI. Самостійна розробка плану, ризиків, побудова гнучкої інфраструктури з можливістю масштабування вширину, в залежності від навантаження на сервер
- Досвід роботи з платформою, написаній на морально застарілій архітектурі 12-річної давнини зі схованим ядром
- Розширення даної платформи для актуальних задач в ситуації, коли подібне розширення не закладалося її розробниками
- Вирішення задач, які неможливо гнучко вирішити на PHP
- Досвід написання мікросервісів на Python (FastAPI)
- Робота з аудіо (ffmpeg), вирішення проблем, які досі не вирішили на стороні OpenAI (декодування епплівських голосових)
- Прокачка в напрямку екстрактивної та абстрактивної суммаризації, базове знайомство з алгоритмами на основі графів, такими як Text Rank і Lex Rank (дані алгоритми необхідні при розробці чат-ботів на основі LLM для збереження контексту на великих обсягах даних)
- Координація і допомога фронтенд-розробникам при створенні чат-боту на фронтенді
- Допомога ПМам при вирішенні конфліктних питань з замовниками (успішно)