Preparación de la entrevista

Preguntas de entrevista para Ingeniero de Software

Un proceso de selección para ingeniero de software en España suele tener cuatro etapas: una llamada de encaje con recursos humanos, una entrevista técnica, una prueba de código (en directo o para casa) y una conversación final con el responsable del equipo. Las preguntas que siguen son las que aparecen con más frecuencia en empresas de producto y consultoras de Madrid y Barcelona, con respuestas modelo redactadas en primera persona para que pueda adaptarlas a su experiencia. No las memorice: sustituya las cifras por las suyas y practique en voz alta, porque en la entrevista técnica se valora tanto el razonamiento como el resultado.

Written & reviewed by the CVWon Editorial Team · Updated julio 2026

Cree su CV

Preguntas y respuestas

Preguntas de entrevista y respuestas modelo

Prepárese para estas preguntas frecuentes con respuestas modelo detalladas.

Por qué se hace esta pregunta

Es la pregunta de apertura y define el marco de toda la conversación. El entrevistador comprueba si sabe sintetizar, si su perfil encaja con la vacante y qué temas quiere que se exploren después.

Respuesta modelo

Soy ingeniero de software con seis años de experiencia, centrado en backend distribuido con Java y Spring Boot. Empecé en una consultora, donde roté por tres clientes de banca y seguros, y hace tres años me incorporé a una empresa de producto de comercio electrónico con 2,3 millones de usuarios mensuales. Allí lideré la migración del monolito de reservas a doce microservicios: pasamos de un despliegue semanal nocturno a veinticinco despliegues diarios y redujimos las incidencias en producción un 37 %. En el último año he asumido el papel de referente técnico de un equipo de cinco personas, con responsabilidad sobre la arquitectura y las guardias. Ahora busco un puesto en el que pueda seguir tomando decisiones de arquitectura en un producto propio, que es exactamente lo que describe su oferta.

Prepare una respuesta de entre 90 y 120 segundos con esta estructura: quién es hoy, un logro con cifras, el papel actual y por qué esta oferta. Termine siempre enlazando con el puesto, para dirigir usted la siguiente pregunta.

Por qué se hace esta pregunta

Se busca detectar conflictos no resueltos, riesgo de fuga temprana y honestidad. En el mercado español, donde la rotación media en tecnología ronda los dos o tres años, importa que el motivo sea de crecimiento y no de huida.

Respuesta modelo

Estoy a gusto y me voy en buenos términos; el motivo es de recorrido técnico. En mi puesto actual la arquitectura ya está estabilizada y mi trabajo se ha desplazado hacia el mantenimiento y la coordinación. Busco un entorno donde vuelva a haber decisiones de diseño abiertas, con volumen de datos y con un equipo del que pueda aprender. Su plataforma de pagos procesa un orden de magnitud más de transacciones que la nuestra y eso es justo el tipo de problema en el que quiero especializarme.

No critique nunca a su empresa, a su jefe ni a sus compañeros, por muy justificado que esté. Formule el motivo en positivo: hacia dónde va, no de qué escapa. Si el motivo real es salarial, dígalo con naturalidad, pero acompáñelo de un argumento técnico.

Por qué se hace esta pregunta

Permite evaluar la profundidad real de su experiencia, si tomó decisiones o solo ejecutó, y si entiende el impacto en el negocio además del detalle técnico.

Respuesta modelo

La sincronización de stock entre 140 tiendas físicas y el canal online. Había un proceso batch nocturno de tres horas y los fines de semana el inventario se desajustaba, con cancelaciones de pedidos y quejas constantes. Propuse una arquitectura orientada a eventos con Apache Kafka: cada movimiento de almacén publica un evento y los consumidores son idempotentes, con claves de deduplicación y reintentos con retroceso exponencial. Lo más difícil no fue técnico, sino convencer a operaciones para desplegar tienda a tienda durante seis semanas en lugar de hacerlo de golpe. Eliminamos el batch, los desajustes de fin de semana desaparecieron y el equipo de atención al cliente dejó de gestionar unas 200 incidencias mensuales por ese motivo.

Elija un proyecto que pueda defender a cualquier nivel de detalle, porque preguntarán por qué eligió esa tecnología y qué alternativas descartó. Incluya siempre una dificultad no técnica: negociación, plazos o resistencia interna. Y no presente como suyo el trabajo del equipo: diga con precisión qué hizo usted.

Por qué se hace esta pregunta

En un sector donde el stack cambia cada pocos años, el entrevistador quiere saber si aprende de forma autónoma o solo cuando la empresa le paga un curso.

Respuesta modelo

Combino tres cosas. Leo con regularidad los blogs de ingeniería de empresas con problemas parecidos a los nuestros y un par de boletines semanales sobre la JVM y sistemas distribuidos. Cada trimestre me fijo un objetivo concreto y lo llevo a la práctica: el último fue sustituir nuestras pruebas de integración por Testcontainers, que después propuse al equipo y adoptamos. Y mantengo una pequeña biblioteca open source en Python, que me obliga a atender issues reales de gente que no conozco. Además asisto a la Commit Conf de Madrid y a los meetups de la comunidad Java local, más por las conversaciones de pasillo que por las charlas.

Sea específico y verificable: nombre la fuente, el evento o el proyecto. Las respuestas genéricas del tipo «leo mucho y hago cursos» se descuentan. Mencione al menos un aprendizaje que acabara aplicándose en producción.

Por qué se hace esta pregunta

Mide madurez y capacidad de autocrítica. Un ingeniero sénior que nunca se ha equivocado o no ha tomado decisiones o no las ha revisado.

Respuesta modelo

Hace dos años introduje GraphQL en un servicio interno con tres consumidores conocidos y estables. La flexibilidad que aportaba no compensaba: añadió una capa de esquema que mantener, complicó el control de acceso por campo y las consultas anidadas generaron problemas de N+1 que tuvimos que resolver con un dataloader. La decisión fue mía y la tomé por interés técnico más que por necesidad del producto. A los ocho meses lo revertimos a REST con tres endpoints. Desde entonces exijo, y me exijo, escribir en el documento de diseño qué problema concreto resuelve cada tecnología nueva y qué señal nos haría dar marcha atrás.

Elija un error real pero acotado y dedique la mitad de la respuesta a lo que cambió después. Evite los falsos errores («soy demasiado perfeccionista»): en una entrevista técnica se detectan de inmediato y restan credibilidad.

Por qué se hace esta pregunta

Se comprueba si sus expectativas encajan con lo que la empresa puede ofrecer y si permanecerá el tiempo suficiente para amortizar la incorporación, que en España se estima entre tres y seis meses de rampa.

Respuesta modelo

A corto plazo espero un periodo de aprendizaje del dominio, que en pagos es denso, y poder aportar desde el principio en las revisiones de código y en la observabilidad, que es donde tengo más recorrido. A tres años me veo como referente técnico de un área, participando en las decisiones de arquitectura y con responsabilidad sobre la incorporación y el crecimiento de perfiles junior. No busco un camino de gestión pura: me interesa la vía técnica, si en la empresa existe. De hecho, quería preguntarle cómo está definida aquí la progresión entre los niveles sénior y staff.

Infórmese antes de si la empresa tiene carrera técnica definida o solo ascenso a gestión, y responda en coherencia. Devolver una pregunta al final, como en el ejemplo, convierte el interrogatorio en conversación y siempre juega a su favor.

Técnica

¿Qué preguntas técnicas se hacen en una entrevista de Ingeniero de Software?

Estas preguntas técnicas propias del puesto pueden surgir durante su entrevista.

