Saltar al contenido principal

🟡 Nivel Semi-Senior

El nivel semi-senior asume que ya dominas los fundamentos y evalúa tu capacidad para construir soluciones robustas, mantenibles y escalables.

Prerequisitos

Antes de abordar este nivel, deberías estar cómodo con todo el nivel Junior:

  • ✅ C# y POO — tipos, colecciones, herencia, interfaces
  • ✅ React — componentes, hooks básicos, estado y efectos
  • ✅ SQL básico — CRUD, JOINs, GROUP BY, subconsultas
  • ✅ Git — branching, merging, pull requests
  • ✅ HTTP / REST — métodos, status codes, autenticación básica

Si alguno de estos puntos te genera dudas, repasa el nivel Junior antes de continuar.

¿Qué se evalúa en entrevistas Semi-Senior?

  • Buenas prácticas y patrones: SOLID, patrones de diseño aplicados
  • Profundidad técnica: "¿cómo funciona internamente?", "¿cuándo usarías X en vez de Y?"
  • Decisiones de diseño: arquitectura básica, organización del código
  • Experiencia práctica: resolución de problemas reales (N+1, race conditions, memory leaks)
  • Testing: cómo testeas tu código, qué cubres
  • Colaboración: code reviews, trabajo en equipo
Lo que marca la diferencia

A este nivel, el entrevistador no busca solo que "funcione". Busca que expliques por qué tomaste cada decisión y que puedas identificar trade-offs.

Temas del nivel Semi-Senior

⚙️ C# y .NET

TemaDescripciónPrioridad
C# AvanzadoGenerics, delegates, pattern matching, async avanzado🔥 Alta
ASP.NET CorePipeline, middleware, DI, JWT, validación🔥 Alta
Entity Framework CoreQueries avanzados, migrations, performance🔥 Alta
EF Core — Performance & N+1Include, proyecciones, AsNoTracking, split queries🔥 Alta
Inyección de DependenciasScopes, lifetimes, keyed services, factory🔥 Alta
Manejo de ErroresProblemDetails, middleware, Result pattern🔥 Alta
Rate Limiting en .NET 8Fixed Window, Sliding Window, Token Bucket, Concurrency🟡 Media
Minimal API vs ControllersTrade-offs, endpoint filters, grupos🟡 Media
Background ServicesIHostedService, Worker, Channels, Quartz🟡 Media
Polly & ResilienciaRetry, circuit breaker, timeout, bulkhead🟡 Media
SignalR & WebSocketsReal-time en .NET, hubs, grupos, reconexión🟡 Media
Serilog & Structured LoggingEnrichers, sinks, correlation ID, context🟡 Media

🎨 Frontend

TemaDescripciónPrioridad
JavaScript AvanzadoClosures, event loop, prototypes, módulos🔥 Alta
TypeScript AvanzadoGenerics, utility types, decorators, type guards🟡 Media
React AvanzadoHooks avanzados, Context, Custom Hooks, React Query🔥 Alta
Estado GlobalRedux Toolkit, Zustand, cuándo usar cada uno🟡 Media
Next.js & React Server ComponentsApp Router, RSC, Server Actions, caché, SSR/ISR/SSG🔥 Alta
Performance FrontendBundle size, lazy loading, memoización, Web Vitals🟡 Media
Accesibilidad Web (a11y)ARIA, foco, live regions, testing con jest-axe🟡 Media
BlazorBlazor Server/WASM/Hybrid, componentes, lifecycle, JS Interop🟡 Media

🗄️ Datos y Persistencia

TemaDescripciónPrioridad
SQL AvanzadoWindow Functions, CTEs, índices, ejecución de queries🟡 Media
Caching & RedisCache distribuida, invalidación, patrones de cache🟡 Media
Caching — EstrategiasCache-aside, write-through, read-through, TTL🟡 Media
Transacciones en BDACID, IsolationLevel, savepoints, distributed tx🟡 Media

🧪 Testing

TemaDescripciónPrioridad
Testing (Backend)xUnit, Moq, Integration Testing, Testing Library🔥 Alta
Testing Frontend — Vitest & MSWConfiguración profesional, MSW, providers, React Query🔥 Alta
Integration TestingWebApplicationFactory, TestContainers, mocks🔥 Alta

🔌 APIs y Comunicación

