Experiencia de entrevista de Nutanix para pasante de MTS | Presencial 2021 (Virtual)

Hola chicos, recientemente me entrevistaron para el puesto de miembro del personal técnico (MTS) en Nutanix. Todo el proceso fue virtual debido a la situación actual de pandemia. El proceso de selección comprendió 1 ronda de codificación, 1 ronda de depuración, 1 ronda técnica y 1 ronda de diseño del sistema.

Ronda de Codificación (2 Preguntas – 90 minutos Plataforma – HackerRank)

  1. Tienes que publicar X comic comics diferentes. Para ello dispones de máquinas de impresión Y y máquinas de encuadernación Z. La i-ésima máquina de impresión tarda Print[i] minutos en imprimir todas las páginas de un cómic. Cada máquina de encuadernación tarda K minutos en encuadernar todas las páginas del cómic. En un momento dado, cada máquina (de impresión o encuadernación) solo puede procesar la mayoría de las páginas de un cómic.

    Los pasos a seguir para la publicación son:

    1. Una máquina de impresión ocupada comienza a imprimir páginas de historietas.
    2. Después de imprimir[i] minutos, las páginas impresas se sacan de la i-ésima máquina de impresión.
    3. Después de una cantidad de tiempo no negativa, las páginas impresas del cómic se colocan en una máquina de encuadernación desocupada.
    4. Después de K minutos, las páginas se sacan de la encuadernadora.

    Descubre el tiempo mínimo para publicar X cómics.

    Constraint:
    
    1<=X<=10^6   
    1<=Y<= 10^5 
    1<=Z<=10^9 
    1<=K<=10^9 
    1<=print[i]<= 10^9
  2. Hay N robots en una sola fila, cada uno de los cuales tiene asignado un valor entero. Cada robot puede terminar con el robot más cercano a la izquierda o a la derecha. Cuando un robot con un valor x termina otro robot con el valor y, luego el robot terminado desaparece, el valor cambia a xy. Todos los robots acabarán entre sí hasta que quede uno. Encuentre el valor máximo posible del último robot.
    Constraints
    
    1<=N<=500000 
    -10^9<=A[i]<=10^9 

    Pude completar la segunda pregunta con todos los casos de prueba. Para la primera pregunta, pude pasar 20/21 casos de prueba.

13 estudiantes fueron preseleccionados después de esta ronda.

Ronda de depuración (45 minutos): esta ronda se llevó a cabo en una llamada de zoom y el supervisor compartió un documento separado con cada uno de los candidatos y se nos pidió que depuráramos el código. 

  • El código estaba relacionado con un problema estándar del sistema operativo que es un problema de lector-escritor. Tuvimos que encontrar errores lógicos en el código dado. 
  • La funcionalidad de cada función se definió claramente para cada función, por lo que no hay razón para entrar en pánico porque es completamente lógico. 
  • Pude encontrar errores en el código que había preparado para esta ronda. 
  • Sugiero preparar los problemas estándar como lectores-escritores, productor-consumidor, problema del filósofo comedor, etc. para esta ronda. 
  • 7 candidatos despejaron esta ronda.

Ronda de entrevistas técnicas (DSA – 1 hora a 1 hora 15 minutos): antes de esta ronda, 2 candidatos ya habían recibido una oferta de otra empresa, por lo que estaban fuera del proceso de contratación. Solo 5 candidatos dieron la ronda técnica. Lo especial de Nutanix para esta ronda es que formulan sus propias preguntas que no están disponibles en ningún lado. Ponen a prueba su habilidad de pensamiento sobre cómo aborda el problema.