Lo justifica un problema real de acoplamiento organizativo o de escalado desigual: varios equipos bloqueándose en el mismo despliegue, o un módulo que necesita diez veces más recursos que el resto. No lo justifica que esté de moda ni que el código esté desordenado, porque un monolito mal modularizado se convierte en un sistema distribuido mal modularizado, con la latencia de red y la complejidad de datos añadidas. Mi orden preferido es: primero delimitar módulos con fronteras claras dentro del monolito, medir dónde duele de verdad y extraer solo ese contexto, empezando por el que menos comparta datos transaccionales. Y antes de dar el paso hay que tener listas tres cosas: despliegue automatizado, trazabilidad distribuida y una estrategia de consistencia eventual que el negocio acepte.

El B-tree es el índice por defecto y sirve para comparaciones de igualdad y rango sobre valores escalares ordenables, además de para ORDER BY: es el que quiero en una clave foránea, en una fecha o en un identificador. El GIN es un índice invertido para valores compuestos: arrays, jsonb y búsqueda de texto completo con tsvector. Si consulto con el operador de contención sobre una columna jsonb o busco palabras dentro de un documento, el B-tree no ayuda y el GIN sí. El precio del GIN es que ocupa más y encarece las escrituras, porque una fila genera muchas entradas; con inserciones intensivas conviene revisar el parámetro fastupdate y el mantenimiento. En cualquier caso, la decisión se toma leyendo el EXPLAIN ANALYZE de la consulta real, no de memoria.

Parto de que la entrega es al menos una vez, así que el consumidor debe tolerar duplicados. Uso una clave de negocio estable en el mensaje, por ejemplo el identificador del pedido más el tipo de evento, y la registro en una tabla de mensajes procesados con restricción de unicidad, dentro de la misma transacción que escribe el resultado. Si el mensaje ya está, se descarta y se confirma el offset. Cuando el productor también debe ser fiable, aplico el patrón outbox: la operación de negocio y el evento se escriben en la misma transacción de base de datos y un proceso aparte publica en Kafka. Además confirmo los offsets después de procesar, nunca antes, y configuro una cola de mensajes fallidos para los que agotan los reintentos.

Para una API pública consumida por clientes que no son navegadores propios elijo tokens, normalmente OAuth 2.0 con JWT de vida corta y refresh token, porque no exige estado compartido entre instancias y encaja con clientes móviles y de terceros. Asumo el inconveniente principal: un JWT no se puede revocar de verdad hasta que caduca, así que uso caducidades de cinco a quince minutos, una lista de revocación para casos críticos y rotación de claves de firma. Si el consumidor fuera solo mi propio frontend web, una sesión en servidor con cookie HttpOnly, SameSite y protección CSRF es más simple y más segura, y la revocación es inmediata. La decisión depende de quién consume, no de qué tecnología es más moderna.

Primero confirmo el patrón con las métricas: si el uso del heap tras cada recolección completa crece de forma sostenida, es una fuga; si solo crece la memoria del proceso y no el heap, sospecho de memoria nativa, hilos o buffers directos. Después capturo un histograma con jcmd y, si hace falta, un volcado de heap para analizarlo con Eclipse MAT buscando los objetos que dominan la retención y la cadena de referencias que los mantiene vivos. Las causas más frecuentes que he encontrado son cachés sin límite ni política de expiración, ThreadLocal sin limpiar en pools de hilos y listeners o conexiones que no se cierran. Reproduzco en preproducción con carga sintética, corrijo y verifico con una prueba de resistencia de varias horas antes de volver a producción.

Empiezo por acotar los requisitos: proporción de lecturas y escrituras (aquí es muy asimétrica, quizá 500 a 1), si los códigos deben ser impredecibles, si hacen falta métricas de clics y cuál es la latencia objetivo. El modelo es sencillo: código corto como clave y URL original como valor. Genero el código con un contador distribuido codificado en base 62, que evita colisiones, o con un hash truncado más comprobación si se exige impredecibilidad. Para la lectura, una caché en Redis delante del almacén persistente absorbe casi todo el tráfico, porque el acceso sigue una distribución muy sesgada; con un CDN por delante y redirecciones 301 cacheables se reduce todavía más. La escritura va a una base de datos particionada por el código. Y cerraría hablando de lo que suele olvidarse: caducidad de enlaces, protección contra abuso y bloqueo de destinos maliciosos.

