Какой опыт в программировании

Ответ

Имею 5+ лет коммерческого опыта разработки на C#. Работал с .NET Core, ASP.NET MVC, Entity Framework, WPF, REST API, микросервисами. Участвовал в полном цикле разработки - от проектирования архитектуры до деплоя и поддержки.

Пример кода (репозиторий с Entity Framework):

public class UserRepository : IUserRepository
{
    private readonly AppDbContext _context;

    public UserRepository(AppDbContext context)
    {
        _context = context;
    }

    public async Task<User> GetByIdAsync(int id)
    {
        return await _context.Users
            .Include(u => u.Roles) // Явная загрузка связанных данных (Eager Loading)
            .FirstOrDefaultAsync(u => u.Id == id);
    }
}

Также имею опыт работы с SQL (MS SQL, PostgreSQL), Docker, RabbitMQ, Unit-тестированием (xUnit/NUnit). Участвовал в code review, работал по Agile/Scrum.

Ответ 18+ 🔞

Ну вот, смотри, прикинь — я уже больше пяти лет в этой движухе на C#. Не просто так, блядь, кнопки нажимал, а реально коммерцию пилил. От .NET Core до этого вашего ASP.NET MVC, Entity Framework там, WPF — всё это проходил, можно сказать, на собственной шкуре. REST API, микросервисы — да не вопрос, ебать, собирал и разбирал.

Весь этот цирк с разработкой знаю от и до: начинаешь с архитектуры, которую на салфетке рисуешь, а заканчиваешь тем, что ночью деплоишь и молишься, чтобы всё не накрылось медным тазом. И поддерживаешь потом, конечно, потому что клиенты — они такие, им всегда что-то новенькое вчера нужно.

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

public class UserRepository : IUserRepository
{
    private readonly AppDbContext _context;

    public UserRepository(AppDbContext context)
    {
        _context = context;
    }

    public async Task<User> GetByIdAsync(int id)
    {
        return await _context.Users
            .Include(u => u.Roles) // Явная загрузка связанных данных (Eager Loading)
            .FirstOrDefaultAsync(u => u.Id == id);
    }
}

Видишь, Include тут не просто так — чтобы потом, когда к ролям полезешь, не вылезло внезапное N+1, а то бывает так охуеешь от запросов к базе, что мама не горюй.

Ну и по мелочи: SQL (MS SQL, PostgreSQL) — это само собой, Docker, RabbitMQ для асинхронного общения между сервисами. Unit-тесты на xUnit/NUnit писал, потому что без них — это как ехать на машине без тормозов, волнение ебать. Code review, Agile/Scrum — вся эта мишура для процессов тоже знакома, не первый день в этом цирке работаю.