dorianedoriane

Дмитрий Некрасов

C#/.NET/SQL · Бэкенд · Разработка ПО
Не ищу работу
Возраст: 28 лет
Опыт работы: 6 лет и 4 месяца
Регистрация: 28.04.2014
Последний визит: 2 недели назад
Местоположение: Россия, Москва
Профессиональные навыки: C# · SQL · Git · Высоконагруженные системы · ООП · Akka
Войдите, чтобы посмотреть контакты пользователя

Обо мне

Умение быстро учиться, можно сказать «схватывать на лету». Владею навыками программирования на языке C#. Раньше писал программы для домашних нужд (в частности это Кошелек, где в качестве базы данных использовал Excel (выбран для удобства); и Каталог книг – в качестве БД SQlite, где мне пригодились следующие знания: .NET 4.5, ADO.NET, LINQ, WPF, WinForm, SQlite, TPL .Есть опыт разработки на C и С++ (в формате университетской программы), JS, ExtJs, а также немного Python и Lua. Знаю и понимаю основные принципы ООП.

Постоянно читаю или слушаю лекции. Недавно прослушал курс "Алгоритмы и структуры данных" от Технострим Mail.Ru Group. Выступления с митапов и конференций (Highload и dotnext). 

Т.к. читаю я много, то все прочитанные книги вряд ли вспомню. Если вкратце: "CLR via C# 4.5" Рихтера, "Паттерны проектирования на платформе .net " Теплякова, "Чистый код" Дядюшки Боба, "Грокаем алгоритмы" Адитья Бхаргава, "Паттерны проектирования" Фримен Эр., Фримен Эл., Сьерра К., Бейтс Б. "Программирование на .NET» Троелсена, "Внедрение зависимостей в .NET" Симана, "The Art of Unit Testing" Рой Ошеров. 

На подходе: "Real-world functional programming" Petricek, Skeet, 
«Конкретная математика» Кнута, "Алгоритмы" Кормена, "Проблемно-ориентированное проектирование" Эванса, "C# in depth" Skeet, "C# in a nutshell" Albahari

Прошел обучение в Учебном центре «Специалист» при МГТУ им.Н.Э.Баумана.  В декабре окончил первый курс: Курс 10266: Программирование на С# с использованием Microsoft .NET Framework 4. В январе: Курс 10262: Разработка Windows приложений в Microsoft Visual Studio. В феврале: Курс 10265: Разработка решений на базе технологий доступа к данным в Microsoft Visual Studio.

Опыт работы с системами контроля версий (git, TFS).Свободно владею MS Visual Studio 2010-17, ReSharper, Rider. Изучаю английский язык с репетитором.

В свободное время решаю задачки на https://www.hackerrank.com/dorgrey

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

Немного работал в Unity, писал поиск кратчайшего пути. Сначала реализовал его с  помощью BFS (он очевидно был не очень эффективен), потом переписал на А* для которого пришлось реализовать собственную бинарную кучу, решение оказалось очень даже эффективным и время росло линейно.

Участие в профессиональных сообществах

  • GitHub
    @aberkromb, c янв. 2014 (6 лет и 9 месяцев)
    184 вклада в 6 репозиториев, связан с языками:

Опыт работы

  • Высоконагруженный веб-каталог объявлений о продаже или предоставлении в аренду недвижимости
    Москва · От 100 до 1000 сотрудников
    Разработчик
    Февраль 2019 — По настоящее время (1 год и 9 месяцев)

    Разработка внутренних библиотек для ускорения продуктовой разработки , обеспечение правильных практик и подходов "из коробки". 
    Участие в архитектурных комитетах.

    Оптимизация высоконагруженного сервиса.

    Добавление распределенной трассировки.

    Внедрение нового сериализатора.

    RnD, рассчеты и оптимизация для нового высоконагруженного сервиса.

    Оптимизация генерируемого SQL кода для Postgres.

    Участие в разработке архитектуры для высоконагруженного сервиса.

  • Российская букмекерская компания
    Москва · От 1000 до 5000 сотрудников
    Разработчик
    Февраль 2018 — Февраль 2019 (1 год и 1 месяц)

    Основной стек ASP.NET Core 2.1 (web api), dapper, rabbitmq, sql server, docker.

    Разработка нового продукта компании. На данный момент обрабатывает в среднем  10 млн. сообщений в день (с взлетами до 3000 в секунду).  Реализовал алгоритм для параллельного обновления данных без задержек, который позволял нескольким инстансам приложения получать консистентные данные с минимальными задержками. Продукт новый и требовал написания практически всей кодовой базы с нуля. Был инициатором рефакторинга проекта и внедрения обязательных юнит тестов. В итоге написал большую часть тестов (с 300 тестов во всех сервисах до, почти, 2000) и объемный рефакторинг проекта с целью ускорения разработки в будущем. Как мне кажется цель удалось достичь, сервисы стали работать стабильнее, новые фичи можно писать быстро и не бояться сайд эффектов.

     Доработка существующего сервиса на Akka.Net (собственный журнал персистентных сообщений - akka persistence, уменьшение общего количества ошибок, перевод на новый драйвер).

    Доработка существующих сервисов транспортировки сообщений из RabbitMQ в другие сервисы.

  • Один из лидеров foodtech-индустрии в России
    Москва · От 100 до 1000 сотрудников
    Программист
    Сентябрь 2017 — Декабрь 2017 (4 месяца)

    Участвовал в крупном highload проекте. Писал с нуля отказоустойчивый модуль. Использовал в нем C# + RabbitMQ (EasyNetQ для работы с Rabbit).  Затем доработка функционала в монолите. Расширял старый и писал новый функционал API сервиса в микросервисной архитектуре. Сервисы общались json сообщениями. Основной язык C#,  mssql  в качестве db, linq2db как db провайдер,  LightInject как DI контейнер.  Для всего своего функционала сразу писал тесты и добавлял новые (если в голову приходили непокрытые кейсы). Обязательный codereview, git. Для совместной работы использовались jira, gitlab, crucible. Сервера обновляли через TeamCity.

  • Специализированный телекоммуникационный оператор для бизнесов ТВ производства, вещания и медиа развлечений
    Москва · От 100 до 1000 сотрудников
    Инженер-программист
    Июнь 2016 — Сентябрь 2017 (1 год и 4 месяца)

    Участвовал в крупном high load проекте. Проект работает непрерывно в реальном времени. Задержка сигнала в 3 секунды считалась ошибкой. Моя задача была агрегировать большие массивы статистики и выводить их на странице мониторинга, с возможностью перемотки и просмотра прошлых данных, а также перехода на более низкие таймфреймы по клику на бар статистики. В этой задаче я использовал C# и SQL Server (запросы, хранимые процедуры, задания) на бэкэнде и JS, ExtJS на фронте. Постоянное обновление данных шло по SignalR. Февраль 2017 – Настоящее время. Проектирование базы (Postgresql) с нуля для интернет вещания с возможностью встраивания рекламы в поток. Были созданы роли для пользователей (убрал супер-юзера отовсюду). Выделена отдельная схема API через которую серверная часть общается с базой (и больше никак). На данный момент было написано около 170 функций часть на чистом SQL (ради оптимизации), другая на PLPGSQL. Использованы индексы. Полное покрытие тестами схемы API. Отдельные схемы для тестирования и отслеживания статистики работы базы.На серверной стороне Python 3 + Flask. Производится парсинг чанков и регистрация их в базе. Общение с рекламными агентствами. Сквозное прокидывание плейлистов от базы к клиенту. Для совместной работы используются Stash, Jira, Confluence. Сервера обновляли через TeamCity.

  • Москва · От 100 до 1000 сотрудников
    Специалист
    Июнь 2014 — Май 2016 (2 года)

    Регулярное участие в командных разработках крупных проектов. Никогда не пропускаю deadlin'ов, ответственно подхожу к поставленным задачам. Есть опыт написания отчетов о проделанной работе. Ведение старых проектов и успешная разработка нового ПО. Написание тестов на selenium web driver. Кроме всего прочего в разработках использовал многопоточность (TPL), рефлексию, Entity и д.р.Анализ задания, продумывание архитектуры и разработка нового ПО согласно требованиям заказчика - все задачи были успешно решены, в подробностях могу рассказать лично.

Высшее образование

  • МАДИ

    Московский автомобильно-дорожный государственный технический университет
    Москва · 254 выпускника
    Управления
    Сентябрь 2009 — Июль 2014 (4 года и 10 месяцев)