TemaDescripciónPrioridad
APIs RESTPrincipios REST, versionado, paginación, documentación🔥 Alta
Autenticación & OAuthOAuth 2.0, OpenID Connect, JWT, Refresh Tokens🟡 Media
Seguridad en APIsOWASP, CORS, CSRF, input validation🔥 Alta
GraphQL con .NET y ReactHot Chocolate, DataLoader, Apollo Client, N+1🟡 Media
gRPC con .NETProtobuf, 4 tipos de comunicación, interceptores, testing🟡 Media
Message QueuesRabbitMQ, Azure Service Bus, patrones async🟡 Media

🐳 Infraestructura

TemaDescripciónPrioridad
DockerContenedores, Dockerfile, docker-compose🟡 Media
CI/CD con GitHub ActionsWorkflows, matrix, secrets, deploy automático🟡 Media

Otros

TemaDescripciónPrioridad
Patrones de DiseñoSOLID, Repository, Strategy, Observer, MediatR🔥 Alta
Performance & ProfilingBenchmarkDotNet, dotnet-trace, memory leaks🟡 Media

Horas de estudio recomendadas

TemaHoras estimadasPrioridad
C# Avanzado8-10h🔥 Alta
ASP.NET Core8-10h🔥 Alta
Entity Framework Core6-8h🔥 Alta
APIs REST5-6h🔥 Alta
JavaScript Avanzado6-8h🔥 Alta
React Avanzado8-10h🔥 Alta
Testing6-8h🔥 Alta
Patrones de Diseño8-10h🔥 Alta
SQL Avanzado5-6h🟡 Media
Autenticación & OAuth4-5h🟡 Media
Docker4-5h🟡 Media
Caching & Redis4-5h🟡 Media
Estado Global3-4h🟡 Media
Performance Frontend3-4h🟡 Media
TypeScript Avanzado4-5h🟡 Media
Next.js & RSC6-8h🔥 Alta
Testing Frontend (Vitest & MSW)5-6h🔥 Alta
Rate Limiting en .NET 83-4h🟡 Media
GraphQL con .NET y React4-5h🟡 Media
Accesibilidad Web (a11y)3-4h🟡 Media
Blazor4-5h🟡 Media
SignalR & WebSockets3-4h🟡 Media
Transacciones en BD3-4h🟡 Media
Message Queues4-5h🟡 Media
Inyección de Dependencias4-5h🔥 Alta
Manejo de Errores3-4h🔥 Alta
Seguridad en APIs4-5h🔥 Alta
Caching — Estrategias3-4h🟡 Media
Performance & Profiling4-5h🟡 Media
EF Core — Performance & N+14-5h🔥 Alta
Integration Testing5-6h🔥 Alta
Minimal API vs Controllers2-3h🟡 Media
Polly & Resiliencia3-4h🟡 Media
CI/CD con GitHub Actions3-4h🟡 Media
Background Services3-4h🟡 Media
Serilog & Structured Logging2-3h🟡 Media
gRPC con .NET4-5h🟡 Media
Total~167-210h
Plan sugerido

Dedica 2-3 horas diarias durante 5-6 semanas. Empieza con C# Avanzado, Patrones de Diseño y Testing — son los más preguntados en entrevistas Semi-Senior.

Práctica y simulacros

RecursoDescripción
Live Coding Semi-SeniorEjercicios de código en tiempo real: patrones y APIs
Preguntas frecuentesBanco de preguntas reales de entrevistas Semi-Senior
Simulacro de entrevistaEntrevista completa simulada con feedback

Lo que diferencia a un Junior de un Semi-Senior

Junior:             Semi-Senior:
"Funciona" → "Funciona Y es mantenible"
"No sé por qué"→ "Sé exactamente por qué"
"Copy-paste" → "Entiendo lo que copio"
"Sin tests" → "Tests en lógica crítica"
"1 solución" → "Veo múltiples enfoques y sus trade-offs"

Lo que diferencia a un Semi-Senior de un Senior

Semi-SeniorSenior
Diseña módulos y serviciosDiseña sistemas completos
Aplica patrones conocidosElige cuándo NO aplicar un patrón
Conoce los trade-offs técnicosDefine los trade-offs con impacto en el negocio
Trabaja dentro de la arquitecturaDefine y evoluciona la arquitectura
Resuelve problemas técnicos reactivamenteAnticipa problemas antes de que ocurran
Código correcto y bien testeadoDecisiones técnicas con visión a largo plazo
Mentoreado por seniorsMentora a juniors y semi-seniors