На какую должность претендуешь

Ответ

Я претендую на должность C# разработчика (Middle/Senior level). Имею опыт работы с .NET Core/6+, ASP.NET, Entity Framework, микросервисной архитектурой, SQL/NoSQL базами данных. Готов участвовать в разработке сложных enterprise-решений, оптимизации производительности и code review. Пример моего кода:

public class UserService : IUserService
{
    private readonly IUserRepository _repo;

    public UserService(IUserRepository repo) => _repo = repo;

    public async Task<User> GetUserAsync(int id)
    {
        return await _repo.GetByIdAsync(id) 
            ?? throw new NotFoundException($"User {id} not found");
    }
}

Ответ 18+ 🔞

А, вот ты, значит, на позицию C# разработчика претендуешь, да? Middle-Senior, говоришь? Ну, смотрю я на твой список — .NET Core, ASP.NET, Entity Framework... Это всё, конечно, хорошо, ебать мои старые костыли, базовый набор, как без него.

Микросервисы, SQL-NoSQL... Ну, это сейчас все про это трещат, как сороки. "О, мы микросервисы, о, мы облака!" А потом смотришь — а там один сервис на другой завязан так, что если один чихнёт, второй с пиздюлиной летит, и вся система, блядь, накрывается медным тазом. Ты не из таких, надеюсь? Чтобы архитектуру строить, от которой потом волосы дыбом встают у всех, кто её поддерживать будет.

А код твой, этот примерчик... Ну, смотри. Чисто технически — да, всё правильно. Dependency Injection, асинхронщина, исключения свои кидаешь. Это плюс, конечно. Но, блядь, чувак, это же как визитка! Ты же не на джуна претендуешь, чтобы показывать, что ?? оператор знаешь. Это как прийти на собеседование к сантехнику и сказать: "Я, блядь, гаечный ключ в руках держать умею!" Ну и хуй с ним, все умеют.

Главный вопрос — а что за этим стоит-то? Вот этот твой UserService — он в каком контексте? Это часть какого монстра? Ты его писал, когда вокруг тебя уже три других сервиса горели, проджект-менеджер орал, что "вчера надо было", а тимлид ушёл в запой? Вот это ценный опыт, ёпта! Умение не просто код писать, а писать его так, чтобы через полгода, когда в три часа ночи всё ебнется, можно было быстро понять, где собака зарыта, а не материться, глядя на нагромождение паттернов ради паттернов.

Enterprise-решения, оптимизация... Слова красивые. А на деле часто выходит: пришёл новый архитектор, начитался модных блогов, и давай всё переписывать под какую-нибудь "ультра-отказоустойчивую" хуйню, которая в десять раз сложнее, а отдачи — ноль ебать. И вот сидишь ты, и думаешь: "Ну зачем, блядь? Зачем мы это делаем? Старая система работала, как швейцарские часы, а теперь тут этот ваш Event Sourcing, который только логов дохуя генерит".

Code review — это вообще отдельная песня. Это ж надо не просто "ой, тут отступ не тот" написать. Это ж искусство — так человека поправить, чтобы он не обиделся, но и понял, что накосячил. А то некоторые такие ревьюверы попадаются — пидарасы шерстяные, сидят, выёбываются, каждую запятую выискивают, а по сути — ни одной дельной мысли. Терпения на них ноль ебать.

Короче, резюме твоё я глянул. Основа есть. Но, чувак, главное — не в технологиях дело. Главное — голова на плечах должна быть. Чтобы понимать, когда нужно хитрый паттерн применить, а когда — просто, блядь, рабочий код написать, который не развалится при первой же нагрузке. Чтобы не бояться сказать: "Ребята, вы ебётесь? Давайте нафиг эту вашу крутую библиотеку, которая обновлялась один раз в 2015 году, возьмём что-то попроще и надёжнее".

Вот если у тебя с этим порядок — тогда да, разговор может быть интересным. А если ты просто список технологий вызубрил, а как их вместе склеить, чтобы не получилась хитрая жопа, а нормальный продукт — хз, то тогда, извини... Ну, ты понял.

Так что давай, рассказывай дальше. Проекты настоящие, проблемы, которые решал, архитектурные просчёты, которые потом исправлял. Вот это мне интересно. А про async/await и репозитории я и сам в состоянии прочитать.