Experiencia de entrevista de Platform9 Systems

Parte A: Evaluación previa a la entrevista (3-4 días virtuales)

1. Después de completar el formulario de registro, cada uno de nosotros recibió una declaración del problema por correo para implementar una función de escritura anticipada similar a la búsqueda de Google para un conjunto determinado de entradas y una expresión regular para el patrón que se buscará.  

2. Nos dieron un plazo de unos 3 días para completar y enviar el trabajo con la libertad de utilizar cualquier idioma adecuado para ello.

3. Implementé lo mismo usando C++ con una biblioteca de expresiones regulares incorporada para hacer coincidir el patrón.

4. Mi enfoque fue primero modularizar el código tanto como fuera posible y al mismo tiempo hacer uso de las características disponibles como clases, objetos y funciones para organizar el código con un control de acceso adecuado.

5. Después de lograr esto, escribí algunos comentarios destacando las partes importantes del programa y lo cambié a un programa controlado por menú.  

6. Esto ayuda a la persona que revisa el código a comprender el flujo de su código y, al mismo tiempo, le permite reconocer que puede brindar más opciones, como cambiar el patrón de expresión regular o el conjunto de entradas, dar una opción para ver el patrón de expresión regular actual , etc.

7. Envié el fragmento de código junto con capturas de pantalla de la salida para los casos de prueba proporcionados por ellos, además de considerar algunos casos de esquina, por ejemplo, si solo se proporciona ‘*’ como entrada para el patrón, la salida debería mostrar todas las palabras. Sugerencia: siempre adjunte capturas de pantalla de su salida para tales tareas. A veces, es posible que los revisores no tengan tiempo para revisar todo el código. Pero si ven si el resultado de varios casos coincide con sus expectativas, eso es ciertamente útil.  

Teniendo en cuenta la presentación anterior, fui preseleccionado para la entrevista, que inicialmente se mencionó que progresaría como dos entrevistas separadas. Estaba un poco nervioso ya que era la primera vez que me preseleccionaban para una entrevista.  

Aquí hay un enlace para mi presentación en CPP: 