Situacional

¿Para qué preguntas situacionales debe prepararse en una entrevista de Ingeniero de Software?

Situaciones y preguntas de comportamiento a las que puede enfrentarse.

Lo primero es contener, no entender: si existe despliegue reciente, revierto a la versión anterior o desactivo la funcionalidad con el feature flag, porque restablecer el servicio siempre va antes que encontrar la causa. En paralelo abro un canal de incidencia, aviso al responsable de guardia y a atención al cliente con un mensaje claro sobre el alcance, y reviso las trazas y los paneles para acotar qué transacciones se han visto afectadas. Con el servicio estabilizado, evalúo si los pagos fallidos requieren reproceso o devolución y lo acuerdo con negocio. La causa raíz y el arreglo definitivo pueden esperar al lunes; el post mortem sin culpables, no más de una semana después, con acciones concretas y responsables asignados.

Distingo entre lo que bloquea y lo que no. Si el cambio toca una ruta crítica sin pruebas, lo marco como bloqueante y lo explico por escrito con el riesgo concreto, no como una cuestión de estilo. Después ofrezco una salida realista: escribir juntos las dos o tres pruebas que cubren el camino principal, que suele costar media hora, o desplegar detrás de un flag apagado y completar las pruebas antes de activarlo. Si la presión de la fecha es real, la conversación deja de ser entre dos ingenieros y sube al responsable de producto, con el coste técnico explicitado. Lo que no hago es aprobar en silencio y comentarlo después: eso convierte un problema técnico en un problema de confianza.

No discuto la fecha, discuto el alcance. Descompongo la funcionalidad y muestro qué parte aporta ya valor en dos semanas y qué parte no: en el último caso similar, entregamos el flujo principal sin el panel de administración ni la exportación, que llegaron cinco semanas después. Explico también qué se puede acelerar con más manos y qué no, porque hay tareas secuenciales. Si nada de eso es aceptable, expongo las opciones con su coste: entregar con deuda técnica asumida y planificada, reducir el alcance o mover la fecha; la decisión es de producto, pero con la información encima de la mesa. Lo importante es dejarlo por escrito para que dentro de tres meses nadie recuerde una versión distinta de lo acordado.

Antes de tocar nada, consigo poder ejecutarlo en local y observarlo: logs, métricas y un entorno donde reproducir el flujo. Después escribo pruebas de caracterización sobre el comportamiento actual, aunque ese comportamiento sea raro, porque son mi red de seguridad y a la vez la documentación que no existe. Con eso, aíslo la zona que debo modificar creando una costura o interfaz, añado la funcionalidad nueva con sus propias pruebas y evito la tentación de reescribirlo todo de paso. Voy anotando en un documento lo que descubro y las decisiones sorprendentes, con los nombres de quienes puedan conocer el contexto histórico; una conversación de veinte minutos con quien lo mantuvo hace tres años ahorra días de arqueología.

Preparación

Consejos de preparación

1

Estudie el producto y el stack de la empresa antes de la entrevista: su blog de ingeniería, sus repositorios públicos, las tecnologías citadas en la oferta y, si es un producto de uso público, pruébelo y llegue con una observación concreta. Es la diferencia más visible entre candidatos.

2

Prepare cuatro historias con el esquema situación, tarea, acción y resultado, cada una con al menos una cifra: una migración o proyecto grande, un conflicto con otra persona, un error propio y una incidencia en producción. Con esas cuatro cubrirá el 80 % de las preguntas de comportamiento.

3

Practique la prueba de código en voz alta y en su entorno habitual, no en uno recién instalado. Verbalice el razonamiento, pregunte los supuestos antes de escribir y empiece por una solución correcta y sencilla, que optimizará después: en España la mayoría de las pruebas técnicas valoran más el proceso que llegar a la solución perfecta.

4

Repase su propio CV proyecto por proyecto. Todo lo que aparezca escrito es materia examinable, y una tecnología que puso «porque la toqué una vez» puede consumir veinte minutos de entrevista técnica.

5

Prepare la parte en inglés si la vacante es de una multinacional o de una startup con equipo internacional en Madrid o Barcelona: al menos su presentación personal y la explicación de un proyecto. Suele haber una ronda entera en inglés y llegar sin ensayarla se nota mucho.

6

Lleve preguntas propias sobre lo que de verdad condiciona su día a día: modalidad de teletrabajo y días de presencia, sistema de guardias y su compensación, convenio aplicable y número de pagas, tamaño del equipo, proceso de despliegue y presupuesto de formación. Preguntar esto no resta puntos; señala experiencia.

7

Confirme antes del proceso cuántas etapas tiene y quién le entrevistará en cada una. ¡No dé por hecho que la prueba técnica es la última! Saber que después hay una entrevista con el responsable del área le permite reservar argumentos y no quemarlos todos en la primera conversación.

Cómo responder: «¿Cuáles son sus expectativas salariales?»

He revisado el mercado para perfiles de backend sénior con seis años de experiencia en Madrid y mi horquilla está entre 52.000 y 60.000 € brutos anuales. La cifra concreta depende del paquete completo: número de pagas, modalidad de teletrabajo, si hay guardias y cómo se retribuyen, retribución flexible y presupuesto de formación y certificaciones. Si el resto de condiciones encaja, hay margen para hablarlo. Antes de cerrar una cifra, ¿podría indicarme qué banda tienen prevista para este puesto y cómo está definida la revisión salarial una vez superado el periodo de prueba?

FAQ

Preguntas frecuentes

Lo habitual son entre tres y cinco: llamada de encaje con recursos humanos (20-30 minutos), entrevista técnica con un ingeniero del equipo, prueba de código en directo o para casa, y conversación final con el responsable del área o de ingeniería. En banca y en el sector público pueden añadirse pruebas psicotécnicas y varias rondas más. El proceso completo suele durar entre dos y cinco semanas.

Es habitual y en general no se remunera. Lo razonable es que no exceda las cuatro o cinco horas y que exista una alternativa en directo si su situación no le permite dedicar el fin de semana. Si le piden desarrollar algo que se parece sospechosamente a una funcionalidad real del producto o que le ocupe varios días, es legítimo preguntarlo y también declinar.

Depende del empleador. En multinacionales, centros de desarrollo internacionales y startups con equipo distribuido, al menos una ronda será en inglés y el nivel exigido suele ser B2 o C1. En consultoras nacionales, banca española y administración pública, el proceso completo se desarrolla normalmente en español, aunque la documentación técnica esté en inglés.

Pregunte por el tipo de contrato (lo estándar es indefinido) y la duración del periodo de prueba, el convenio colectivo aplicable, el salario bruto anual y en cuántas pagas se reparte, la parte variable y cómo se calcula, los días de vacaciones por encima del mínimo legal, la política de teletrabajo por escrito y el régimen de guardias. Pida siempre la oferta por escrito antes de renunciar a su puesto actual.

Sí, aunque el margen es menor. En consultoras con bandas cerradas por convenio suele haber poco recorrido en el bruto, pero sí en la formación pagada, las certificaciones, los días de teletrabajo o la fecha de la primera revisión. Negocie siempre después de recibir la oferta, nunca en la primera llamada, y hágalo sobre datos de mercado, no sobre lo que necesita para pagar el alquiler.

¿Todo listo para triunfar en su entrevista?

Cree su CV

Relacionados

Puestos relacionados

Analista de Datos

Tecnología

Ingeniero DevOps

Tecnología

Responsable de Producto

Tecnología

Diseñador UX

Tecnología

Diseñador UI

Tecnología

Analista de Ciberseguridad

Tecnología