.Net Разработчик | ASP.NET Core, C#, PostgreSQL, React
Уровень зарплаты: от 50 000 руб.
Местоположение: Россия, Москва и область (МСК +0ч)
Резюме: .Net Разработчик | ASP.NET Core, C#, PostgreSQL, React
Всем привет. Меня зовут Евгений и я Dot net / C# ASP.Net Core разработчик. Когда - то давно увлекался разработкой игр на движке Unity на C#, разрабатывал как собственные, так и совместные проекты с применением Git hub и Plastic для Google Play и Яндекс Игры. Также занимался фрилансом, рефакторил и разрабатывал фичи для проектов заказчика, тоже на Unity. Затем перешёл на ASP.Net Core и начал изучать backend. Первый свой проект я реализовывал для заказчика на фрилансе, суть которой заключалась в управлении продуктами и товарами. Также участвовал в проекте "Sachkov Tech", суть платформы заключалась в привлечении волонтёров, желающих приютить домашних животных. Работал я в качестве .Net Core backend разработчика, занимался разработкой новых фич под API, писал unit тесты и рефакторил код.
Мой Telegram: @zhenya848
Опыт работы: 1 Год
1 место работы: Sachkov Tech, Должность: Программист ASP.NET
Начало работы: Июль 2024 год.
Окончание работы: Март 2025 год.
Описание:
В команде разрабатывал платформу на ASP .NET Core и React по поиску волонтёров. Суть заключалась в привлечении волонтёров, желающих приютить домашних животных В ходе работы:
– Повысил безопасность входа и регистрации в приложении, внедрив аутентификацию и авторизацию с помощью jwt токена, а не стандартные cookie.
– Чтобы пользователь при завершении сессии не входил в свой аккаунт заново, когда заканчивалось время действия jwt токена, я реализовал систему refresh токенов. Refresh token автоматически отправляется при "протухании" jwt
– Для проверки роли и разрешений пользователя на совершение действия в приложении, я внедрил атрибут Permissions, берущий данные о пользователе в клеймах и проверяющий его разрешения. Это исключило несанкционированные действия со стороны клиентов
– Реализовал background сервис для авто удаления аккаунтов волонтëров каждые 24 часа
– Оптимизировал получение данных сложных моделей на 37% и дальнейшей сортировкой по Value Object с помощью паттерна CQRS
– Для сохранения файлов разрабатывал интеграцию с MinIO S3 хранилищем. Использовал Semaphore для оптимизации асинхронной загрузки файлов.
– Упростил валидацию входящих запросов, внедрив библиотеку Fluent Validation.
– Сделал микросервис уведомлений по GRpc с Background сервисом внутри него, отправляющий данные определённым пользователям или пользователям определённых ролей в системе
– Упростил обработку ошибок во всëм приложении, внедрив middleware. Он возвращает ошибки клиенту в качестве Envelope. Это предотвратило необходимость обрабатывать исключения в каждом хендлере и устранило причину написания лишнего кода
– Чтобы упростить дальнейшее расширение проекта и предотвратить путаницу, вместо стандартного монолита по чистой архитектуре разбил проект на модульный монолит, где у каждого модуля был свой DB Context.
– Использовал паттерн Unit of work для удобного открытия транзакций в разных DB контекстах.
– Использовал EF Core для работы с БД PostgreSQL. Прописывал конфигурации для сложных доменных моделей, строил сложные SQL запросы с помощью LINQ, писал конвертеры под Value Object, использовал миграции для создания базы данных.
– Покрывал юнит тестами основную бизнес логику приложения, использовал библиотеку xUnit. Писал тесты для тестирования метода / алгоритма смены серийного номера (смены позиции) модели животного
Стек:
– ASP.NET Core
– БД: PostgreSQL
– ORM: EF Core, Dapper
– S3 Хранилище: MinIO
– СКВ: Git
– Frontend: React / TypeScript
Проект: https://github.com/Zhenya848/AnimalVolunteerProject
2 место работы: фриланс биржа Kwork
Начало работы: Ноябрь 2024 год.
Окончание работы: Январь 2025 год.
Описание:
Для клиента разрабатывал платформу управления товарами на складе с ролями: (Администратор, Модератор, Пользователь) на ASP .NET Core. В ходе работы:
– Повысил производительность процессов фильтрации и сортировки товаров в 3 раза, внедрив IQueriable и Read DB Context. Вместо получения обычных доменных моделей из БД использовал DTO records.
– Реализовал аутентификацию и авторизацию в приложении с ролями и разрешениями для пользователей. Использовал EF Core Identity.
– Ускорил и упростил обработку ошибок в приложении на 22%, используя паттерн Result в хендлерах вместо обычных try catch конструкций.
– Реализовал проект по чистой архитектуре (Domain, Application, Presentation, Infrastructure)
– Прописывал конфигурацию для сложных доменных моделей с помощью Entity Framework Core
Стек:
– ASP.NET Core
– БД: SQLite
– ORM: EF Core
– Frontend: Razor Pages