Software engineer
Основное
Не указано
Work ethic
Discipline, responsibility for my promises and actions.
Initiative: if I need something from a peer/manager, I just ask as accurately as possible or describe the essence of the problem.
The more communication within the team, especially between peers, the more efficient the work of the team.
Communicative skills
I am able to find a common language with almost any person in any situation.
Teamwork
Delegation (where possible), conflict management, holding negotiations, taking the interests of the parties into account.
I worked in small (2-3 people) and middle-size (10-20 people) teams.
Adaptability
I have learned to manage my time over the years of remote work – I can work in a cafe, at home, on the beach, and I perform my job efficiently and on time.
Problem solving
I know how to solve tasks.
The normal cycle looks as follows: analysis, problem/task localization (finding the subject area and approximate location), debugging, fixing, and testing.
Adequacy
I do understand that the goal of any commercial company is profit, not new fashionable technologies and programming languages.
English
Written language – I can freely communicate, read, and write. Spoken language is in the process of study.
Education
I study and improve my skills all the time. Recently studying here: Hexlet (the strongest continuing education courses in the CIS).
JavaScript
I use the latest version of ECMAScript (via NPM, Babel), I like FP style, and I can use OOP. I continue studying FP in this language.
I use React, React-native, Redux, and Redux-Sage.
Previously, I worked with Angular (versions 1, 2).
I had an experience working with WebSockets through socket.io, actioncable, and web-api — they were used for developing an online learning video platform.
Ruby
I started working with Ruby 1.8 and Rails 3.2; I still use this language and framework of the latest versions now. I have experience in migrating from various versions of Ruby and Rails.
I know how Multithreading (real JRuby and green in MRI) work, as well as deadlock, Sidekiq and Activejobs.
I have experience of working with caching (low-level, SQL, view, fragment), I used websockets via actioncable.
I used Rails for API (with Grape) for a full-scale application (front+back).
I worked with servers Puma, Unicorn, Thin (manually configured them using together with ngnix).
Python
I used python with Flask in one backend API project (6 months of experience)
SQL
With and without ORM, I can write complex queries with joins/attachments.
I like postgresql, I used pgbouncer for management/balance pf connections (in case of high concurrence of requests).
I understand how SQL deadlock works.
GIT
I worked with github, bitbucket, gitorious, git-flow, complex merges with conflicts, rebases, and through the PRs.
OSS
Several times, I participated in open source (rails, actioncable-examples, yegor256/0pdd).
HTML/CSS
CSS3, HTML5, SASS, LESS
Early in my career, I imposed a lot (from PSD), I do it professionally.
UNIX
Worked a lot with POSIX-based OS (Linux/Mac): Slackware, Gentoo, Debian, Archlinux etc.
I understand sockets, filesystems, processes, HTTP, TCP/UDP.
I can configure domains DNS/NS/MX record, or any server for almost any web needs.
I worked with docker, nginx, various web servers, VPS/VDS, and cloud-based servers.
Tests
I try to work using TDD. This way, it is possible to think in abstractions and interfaces even before implementation, which results in increased speed of building the architecture and improving the quality of the code.
I use Minitest/RSpec (Ruby) and Jest/Enzyme (JS).
Software design patterns
I know, and try to use where appropriate the following: SOLID, GRASP, KISS
Third-party APIs
Semaphore, Newrelic, SMS Direct, Postmark API, Bugsnag, Vexor, Honeybadger.
Task managers
Basecamp, Pivotaltracker, Redmine, Jira
Работа
Backend development (graphql API), code architecture/design, 3rd party API integrations (Citizens bank, Flxpoint)
Frontend development: I was writing a chrome extension, react client app, react native mobile app.
Full-stack development: rails, react, python (flask), react native, devops.
Работал над всем проектом под руководством CTO Doug Rogers.
Обилие legacy-кода компенсировалось свободой выбора технологий, библиотек и подходов к разработке.
Задачи:
1. Было несколько приложений, которые использовали одну БД через API на Rails (приложение загрузки фотографий, клиентская панель на React/Redux, менеджерская панель с rails views). Начал вставлять туда независимые модули на React.
2. Интеграция и адаптация FullCalendar в менеджерскую панель, создание нового интерфейса поверх функционала данной библиотеки.
Планирование задач и оценка рисков для команды разработчиков, составление отчетов о проделанной работе, управление всей технической инфраструктурой (серверы, сервисы сбора ошибок, корпоративная почта, sms-сервисы, сервисы аналитики).
Проведение собеседований с кандидатами (выполнял функции HR-отдела — от составления вакансии до начала испытательного срока).
Планирование командировок и контроль обучения сотрудников (половина рабочих часов пятницы давалась на обучение, оплачиваемое компанией, но с отчетом о результатах).
Сервис позволяет клиенту найти самую выгодную и быструю доставку для его товаров. Занимался devops, разрабатывал backend-часть сервиса и руководил программистами.
У нас было много тестов, так как основной модуль сервиса — это парсер данных с 24 провайдеров курьерских служб, и его нужно было постоянно поддерживать.
Написал весь frontend на React и Redux, работая с websockets. Один из модулей сервиса — панель управления для менеджеров, которые обрабатывали заявки. Нужно было организовать правильную работу панели, где с одной и той же заявкой в live-режиме могли бы работать несколько менеджеров.
Full-stack разработка 7 проектов, в том числе сервиса для онлайн-обучения с использованием websockets и actioncable, CRM для закупок промышленного оборудования, сервис кредитования RevoPlus.
Backend-разработка сервиса блогинга Taaasty.com, включая сложные задачи, в первую очередь связанные с оптимизацией скорости работы (big data, миллионы постов и комментариев).
Перевел почти всю выдачу данных (index/show/поиск) на elasticsearch.
Работал под руководством CTO Danil Pismenny.
Начал изучать Ruby и Rails.
Как full-stack разработчик занимался социальной сетью знакомств, CRM-системой для логистики, гео-сервисом (научился работать с картой и геометрическими примитивами, использовал LeafletJS), сервисом Usalytics (впервые начал работать через TDD, тестируя с mocks/stubs оплату через сторонние API).
UpWork профиль: https://www.upwork.com/freelancers/~01481ff753c5471b89
Различные заказы — от верстки до самописного движка на PHP.
Комментарии
Артем, можете добавить информацию о работе и образовании?
Kirill Mokevnin10-09-2019 17:19:45Добавить комментарий
Рекомендации
Текста слишком много, можно и нужно сокращать, чтобы повысить читаемость. Из-за текущего объема в нем теряются повторения – дважды дословно повторяется тема про опенсорс-проекты.
Не поняла, зачем делать такой акцент на и так объемно расписывать опыт CTO, который как бы всего 4 месяца. И в описанном опыте ничего исключительного или увлекательного не видно. При этом зачем-то эту аббревиатуру я вижу аж в самом начале резюме.
Добавить комментарий