Ответ
Мне важно понять технический контекст и культуру разработки в команде. Я бы задал следующие вопросы:
-
О стеке и инфраструктуре:
- "Какой основной стек технологий (.NET, C#) вы используете? Какие версии .NET (Core/5/6/7/8) и ключевые библиотеки (EF Core, Dapper, MediatR) находятся в production?"
- "Как организована инфраструктура: on-premise, облако (Azure/AWS/GCP)? Используете ли контейнеризацию (Docker, Kubernetes) и оркестрацию?"
-
Об архитектуре и процессах:
- "Какие архитектурные подходы и шаблоны преобладают в проекте (Clean Architecture, DDD, CQRS, микросервисы vs модульный монолит)? Можете привести пример организации слоев в типичном сервисе?"
- "Как выглядит процесс CI/CD: какие инструменты (GitHub Actions, Azure DevOps, TeamCity), насколько автоматизированы сборка, тестирование и деплой? Есть ли практика feature flags?"
-
О качестве кода и совместной работе:
- "Как проходит код-ревью? Есть ли чек-листы или автоматические проверки (статические анализаторы вроде SonarQube или Roslyn Analyzers)?"
- "Какой подход к тестированию (пирамида тестов)? Какой процент покрытия считается достаточным, и какие фреймворки (xUnit/NUnit, Moq/NSubstitute) используются?"
-
О проекте и техническом долге:
- "С каким самым сложным техническим вызовом или legacy-кодом сталкивалась команда в последнее время? Как вы с этим работали?"
- "Как в команде принимаются решения о внедрении новых технологий или обновлении major-версий фреймворков?"
-
О моей потенциальной роли:
- "Над каким конкретным продуктом или сервисом я буду работать в первую очередь? Какие ближайшие технические задачи стоят в бэклоге?"
- "Как в команде распределяются обязанности между разработкой новой функциональности, поддержкой текущей системы и работой над техническим долгом?"
Эти вопросы помогают оценить зрелость процессов, технические сложности и то, насколько мой опыт и подход к разработке будут здесь востребованы.