Мой Telegram (energizet).
Работал на backend, frontend и android.
Проектировал микросервисную архитектуру и приложения с нуля.
Прочитал книги Рихтера «CLR via C#», Мартина «Чистая архитектура», Фаулера «Рефакторинг».
Я занимался проектирование и разработка Backend for frontend сервиса.
Сервис генерировал ендпоинты по составленым файлам конфигурации.
Работал между фронтом и беком.
Реализован оркестратор для выполнения шагов по графу паралельно-последовательно
Команда:
• Тимлид
• 3 разработчика
• Аналитик
• тестировщик
Стек:
• C# .NET 6-8
• Expression и Roslyn
• ASP.NET
• Grpc
• SignalR
• PostgreSQL
Сервис использовался в 6 проектах компании.
Социальная сеть с онлайн трансляциями и чатом.
Я отвечал за выбор технологий, проектирование и реализацию главных систем, найм разработчиков.
Команда:
• team lead
• tech lead
• дизайнер
Разработчики:
• 2 backend
• Android
• Frontend
Agile: scrum, kanban в jira.
Стек:
• C# (.NET 8)
• RabbitMQ
• PostgreSQL
• Node.JS
• livekit
Наша команда разрабатывала процессы под CRM MS Dynamics для табачной компании.
В команде был: архитектор, тимлид, два senior разработчика и три middle.
Работали в jira по agile методологиям: scrum и kanban.
Разработка велась на C# и JavaScript.
Основной вектор разработки — это плагины для Dynamics, которые упаковывались в библиотеку и встраивались в CRM и вызывались при определённых событиях в CRM, например, создание сущности или изменения поля.
Для некоторых задач разрабатывались «адаптеры» для сервиса aka демона, который мы также разработали сами, и он крутился в фоне, например, для рассылки почты по времени, выгрузки данных из kafka или формирования отчётов.
Были сайты, с которыми работали курьеры, менеджеры, торговые точки и конечные покупатели. Их разрабатывали на ASP.NET, а фронт на Angular, React и Vue, для разных сайтов, из-за того, что проект разрабатывался 4 года.
Работа с базой и все crud операции производились через фреймворк предоставляемый Dynamics. Поскольку это система от Microsoft, фреймворк построен поверх EntityFramework.
Также разрабатывали виджеты для CRM, какие-то на ванильном JS, а какие-то с использованием фреймворков.
Я работал со всем этим, включая фронт, в зависимости от задачи.
Например, виджет загружал CSV файлы с ID клиентов, сохранял их как отдельные сущности, плагин при их создании запускал адаптер в сервисе, который из CSV получал ID клиентов, выгружал сущности клиентов и формировал CSV с информацией по клиентам.
Небольшая компания из двух человек: руководителя и технического специалиста.
Я занимался всем начиная с постановки сырой задачи: аналитика, проектирование, интеграция с CRM Мегаплан, разработка, тестирование, администрирование сервера.
Реализовал более 20 проектов на C#.
Часть проектов была реализована на ASP.NET.
Другая часть на самописном сервере, консольной программой.
Реализовал роутинг на регулярках и поиск MVC контролёра через Reflection.
Для сервера: C#, ASP.NET, EF, MS SQL, MySQL.
В нескольких проектах писал Android приложения, для автоматизации.
Стек для Android: Java/Kotlin, Retrofit, Glide, SQLite, Google Maps.
Реализовал множество интеграция с CRM Мегаплан, Авито, Атол. Реализовывал событийные интеграции, которые запускались при событии в CRM, виджеты и прочие автоматизации бизнеса. Пример, виджет Авито для Мегаплан выложенный в официальном marketplace Мегаплан.
Команда состояла из двух разработчиков: главный и я, и руководителя проектом.
Писали на PHP интеграции для Мегаплан.
Очень хорошее заведение.
Обучался с нуля и после окончания нашел работу без особых сложностей.
Меня научили: бекенду, фронтенду, мобильной разработке, сетевому и системному програмиированию, параллельному. Изучали более 20 паттернов, 5 языков.
После окончания я мог идти в любое направление.
Хорошо структурированный курс с удобной и понятной подачей материала.
Уроки текстовые, но есть онлайн встречи после каждого спринта с разбором задач.
В уроках приводятся диаграмы, диалоги, картинки для удобства восприятия, а ещё почти в каждом уроке задают пару вопросов по пройденному материалу, так что проскипать не получится.
Не получится проскипать и по другой причине - практические и финальные задачи в каждом спринте.
Это как задачи на leetcode или codewars, с тем отличием, что задачи дополняют пройденный материал.
Жёстких рамок по времени на выпление этих задач - нет, однако каждый спринт длится две недели и нужно сдать первую полвину финалок до жесткого дедлайна, иначе дальше не пройти.
По итогу я получил знания алгоритмов от простых, вроде сортировок (включая быструю и сортировку слиянием), до более хитрых, таких как: принцип вычисления хешей, включая для строк, проходы по графам и динамическому программированию.