La entrevista se realizó en una llamada de zoom. El entrevistador primero me pidió que me presentara y me preguntó sobre mis intereses y pasatiempos. Fue muy amable e incluso me preguntó sobre mi programa de televisión favorito. Luego compartió un enlace de Google Doc y me pidió que codificara las siguientes preguntas.

  1. Dado un árbol con N Nodes. Cada borde bidireccional (i, j) en el árbol entre el Node i y el Node j tiene un peso. Hay un Node especial X en el árbol. Calcule la suma de la distancia de todos los Nodes a este Node especial X, es decir, dis(X,1)+dis(X,2)+dis(X,3)…..+dis(X,N). Mi enfoque para esto fue considerar el árbol como un gráfico (desde los bordes bidireccionales) y luego realizar BFS para calcular la suma. La complejidad temporal era O(V) y la complejidad espacial era demasiado lineal.
  2. La siguiente pregunta fue un seguimiento de la pregunta anterior. Ahora se proporciona un conjunto S de tamaño K, que denota K Nodes especiales en este árbol. Para cada Node i en el árbol, calcule la suma de las distancias de i a cada uno de estos K Nodes, es decir, Val(i)= dis(S[1],i) + dis(S[2],i)+…. .+dis(S[K],i). Encuentre el Val[i] mínimo y el Node para el cual este valor es mínimo. En otras palabras, encuentre el min(Val(1), Val(2),…..Val(N)) y el Node para el cual existe el valor mínimo. El entrevistador quería que editara mi algoritmo anterior para la pregunta anterior y formara una solución para esta pregunta. Me dio pistas cada vez que estaba atascado y pude encontrar una solución en la que teníamos que empujar inicialmente todos los Nodes especiales K a la cola y luego realizar BFS manteniendo la distancia mínima encontrada hasta ahora almacenándolo en un variable de distancia mínima.
  3. La siguiente pregunta era completamente nueva y el entrevistador solo quería que escribiera el enfoque y el pseudocódigo y la complejidad del tiempo. La pregunta era – En una ciudad hay varias casas. Debe encontrar una forma óptima en la que cada casa pueda recibir un suministro de agua. Cada casa necesita tener un suministro de agua. Además, hay un costo asociado con la apertura de un pozo en cada casa. Costo[i] denota el costo de abrir un pozo en la casa i. Además, se proporciona un gráfico. Cada borde bidireccional (i, j) tiene el costo ponderado (i, j) de establecer un suministro de agua entre la casa I y la casa j. Ahora encuentra una manera de asegurar que cada casa reciba agua. Todo el arreglo debe costar lo más bajo posible. Mi primer enfoque fue un enfoque codicioso para ordenar la array de costos y luego verificar si el costo [i] de construir bien en la ciudad i es menor que el peso del borde. El enfoque fue incorrecto, por lo que el entrevistador me dio una pista y pude deducir que primero tenemos que construir el árbol de expansión mínimo y luego eliminar los bordes con un peso mayor que la construcción de un nuevo pozo en esa ciudad. Como la parte que requiere más tiempo sería construir un árbol de expansión mínimo, la complejidad temporal de la solución será O(VlogE) y el espacio será O(V+E).

El entrevistador fue muy amable y me ayudó cada vez que tuve una duda. También corrigió donde había cometido errores y me hizo corregirlos. Después de esta ronda, se seleccionaron 3 candidatos para la siguiente ronda.

Ronda de diseño del sistema (1 hora): esta ronda también se llevó a cabo en Zoom Call. 

  • El entrevistador primero se presentó y luego me pidió que hiciera lo mismo. 
  • Luego me dio la declaración del problema para diseñar el sistema de entrega de pizza de Domino. Estaba un poco nervioso por esta ronda porque nunca había hecho diseño de sistemas. Me había preparado para ello solo durante unas 3-4 horas con una comprensión básica de sus conceptos. 
  • El entrevistador fue de gran ayuda durante el proceso y me ayudó con sugerencias cada vez que estaba atascado. Primero me pidió que diseñara una estructura básica para el sistema. Luego me hizo varias preguntas de seguimiento relacionadas con requisitos funcionales, requisitos no funcionales, qué base de datos sería más adecuada, tablas de diseño de esquemas, cómo garantizar la seguridad y privacidad del usuario, qué protocolo usar, supongamos que si la base de datos se vuelve completa cómo hacerla escalable, qué estructura de datos usaría para construir su base de datos y por qué, cómo optimizar las requests para los usuarios más rápido, qué tipo de caché usará, qué estructura de datos usaría para su caché, cómo almacene las marcas de tiempo para el inicio de sesión de los usuarios para que no permanezcan conectados al sistema durante mucho tiempo, ¿cómo manejaría si hay una gran cantidad de requests de usuarios y todo eso? 
  • Pude responder a las preguntas de seguimiento con una razón adecuada para ello. El entrevistador aceptó mi solución para el enunciado del problema. Al final le hice algunas de las preguntas relacionadas con el ambiente de trabajo en la empresa y con mucha paciencia me explicó todo. La entrevista había ido muy bien según yo.

Veredicto: Fui el único candidato seleccionado al que se le ofreció una pasantía en Nutanix. El proceso de la entrevista fue realmente sencillo y el entrevistador fue muy amable y estoy agradecido por esta oportunidad brindada por Nutanix.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *