Experiencia de entrevista de Microsoft | 3 años de experiencia

Ronda 1 (Ronda de codificación en línea):

  • El reclutador me envió el enlace para la prueba el lunes y me pidió que lo completara para el martes si quería recibir una invitación para el viaje del viernes.
  • Plataforma Codility, 2 preguntas de codificación, 70 minutos
  • Era solo una ronda de elegibilidad. Cualquier persona que obtuviera más del 50 % fue invitada a la campaña de colocación.

Unidad de colocación

  • Las entrevistas comenzaron a las 9 de la mañana de un viernes. Cada ronda era una ronda de eliminación.
  • Después de cada ronda, recibí una llamada del Reclutador con los detalles de la próxima ronda.
  • Cada entrevistador dará algo de tiempo al final para hacer preguntas. Trate de estar preparado con algunas preguntas.

Ronda 2 (Entrevista técnica Ronda 1):

  1. Se le da a la array una array de montaña
    • https://leetcode.com/problems/valid-mountain-array/
    • Codificó una solución O(n) simple.
    • El entrevistador quedó satisfecho y avanzó rápidamente porque quería comenzar con una pregunta fácil.
  2. Mediana de 2 arreglos ordenados de diferentes tamaños

Ronda 3 (Entrevista técnica Ronda 2):

  1. Discusión sobre los proyectos en los que he trabajado en mi empresa actual. Me pidió que hiciera un DAN de mi proyecto actual, junto con los requisitos y el diagrama arquitectónico.
  2. Diseñar una API para el Servicio Front End.
    • Utiliza Java y Spring JPA.
    • Codificó la capa de entidad, repositorio, servicio, servicio comercial y controlador.
    • Además, escribió un fragmento para la configuración de la conexión yml y las dependencias requeridas.
    • Hizo algunas preguntas de seguimiento y finalmente quedó satisfecha con todo el código.
  3. Hay un servicio de Windows ejecutándose en producción. Sondea la base de datos en busca de los 10 registros principales (tareas) de acuerdo con la prioridad y coloca esos registros en la cola para su procesamiento. Los valores de prioridad de las tareas pueden ser P1, P2 y P3. Por alguna razón, la cola está bloqueada. Una solicitud ad hoc proviene del cliente para procesar una tarea de menor prioridad (por ejemplo, P2)
    • ¿Qué pasos se pueden tomar para manejar dichas requests ad hoc cuando no se ha incorporado dicho mecanismo y la cola también está bloqueada?
    • ¿Qué otras modificaciones se pueden hacer en este sistema para prepararlo para cualquier solicitud ad hoc adicional y para tratar con la cola bloqueada?
    • Tuvimos una larga discusión sobre los enfoques. Tenía contrapreguntas para todas mis sugerencias.
    • A partir de esta pregunta, quería comprobar mi comprensión general del diseño para fallos y otros conceptos de diseño de sistemas.

Ronda 4 (Entrevista técnica Ronda 3)

  1. Encuentra el elemento repetido en una array ordenada
  2. Diseñe un sistema de registro especial (LLD). Este sistema recibe un mensaje de registro y una marca de tiempo. El requisito es descartar el mensaje si se recibe el mismo mensaje dentro del marco de tiempo de 10 segundos. Pero cada vez que se recibe un mensaje, su temporizador debe reiniciarse y ese temporizador debe permanecer válido durante los próximos 10 segundos de la última solicitud.
    • Por ejemplo, si se recibió un mensaje M1 en t=1. Ahora, si se recibe el mismo mensaje M1 en t = 9, debe descartarse, ya que está dentro de los 10 segundos. Pero ahora, esta ventana debería ser válida hasta t = 19, ya que el último mensaje M1 se recibió en t = 9.
    • Tuvimos mucha discusión sobre las estructuras de datos que podemos usar.
    • Finalmente accedió a que usara una combinación de MaxHeap (PriorityQueue) y HashMap.
    • Finalmente codifiqué la solución completa y discutimos todos los casos extremos.
    • Después de mucha discusión y modificaciones, finalmente quedó satisfecho con el código final.

Ronda 5 (ronda del gerente de contratación):

  • Las primeras 3 entrevistas técnicas se completaron el viernes como parte de la campaña.
  • Esta entrevista fue programada para el martes por la noche.
  • Esta es la persona que tendrá la última palabra para decidir si quiere lanzar una oferta para usted o no.
  • Tuvo una retroalimentación detallada de todas mis rondas anteriores, incluidas las preguntas que se hicieron y cómo me había desempeñado.
  • Estaba satisfecho con mi desempeño general en las rondas anteriores y tuvimos una discusión sobre la pila tecnológica en la que me siento cómodo.

Pregunta de diseño (LLD):

  • Diseñar una aplicación de agenda telefónica
  • Enumeré todas las características/requisitos que se me ocurrieron.
  • Seguimos adelante y discutimos cada una de estas características y cómo podemos lograrlo.
  • Finalmente, me pidió que me concentrara en solo 3 funciones: listContacts(), searchContacts(), displayFavourite()
  • Sugerí InMemory-DB (SQLite) para listContacts(), Trie para searchContacts() y MaxHeap para displayFavourite(), y luego le expliqué el enfoque usando cada una de estas estructuras de datos.
  • Después de mucha discusión, finalmente quedó satisfecho con mi enfoque.

Me dio los últimos minutos para hacer algunas preguntas. Después de que respondió, insinuó que me comunicaré con Recursos Humanos para continuar con el proceso.

Al día siguiente, recibí una llamada del reclutador que me había seleccionado y el departamento de recursos humanos me contactó el mismo día para obtener los documentos.  

Publicación traducida automáticamente

Artículo escrito por DJagwani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *