Больше информации по резюме будет доступно после регистрации
ЗарегистрироватьсяБыл на сайте сегодня в 07:43
Кандидат
Мужчина
Активно ищет работу
Алматы, не готов к переезду, готов к редким командировкам
TeamLead c# .net руководитель IT департамента
8 000 $ на руки
Специализации:
- Программист, разработчик
- Руководитель группы разработки
- Технический директор (CTO)
Занятость: полная занятость, частичная занятость, проектная работа
График работы: полный день, гибкий график, удаленная работа
Опыт работы 15 лет 10 месяцев
Октябрь 2021 — по настоящее время
3 года 6 месяцев
Алматы, www.sulpak.kz
Электроника, приборостроение, бытовая техника, компьютеры и оргтехника... Показать еще
Руководитель отдела Web-разработки (оплаты, кассы, цены)
* работа в компании
Являюсь руководителем одного из направлений IT департамента (подчинение CTO). Прямые подчиненные в пике 10 человек + временно прикрепленные к проектам люди. Зона ответственности отдела - разработка сервисов кассы, интеграции с банками, расчет акций и цен, отчетность по кассе, купоны, антифрод, фронт-офис в части возвратов и обменов, интеграции с другим командами.
Обязанности:
Планирование нагрузки команды
Защита стратегических задач на год (как плановых так и вношу свои предложения) – в целом в департаменты мой отдел имеет высокую долю самостоятельности в принятии решений
Планирование бюджета
Планирование карьерного роста членов команды внутри отдела
Разработка новых проектов поддержка существующих
Проработка задач с бизнесом
Проработка архитектуры проектов, декомпозиция задач на команду, расстановка приоратов
Проработка архитектуры и мероприятий поддержки и тестирования для самых ответственных сервисов
Написание самых сложных участков кода
Работа с командой по сплочению
Технический анализ предложений сторонних поставщиков
Постоянное взаимодействие с проектным офисом, бизнесом. регулярно приходиться прорабатывать задачи самостоятельно и с представителями бизнеса, отклонять (убеждать бизнес в этом) задачи. регулярно участвую в разработки решения, когда есть два представителя бизнеса с противоположным мнением на постановку задачи.
Много раз был инициатором серьезных изменений в работе и задачах отдела. например - убедил руководство о необходимости переписывать все на современный технологический стек и переходить на Kubernetes, взяв на себя повышение обязательства по срокам и успешно справился с этим (не сильно их превысив).
Средняя оценка меня и команды за все время по enps другими департаментами (проходит каждый квартал) - 9.8 из 10 возможных.
В целом я и моя команда находимся на одном из лучших счетов у руководства, нам поручают новые сложные проекты без опасения, что мы не справимся.
Я не ожидаю готового технического задания, всегда вначале стараюсь понять суть потребности так как бизнес редко понимает технические детали, потом уже сам формирую задание совместно с обратившимися.
Много раз приходилось искать компромиссные решения с другими командами в вопросах интеграции сервисов. удавалось убедить в своем видении решения проблемы.
В проработке задачи приходилось выезжать в магазины для понимания как решить проблемы, особенно когда пользователи отказываются использовать, казалось бы, продуманный UX (оказывалось не всегда все учитывалось при разработке).
* что достигнуто
За 3 года было полностью переписано с .net 4 на .net 9 все легаси проекты (3 крупных монолита и несколько мелких размещались на IIS).
Были реализованы новые проекты.
Новая парадигма предполагает сервисный подход (местами микро сервисный) и перенос бизнес-логики полностью в код. До этого значительная часть была в процедурах sql, что сильно усложняло поддержку существующих решений.
Все проекты размещаются в Kubernetes кластере в количестве нескольких экземпляров. Настроена политика перезапуска подов, поды сообщают о своем здоровье (где-то пассивно, а где-то активно вычисляется в том числе от нагрузки и прочих метрик), в нагруженных сервисах есть rateLimits и Circuit Breaker.
Реализован cicd с тестами, и раздельным тестовыми, dev и прод средами развертывания. Мини релизы могут выпускаться по несколько раз в день (потребители сервисов не замечают этого). При масштабных релизах можем проводить А/В тестирование на части потребителях.
Обширная система логирования для разбора инцидентов.
Большинство сервисов покрыто метриками, соответственно настроены мониторинговые доски, разработаны инструкции на что смотреть для дежурных.
* коротко по основным крупным проектам:
Группа сервисов расчета корзин (итоговых цен) и акций:
было – монолит (net4 IIS) стабильно зависал раз в 2-3 дня и не держал большую нагрузку, и самое главное не был понятен характер проблем.
стало - группа независимых, но связанных приложений (net9 DDD Kubernetes). Сервис способен работать месяцами, держать нагрузку на порядки больше чем было, изменения вносить значительнее проще в том числе и сложные. Благодаря покрытию тестам удалось избежать многих проблем на релизах.
Группа приложений кассы - PWA (blazor WASM) + gate + группа бекэнд сервисов + интеграция с платежными системами и терминалами:
полностью с нуля разработана архитектура новой кассы, многие бизнес-процессы пересмотрены (как правило усложнились)
сокращение обращений по техническим ошибкам в 1000 раз
общее удобство и уровень автоматизации отмечен пользователями
порог вхождения в работу с кассой снижен на столько сильно, что требует минимального обучения - отмечено обучающими экспертами компании
удалось радикально снизить фродовые действия со стороны персонала в разы (технические махинации сведены к минимуму, бизнес-процессовые взяты под усиленный контроль), за счет автоматизации и пересмотра процессов, так же появились системы аналитики для службы безопасности
планируется добавить ML для поиска аномалий в работе и фрода
Приложения помощи для фронтофиса - UI (blazor) + бэк от одного до нескольких сервисов:
отчетность для коммерческого департамента по планам выполнения на основе данных чеков и рассылка для других отделов - ускорено формирование отчетов (CQRC и динамический пред расчёт)
отчетность парка pos-терминалов для техников
интеграция с 1с для синхронизации данных по чекам в оба направления (первичная с кассы, обогащение данными из 1с на основе выписок с банка)
инструменты для отдела поддержки клиентов и розницы - для оперативного решения проблем
Группа сервисов фронтофиса процесса возврата и обмена:
более сложная бизнес-схема всего процесса чем было
привлечения в часть процессов возврата(или обмена) самого клиента из приложения или сайта (раньше только в магазине и при помощи сотрудника)
реализована интеграция с сервисами других команд
* работа с командой
Разработка сервисов ведётся с применением принципов и подходов:
разработан и внедрен стиль видения проектов и написания кода, все проекты стилистически похожи
код должен быть понятен, читаем и легко модифицируемым (модульным)
сложные бизнес-процессы разбиваем на отдельные поддомены или мини процессы
вся бизнес логика должна находиться в одном месте не допускается разделение (например часть в коде и часть в бд)
по возможно ведем разработку через тестирование
вначале прорабатываем архитектуру потом делаем
в архитектуру сразу закладывается более широкие возможности чем требуется от бизнеса, тем самым готовы к многим изменениям и за короткий срок (это удалось уже не раз продемонстрировать)
почти все сервисы предполагают существование в нескольких экземплярах, потому изначально рассчитаны на конкурентную работу с данными, за счет чего легко обеспечивается их масштабирование
профилирование приложений (оптимизация потребления памяти, ускорение вычислений)
Команда в целом взаимозаменяема:
благодаря единому подходу к разработке, все понимают, что ожидать в других проектах и потому быстро разбираются
старшие разработчики помогают менее опытным
Провожу обучение команды - лекции по темам которые интересны команде либо нужны нам в работе (например: основные паттерны и подходы к написанию кода, асинхронное программирование и конкурентная работы с данными, opentelemetry и т.д.).
Совместно с HR внедрили новые процессы онбординга (быстрого вхождения в работу) новых сотрудников, в дальнейшем отмасштабированы на другие отделы департамента.
Стараюсь вести совместную командную проработку новых проектов, чтобы все были погружены в процесс и детали проектов.
Мотивирую вести разработку через тестирование, где это уместно.
Удалось добиться формирования слаженной и дружной команды, проводим досуг тоже вместе.
* основной технологический стек в приложениях:
Легаси кода не осталось совсем.
.net core 9:
UI в основном - blazor (mudblazor) как webassembly так server render
grpc + rest (soap – для интеграции со сторонними сервисами)
активно применяем СОЛИД, DDD и слоистая архитектура
по возможно ведем разработку через TDD
Размещение в кластере Kubernetes
Для хранения данных - Ceph, кластер MongoDb, кластер и штучные MS sql server, Redis, Minio
Очереди задач
Для работы с логами и метриками используем Loki, influxdb, Tempo, Grafana
Cicd - gitlab
Agile (scrumban) - 1c.ITIL и Jira
Январь 2010 — по настоящее время
15 лет 3 месяца
разработчик .net
участие в различных стартапах:
приложение для расчетов экологам (различного рода математические расчеты, посторенние тепловых карт загрязнений и т.д. формирование отчетов) – в начале было десктоп приложение, позже переход полностью на web версию. Руковдил командой разработчиков из 6 человек.
различного рода интерактивные карты в виде демо концепта для участия в тендарах
мобильные приложения по туристической тематике, мини магазины, интерактивные ситуационные карты (демо концепт для промышленных предприятий)
стек технологий в основном .net core + Azure и xamarin
Январь 2021 — Сентябрь 2021
9 месяцев
Алматы, www.kaspibank.kz
Финансовый сектор... Показать еще
Главный разработчик (Senior)
Занимаюсь командной бэкенд разработкой высоконагруженных, распределенных сервисов (платежи через приложение kaspi.kz и вспомогательных к ним сервисы). в процессе работы удалось достигнуть очень значительных успехов по оптимизации и отказоустойчивости различных систем как единого целого, например при кратковременной недоступности некоторых сервисов, другие продолжают свою работу.
Основной стек asp core + dapper + sql на стероидах (при сравнительно не сложных запросах повсеместно используются оптимизирующие хинты, разумные блокировки, секционирование, таблицы оптимизированные в памяти, разделение данных на горячие, теплые, холодные, при работе с большими наборами данных используем порционирование), в качестве фоновых вокеров сервисы с quartz, кеш в Redis, взаимодействие с другими информационными системами банка, через rest, soap (WSDL), и очереди сообщений и т.д.
Так же был реализован механизм разрыва цепи для разгрузки (Сервис брекеры – на основе Polly и свой более сложный Сервис брекер, когда стало понятно, что не хватает возможностей Polli)
Помимо доработки и оптимизации текущих процессов, лично мною были разработаны сервисы фоновых задач (сервисы с quartz) по расписанию, со сложной логикой сбора данных с разных БД, сервисов и порционной работой для обеспечения конкурентной работы для каждой ноды, дополнительно для отказоустойчивости всей системы был разработан механизмами аварийной работы для перестраховки в случае отказа сторонних сервисвов и как следствие не возможности выполнения работы нодой. Так как в процессе разработки удалось сильно оптимизировать работу вокеров, то в итоге вместо планируемых 10 и более нод удалось на текущих нагрузках обойтись всего несколькими нодами, сохранив возможность горизонтально масштабироваться с большим запасом на будущее.
Разработка антифродовой (антимошеннической) системы для платежной системы.
Декабрь 2011 — Январь 2021
9 лет 2 месяца
Sector-3, ТОО
Алматы, www.sector.kz
Программист
Разработка приложений и поддержка существующих, на платформе WPF + бэкенд (.net core3) + sql
Самостоятельная проработка задач и архитектуры на основе бизнесс требований ПМ и клиентских запросов, в том числе с обоснованием почему некоторые доработки не целесообразны.
Ведущий разработчик большого сложного продукта для формирования таможенных деклараций и прочих сопутствующих документов:
много форм для заполнения, с валидацией и авторасчётом с множеством ветвлений (в силу чего последние годы изменяя в расчеты вносились по методологии TTD, чтобы случайно не ломать другие ветки расчета – в чем себя данный подход показал великолепно, и не раз спасал от случайных ошибок).
сложная многосвязная и мультипараметрическая связка справочников (sql с разбивкой на оперативную и историческую части) + rest.
работа с печатными формами, с возможностью редактирования прям на листе перед печатью - автогенерация различных отчетов в нескольких форматах
интеграция с другими ИС (формы печати самописные и на основе DevExpress)
была разработана своя кастомная ОРМ c версионирование
архитектура ПО реализована для внесения постоянных изменений, важные места покрыты тестами (CI/CD тоже есть), соответственно есть свой механизм доставки обновлений ( с сохранением обратной совместимости на года) и т.д. работа команды строилась спринтами + agile.
Июнь 2011 — Ноябрь 2011
6 месяцев
TOO Symphony
Программист C# .net
разработка приложений на c# на основе технологий asp.net mvc и silverlight.
участие в разработках (% участия):
корпоративный портал (100%), сайт (90%), система электронного документа оборота (30%), система бюджетирования (100%) и электронный архив (70%)
Июнь 2009 — Июнь 2011
2 года 1 месяц
филиал АО "Имсталькон" АМФ №1
Алматы
Руководитель отдела компьютерного и программного обеспечения
содержание парка компьютерной и офисной техники в рабочем состоянии включая сети и программное обеспечение.(3 сервера, 30 раб. мест)
взаимодействие с фирмой подрядчиком по сопровождению 1с предприятие 8.1
составление бюджета парка компьютерной техники и Программного обеспечения, закупка необходимых расходных материалов и новой техники и ПО.
взаимодействие с другими подразделениями предприятия в рамках процедур ISO9001
управление документооборотом и информационной безопасностью компании
Навыки
Уровни владения навыками
Продвинутый уровень
Средний уровень
Обо мне
поскольку имею физическое образование совершенно не боюсь математики (есть даже опыт использования .net Core intrinsics), как говориться знаю, умею практикую.
большой опыт работы с .net фреймворком.
отличные знания WPF. Десктоп приложения делаю на WPF (смотрю на MAUI)
мобильная разработка на Xamarin (Forms и android Native) , хорошо знаю контроллы DevExpress и Telerik. (Xamarin forms)
отличные знания aspnet (core), работал с Blazor, gRPC, webSockets, WebRTC, SignalR.
Хорошо знаю JavaScript Bootstrap jQuery так же немного Angular и VUE
MS SQL (средней сложности запросы + хинты) с базами умею работать через ado.net, dapper, Entity Framework, LINQtoSQL. Работа с OLTP (оптимизированные для памяти таблицы).
Работаю c Redis, MongoDB, Oracle.
Самом собой знаю паттерны проектирования и умею их применять.
умею профилировать и оптимизировать приложения, в том числе многопоточные.
В работе активно использую Resharper и тулзы профилирования от JetBrains
работа со схемами XML JSON
собственные кастомные механизмы сериализации
Высшее образование
2006
университет международного бизнеса
делового администрирования/ менеджмент, специалист
2004
Новосибирский государственный университет
физический, бакалавр
Знание языков
Тесты, экзамены
2014
Microsoft Certified Professional
Microsoft, MCP - Essentials of Developing Windows Store Apps Using C# (70-484)
Гражданство, время в пути до работы
Гражданство: Россия
Разрешение на работу: Казахстан
Желательное время в пути до работы: Не имеет значения