Software Developer
Контакты
О себе
Начал программировать около 9 лет назад. Участвовал в open source проектах во время Google Code-In и в школьных олимпиадах. Через несколько лет начал работать на фрилансе (в свободное от учебы время), в основном небольшие проекты по извлечению и обработке данных с сайтов, автоматизации различных рутинных задач. 3 года назад участвовал в Google Summer of Code в проектах LibreOffice по реверс-инжинирингу и импорту файлов проприетарных форматов. Последние 2 года работал над исследовательским проектом в магистратуре в группе студентов под руководством SAP, разработал платформу для бенчмаркинга алгоритмов обнаружения аномалий.
Всегда занимался самообучением не ограничиваясь только программой вуза: книги, курсы (Coursera, Hexlet), участие в сообществах, разработка своих и open source проектов.
Хобби: программирование, компьютерные игры, кино/сериалы, технологии/компьютерное "железо", путешествия.
Open source
Некоторые из моих последних вкладов в open source проекты (исправление багов, добавление небольших фич):
- hexlet-cv, сервис для получения рекомендаций по улучшению резюме. https://github.com/Hexlet/hexlet-cv/commits?author=AlexP11223
- Flameshot, программа для захвата/редактирования скриншотов. https://github.com/lupoDharkael/flameshot/pulls?q=is%3Apr+author%3AAlexP11223
Недавние личные проекты:
- Программа для отслеживания изменений на сайтах (например, список товаров в местном онлайн-магазине): периодически загружает страницу с помощью Selenium, получает текст по указанному селектору, если есть изменения, то отправляет diff на почту (через Mailgun). Старался избегать лишних усложнений, чтобы реализовать проект/прототип максимально быстро: Selenium вместо HTTP запросов (универсально для всех сайтов с любым фронтендом, производительность не критична), стандартные CSS/XPath селекторы, консольный интерфейс, конфиг файл. https://github.com/AlexP11223/WebChangeNotifier
- Клиентские скрипты для онлайн-форума улучшающие UI и добавляющие новые возможности для пользователей (автосохранение черновиков сообщений, хоткеи) и модераторов (шаблоны ответов, Geo IP). https://github.com/AlexP11223/ProgForumRuUserscripts
Наиболее интересные учебные проекты:
- Компилятор C-подобного языка в JVM байткод + простой редактор, отладчик, визуализация шагов компиляции. https://github.com/AlexP11223/minic-edu-app
- ToDo веб-приложение на Laravel, Bootstrap. Заточено под мобильные устройства. Развернуто на Heroku. https://github.com/AlexP11223/CatToDo
- Визуализация датасета с помощью d3.js, Leaflet (графики, карты) https://alexp11223.github.io/D3FlightsDataVisualization/index.html
- Проекты профессии PHP-программист на Hexlet: небольшие логические игры (проект нацелен на настройку окружения, CI), сравнение JSON/YAML файлов (полиморфизм, паттерны, ФП, TDD). https://github.com/AlexP11223?tab=repositories&q=php-project
- PHP, JavaScript, Python.
- Реляционные базы данных (MySQL, PostgreSQL, SQLite), ORM (Eloquent, Doctrine).
- Web backend фреймворки: Laravel, немного Node.js.
- Frontend: HTML, CSS, JavaScript (включая современные нововведения), Bootstrap, jQuery, ...
- Автоматическое тестирование (юнит тесты, интеграционные и т.д., в основном с помощью классических xUnit фреймворков типа PHPUnit, PyTest), TDD.
- Базовое использование Vagrant, Docker.
- Извлечение данных и автоматизация работы с сайтами с помощью Selenium или HTTP запросов.
- Опыт работы с Windows и Linux (в основном Ubuntu), и как пользователь/веб-разработчик, и как разработчик приложений для них.
Также есть опыт разработки десктопных приложений на С#/.NET, Java/Kotlin, C++, Python. Qt/PySide2, WPF, WinForms, WinApi.
Концентрация на цели, выяснении реальных причин ("почему/зачем?"), а не бездумное выполнение задач.
Осведомленность о различных инженерных практиках (Agile, XP, TDD, CI, etc.) и желание применять их когда в этом есть смысл.
Опыт
Разработка десктопных и веб приложений. В основном небольшие проекты по извлечению и обработке данных с сайтов, автоматизация различных рутинных задач, разработка системных утилит.
Примеры задач:
- Извлечение данных с сайта через API (если есть) или парсинг HTML, сохранение в БД или файл, визуализация.
- Обработка большого числа изображений (вырезать указанные части для превью, изменить размер и т.п.) скриптом на Питоне.
- Создание системы для резервного копирования дисков, что-то типа упрощенного Acronis True Image с заточенностью под определенную конфигурацию устройств.
- Видео-киоск для выставки в музее — полноэкранное веб-приложение для устройства с двумя экранами: сенсорный экран для выбора видео, и проектор для воспроизведения видео.
Исследование и оценка алгоритмов обнаружения аномалий в данных. Разработал систему для бенчмаркинга алгоритмов на Java + Python.
Реверс-инжиниринг первых версий бинарного формата файлов QuarkXPress (ПО для издательств) и реализация библиотеки парсинга/импорта.
https://summerofcode.withgoogle.com/archive/2017/projects/5756673784283136/
Реверс-инжиниринг бинарного формата файлов Zoner Draw (векторный графический редактор) и реализация библиотеки парсинга/импорта.
https://summerofcode.withgoogle.com/archive/2016/projects/4529893417156608/
Образование
Рекомендации
1) Очень длинные предложения в конце первого абзаца, надо распиливать на большее число. Тяжело читается
2) > разработка своих и open source проектах. <--- проблемы склонения, кое-где еще потерялась минимум одна запятая. Удачи в поисках :)
3) Очень, ОЧЕНЬ много всего по стэку перечислено. Что из этого знаете на каком уровне, в каких проектах использовали, что из этого хотите применять, – неясно. То есть раздел скиллов как бы не выполняет свою функцию для резюме. Потому будь я потенциальным работодателем, я бы вообще не поняла, что вы умеете и хотите от жизни с таким набором.
4) Городская олимпиада по информатике это, возможно, не самое важное 7 лет спустя. Я бы убрала
5) Для такой кучи фриланса и опенсорса как-то не хватает конкретики. Это, получается, основа вашего опыта, – и глядя в резюме трудно переварить, в чем он собственно заключается. Задачи на фрилансе так вообще максимально невнятно описаны. Короче, ищущий исполнителя работодатель хочет посмотреть в резюме и увидеть опыт, перекликающийся с его задачами. Здесь он не увидит ничего конкретного, а значит ничего пересекающегося.
Добавить комментарий/ссылку на вакансию