[https://onecompiler.com/cpp/3wmjzcnqk]

PD Basado en conversaciones con otras personas que aplicaron fuera del campus, esta declaración del problema es diferente para cada campaña de contratación. Entonces, si bien puede obtener una declaración de problema diferente, el proceso de presentar su código de manera eficiente sigue siendo el mismo.  

No memorices el código. Comprende cómo funciona.

Parte B: Entrevista 1 (35 minutos) — Ronda técnica

1. El entrevistador primero me hizo preguntas sobre mi experiencia de pasantía que se mencionó en mi currículum. Las preguntas abarcaron desde las tecnologías utilizadas durante el período, así como las tareas realizadas para el mismo.

2. Luego, la discusión se centró en probar mi conocimiento de DS y algorítmico con preguntas básicas.

3. El entrevistador planteó un problema para invertir una lista de enlaces simples.

4. Mencioné que uno de mis enfoques sería cambiar los punteros asociados con la estructura de la lista vinculada, pero después de escucharlo, me pidió que compartiera mi pantalla y lo explicara usando el Bloc de notas.

5. Procedí a explicar el procedimiento. El entrevistador me pidió que pensara en otro enfoque que no implique cambiar los punteros o alterar la lista enlazada. Le dije que puedo recorrer la Lista enlazada, mientras que al mismo tiempo la almaceno en una array. Y luego imprimiría la array en orden inverso.

6. Me pidió que ideara otro enfoque que no implique almacenarlo en otra estructura de datos. Al mismo tiempo, me dio una pista cuando se le preguntó sobre el uso de la recursividad.

7. Le dije que usaría la pila del sistema para empujar primero todos los elementos de la lista enlazada uno por uno usando recursividad y luego abrir la pila para obtener los elementos en orden inverso. Pareció satisfecho con esa respuesta.

8. Después de esto, el entrevistador me preguntó sobre mi proyecto de fin de carrera mencionado en el currículum en resumen. Le expliqué nuestro plan con respecto a lo mismo. Ese fue el final de la primera entrevista.

Parte C: Entrevista 2 (45 minutos) — Ronda técnica

1. Esta fue una ronda de selección. El entrevistador mencionó que estaba trabajando y al mismo tiempo revisando mi currículum y haciendo preguntas.

2. Me pidió que me presentara y mencionara algunas de mis áreas de interés relacionadas con la ingeniería.

3. Después de esto, la discusión se centró en mi pasantía y experiencia en proyectos. Quería saber sobre las tareas que realicé durante mi pasantía y también de qué se trataba nuestro proyecto BE. Como había algunos protocolos de IoT involucrados, me preguntó por qué se requerían los protocolos específicos en lugar de los protocolos tradicionales utilizados para aplicaciones como JSON sobre HTTP.

4. Luego, el entrevistador me dio un problema de DS: se proporcionó una array y el resultado fue almacenar el producto de los elementos restantes de la array para cada índice en otra array.

5. Procedí a escribir un pseudocódigo en el Bloc de notas después de explicar brevemente mi enfoque. Inicialmente, hubo algunos errores en mi código, como usar una variable de bucle externo en otro bucle en la posición incorrecta o perder la condición para omitir la posición de índice actual.  

6. Pero el entrevistador dio pistas al respecto y lo rectifiqué. Aún así, mi solución fue incorrecta porque no estaba restableciendo el producto a 1 antes de la siguiente iteración. Me di cuenta de esto y, finalmente, mi código finalmente fue lógicamente correcto.

7. El entrevistador luego preguntó cuál era la complejidad de tiempo y espacio del problema y si se puede mejorar la complejidad de tiempo. Sugerencia: no presente complejidades polinómicas como O(n^2) como soluciones a menos que sea necesario. Porque estos no son eficientes para manejar grandes datos.  

8. La siguiente parte se refería a mi conocimiento de los comandos de Linux. Mencioné algunos y me preguntó sobre otros comandos como:

  • netstat : si una aplicación se va a ejecutar en un puerto específico, ¿cómo podemos comprobar si otras aplicaciones están utilizando el mismo puerto y liberarlo?
  • chmod : si un archivo tiene permisos establecidos en ‘ chmod 777′ , ¿qué representa cada bit del número 777 para leer, escribir o modificar los datos, respectivamente?

9. A continuación, hubo una discusión sobre las diferencias entre diferentes lenguajes de programación como C++/Java/Python. Me hicieron algunas preguntas sobre qué idioma es adecuado para una aplicación específica y por qué.

10. Después de esto, el entrevistador me hizo brevemente algunas preguntas básicas sobre DBMS como las propiedades de ACID. Me preguntó si conocía el concepto de consistencia eventual y me pidió que se lo explicara.  

11. El entrevistador me preguntó si tenía alguna pregunta. Pregunté acerca de los diversos roles disponibles para un principiante como Dev/DevOps, la diferencia entre ellos y si estaría involucrado algún período de capacitación. Ese fue el final de la segunda entrevista.  

Sobre la base de mi desempeño en las dos primeras rondas, se me informó que habrá una tercera (final) ronda. Esperaba que fuera una ronda de recursos humanos, pero fue una ronda técnica.

Parte D: Entrevista 3 (25 minutos) — Ronda técnica

1. La discusión comenzó conmigo dando una breve introducción sobre mí y las áreas de trabajo de interés.

2. El entrevistador me preguntó cuáles eran mis temas favoritos: mencioné que me gustaban los sistemas integrados y también los sistemas operativos (SO). Me preguntó si me gustaría una discusión sobre el sistema operativo. Respondí afirmativamente. Consejo: aquí solo elija un tema con el que se sienta cómodo y que haya estudiado previamente durante su trabajo de curso. Porque si no responde las preguntas básicas, el entrevistador podría pensar que está mintiendo. Este es un rechazo con un 90% de certeza.

3. Las preguntas se referían a la programación de sockets, desde el concepto de subproceso y su relación con un proceso. Se presentó un escenario sobre una relación Productor-Consumidor y se me pidió que escribiera un pseudo-código para el mismo usando hilos y una cola para operaciones.  

4. Presenté un enfoque básico con operaciones de encolado y desencolado tanto para el lado del productor como para el del consumidor. Esto nuevamente fue en el Bloc de notas. Tenga el hábito de practicar la escritura de pseudocódigos si la entrevista es virtual, porque solo presentar su enfoque para que otros lo entiendan puede ayudar aquí. Si es en persona, tenga práctica de escribir en una pizarra.

5. No me hicieron preguntas detalladas sobre esto, tal vez solo querían probar si puedo trabajar en tales casos de uso cuando se presentan como parte del rol Dev/DevOps.  

6. Luego me preguntaron si conocía el concepto de bloqueos y/o interbloqueos en un sistema operativo. Luego, el entrevistador me preguntó si un programa simple de C/C++ con un bucle while(1) puede provocar un interbloqueo. Di una respuesta incorrecta, pero hice lo mismo con confianza. El entrevistador explicó con calma que eso no es así y me pidió que lo tuviera en cuenta. Lo que realmente quería transmitir es que si algún otro programa dependiera de este programa, podría provocar un punto muerto ya que el primer proceso no se completa, pero casi siempre te das cuenta de estas cosas después de que se completa la entrevista.  

7. El entrevistador me preguntó si tenía alguna pregunta. Mencioné que sería más adecuado para un puesto de desarrollador teniendo en cuenta mi experiencia previa en prácticas, lo cual también sugirió durante nuestra discusión, ya que DevOps cubre áreas amplias y requiere algo de experiencia.  

8. Ese fue el final de la entrevista final.

Resultado: Seleccionado

Según mi desempeño en estas tres entrevistas, me informaron por la noche del mismo día que fui seleccionado para el puesto de ‘Desarrollador de software asociado’ en Platform9 Systems India Pvt. Ltd. Esta campaña se llevó a cabo a través de nuestra TPO universitaria como un proceso de contratación en el campus, por lo que el resultado podría haber llegado un poco antes que un proceso fuera del campus. De todos modos, me gustaría mencionar que son completamente transparentes en su proceso de contratación. El departamento de RR. HH. resuelve al instante todos los pequeños detalles, por ejemplo, el enlace de la reunión que no funciona o las dudas. Se aseguraron de que lo único en lo que necesitaba concentrarme era en la entrevista. 

Como ventaja adicional, la empresa decidió aumentar el paquete en un 25 % en comparación con la oferta inicial para los cinco estudiantes seleccionados de nuestra universidad después de las entrevistas. También nos ofrecieron una pasantía de 3 meses para ayudar con la capacitación común y profundizar en la cultura laboral de las empresas emergentes. Estaba eufórico, pero en lugar del dinero, estoy más interesado en explorar cosas nuevas con un proceso de aprendizaje continuo. Así que este es un gran comienzo para mí.

Recuerda siempre que si es tu día, nadie podrá detenerte . Solo tienes que dar lo mejor de ti.

Buena suerte a todos. Espero poder ayudarlo a comprender mejor el proceso completo de contratación de Platform9 Systems.  

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 *