Morgan Stanley es un banco de inversión líder a nivel mundial y una firma de gestión patrimonial y se centra principalmente en tres unidades principales, como valores institucionales, gestión patrimonial y gestión de inversiones.
Soy un estudiante graduado de B.tech en informática e ingeniería de la universidad de nivel 3. Obtuve una referencia en LinkedIn para el puesto de ingeniero de datos en la división Mumbai/Bengaluru de Morgan Stanley. Morgan Stanley consta de cinco rondas para el rol de ingeniero de datos antes de que se tomen las decisiones finales.
El proceso de contratación fue el siguiente:
Ronda 1: Ronda Preliminar (Prueba en línea)
Este es el TEDRA-India-Data-Engineering-Recruiting-Test realizado en la plataforma Hackerrank. La duración total de la prueba fue de 2 horas y constó de 4 secciones, cada una de las cuales fue cronometrada individualmente. Las secciones eran:
- Preguntas de codificación SQL:
- Preguntas basadas en Python y SQL MCQ:
- Una pregunta de codificación basada en la estructura de datos:
- Transacciones de bases de datos relacionales y preguntas de escenarios basados en la administración:
- Preguntas de MCQ basadas en Unix y sistema operativo:
Hice todas mis preguntas de SQL y todas las secciones de MCQ basadas en técnicas decentemente y pasé todos los casos de prueba de la pregunta de codificación. Completé mi prueba en 1 hora y 50 minutos. El nivel de codificación de las preguntas es medio y las preguntas basadas en MCQ son de media a difícil.
Puntas:
- Concéntrese en temas de estructura de datos de nivel básico, como array, string, pila, cola, lista vinculada y árbol (solo árbol de búsqueda binaria).
- Céntrese principalmente en conceptos y consultas de SQL (funciones agregadas, funciones de ventana (muy importantes), diferentes tipos de uniones, cómo usar diferentes tipos de uniones en diferentes escenarios, operación de unión, agrupar por, subconsultas, cláusula de tener, etc.) Puede consulte https://www.geeksforgeeks.org/sql-tutorial/ para familiarizarse con los conceptos de SQL.
- Centrarse en los conceptos de DBMS. Puede consultar https://www.geeksforgeeks.org/dbms/ para aprender conceptos de DBMS (Conceptos de relación de entidad, Normalización, Transacción y Control de concurrencia).
- Enfóquese principalmente en las estructuras de datos de Python, como Lista, Tupla, Conjunto y Diccionario (nivel medio). También puede profundizar en Pandas (biblioteca de Python).
- Revise los comandos basados en Unix y cómo escribir scripts de shell (nivel fácil). En su mayoría, todos están familiarizados con los comandos basados en UNIX y Linux. Simplemente puede pasar por https://www.geeksforgeeks.org/essential-linuxunix-commands/ antes de intentar la evaluación.
Ronda 2: Entrevista Técnica 1
- Recibí una llamada de RR. HH. que mi prueba en línea está aprobada y que fui preseleccionado para una discusión técnica. Esta ronda duró aproximadamente 1 hora y 20 minutos que toma el gerente de Morgan Stanley.
- Esta entrevista se centró básicamente en preguntas basadas en SQL, preguntas de codificación de Python, conceptos de Big Data, Spark, herramienta de ingesta de datos Sqoop, Hive, HDFS, Map Reduce Concepts, conceptos de computación en la nube, SDLC, metodología Agile (basada en el marco Scrum a un alto nivel) ,
- Estrategia DevOps (nivel básico), canalización de CI/CD, Git, conceptos de bases de datos, bases de datos NoSQL (Stardog Graph Database), preguntas de escenarios basadas en servicios de AWS y preguntas de bases de estructuras de datos simples (Array & Stack).
Algunas de las preguntas de codificación SQL que se hicieron:
- Considere dos tablas A y B que tienen la columna ‘id’ de la siguiente manera:
identificación |
---|
1 |
2 |
1 |
identificación |
---|
1 |
1 |
1 |
Me pidieron que encontrara el número de filas presentes en el resultado final en los cuatro casos: combinación interna, combinación izquierda, combinación externa derecha y combinación externa completa.
- Resuelva la consulta SQL https://www.geeksforgeeks.org/sql-query-to-find-the-nth-largest-value-in-a-column-using-limit-and-offset/ .
- Dada una tabla de empleados con atributos son empId, empSalary, empDeptId y tabla de departamentos con atributos deptId, depName, CourseOffered. Me pidieron que escribiera una consulta SQL para encontrar al empleado que tiene el salario más alto en cada departamento usando las funciones de Windows en el bloc de notas. Usé la función de ventana dense_rank para construir consultas SQL. Me pidieron que explicara la razón por la que usé dense_rank en lugar de la función rank.
- Algunas preguntas se basaron en las funciones de la ventana de adelanto, retraso y título y sus usos. Los expliqué muy bien tomando ejemplos y escribiendo consultas SQL para los mismos.
Preguntas basadas en Apache Hive & Sqoop:
- En primer lugar, me pidió que explicara Hive según la definición oficial. Qué base de datos predeterminada utiliza Hive para almacenar metadatos. Le dije: «De forma predeterminada, Hive usa un servidor Derby SQL incorporado».
- Algunas preguntas profundas basadas en escenarios sobre el agrupamiento y partición de colmenas y sus diferencias.
- Diferencia entre tablas colmena externas y administradas utilizando el concepto de metadatos de tabla y transacciones ACID.
- ¿Cómo podemos obtener los datos de la tabla externa descartada (por error) de Hive?
- 1 pregunta basada en la carga incremental de Sqoop y me pidió que escribiera el comando Sqoop para el mismo tomando cualquier caso de uso.
- Me pidieron que escribiera un comando Sqoop para importar todas las tablas relacionales de MySQL a HDFS.
Basado en preguntas sobre CI/CD, Git y DevOps (nivel básico):
- Me pidieron que explicara la forma completa de CI/CD. Le dije que CI/CD significa Entrega continua de integración continua/Despliegue continuo. Luego, me preguntó la diferencia entre entrega continua e implementación continua.
- También me pidieron que explicara el funcionamiento de CI/CD en detalle. Lo expliqué en profundidad tomando el ejemplo del CI/CD incorporado de GitLab.
- Preguntas basadas en el corredor de Gitlab y el ciclo de vida de DevOps (ya que trabajé en Gitlab). Me pidió que diera algunos ejemplos de herramientas DevOps con las que estoy familiarizado. Expliqué Jira y Jenkins a un alto nivel al entrevistador.
Algunas otras preguntas que me hicieron fueron:
- Me pidieron que explicara el conocimiento del rack de HDFS y el funcionamiento interno de Apache Spark Architecture.
- Me pidió que le explicara qué sucederá cuando envíe la solicitud de chispa al motor de chispa. Diferencia entre transformaciones estrechas y anchas con ejemplos.
- Diferencia entre coalescencia y repartición en chispa. Cuál es mejor en términos de rendimiento. Me pidieron que explicara si la cantidad de particiones creadas después de aplicar para fusionar y volver a particionar sigue siendo la misma o diferente para el mismo conjunto de datos.
- Cómo programar trabajos de chispa con Databricks.
- Discusión basada en cómo Hadoop logra una alta disponibilidad.
- Se hicieron preguntas basadas en conceptos basados en Data Lake, esquemas de almacenamiento de datos (esquema Star & Snowflake), servicios en la nube (p. ej., un poco sobre (máquina AWS EC2, políticas y roles de IAM, cómo el depósito S3 almacena los datos).
- Me pidió que escribiera un código para cargar archivos CSV en el depósito S3 usando la biblioteca boto3. Escribí el código para el mismo usando Python y la biblioteca boto3 en un bloc de notas. Pero no recuerdo la sintaxis adecuada, pero él estaba de acuerdo con el enfoque y el pseudocódigo.
- 2-3 preguntas basadas en SDLC y metodología Agile. Me pidieron que explicara cuánto soy consciente de Agile. Expliqué Agile con un marco ágil (Scrum) tomando conceptos de un sprint, Jira Board, enfoque iterativo en detalle. Por qué se prefiere Agile al modelo en cascada.
Finalmente, me preguntó si tenía alguna pregunta. Le pregunté sobre la pila de tecnología que se utiliza en su equipo de plataforma de datos. Me explicó su stack tecnológico en detalle.
Ronda 3: Entrevista técnica 2
Recibí un correo para la segunda ronda técnica que toma el vicepresidente de Morgan Stanley. Esta ronda duró unos 45-50 minutos. La entrevista comenzó con mi presentación, mi experiencia, el conjunto de habilidades tecnológicas en las que había trabajado. La mayoría de las preguntas se hicieron con base en Modelado de datos, Databricks Lakehouse Architecture, PySpark & Architecture Design (ETL Design). En primer lugar, me explicó cómo crear un modelo de datos para bases de datos relacionales. Usé todas las técnicas de normalización y desnormalización para crear el modelo de datos relacional. Después,
- Me pidieron que explicara la arquitectura interna y de trabajo del lago de Databricks. Me pidieron que explicara los conceptos de ingestión y transformación de datos de la canalización de ETL en profundidad. Expliqué todos los pasos en detalle tomando el ejemplo de la herramienta ETL de AWS Glue y el almacén de datos Redshift. Algunas preguntas más son las siguientes: El entrevistador me dio un escenario y me pidió que explicara qué controles preliminares debo realizar al diseñar la canalización de ETL.
- Se hicieron una o dos preguntas basadas en el procesamiento por lotes y el procesamiento continuo con Spark.
- Cómo funciona la capa de preparación en la canalización de datos y sus usos.
- Las preguntas se basaron en la arquitectura del almacén de datos.
- Me pidieron que explicara el caso de uso de los casos de prueba de unidad y cómo crearé casos de prueba de unidad usando el código SQL y PySpark (ya que trabajé en la creación de casos de prueba de unidad en mi proyecto anterior).
- Me pidió que escribiera un pseudocódigo para construir una tubería ETL ficticia usando Python. Usé la estructura de datos de Python y la biblioteca de pandas para extraer, limpiar los datos, transformar los datos y cargar el conjunto de datos final en formato CSV.
- Preguntas realizadas en función de la supervisión de Spark y la gestión del rendimiento de Spark. Expliqué todas las respuestas en profundidad tomando ejemplos prácticos.
Esta ronda se centró totalmente en el modelado de datos, el diseño de tuberías PySpark y ETL.
Ronda 4: Ronda Techno Gerencial
Esta entrevista fue tomada por el director ejecutivo de Morgan Stanley. Esta ronda duró unos 45 minutos. Me pidieron que me presentara. Luego, hay una discusión sobre los proyectos universitarios en los que trabajé, mi experiencia de pasantía en ZS Associates, mis roles y responsabilidades en el proyecto. También me pidieron que explicara mis trabajos de investigación sobre Web Crawler para la clasificación de sitios web basados en el tráfico web y las vistas de página que publiqué en las conferencias internacionales de IEEE y Springer. Le gustaron mis puntos fuertes y mi voluntad de escribir trabajos de investigación en el curso B.tech. Algunas de las preguntas estaban relacionadas con los principios básicos de Morgan Stanley y mis inspiraciones. Luego hizo preguntas relacionadas con la gestión de equipos y las cualidades de liderazgo. Me hicieron principalmente preguntas basadas en la situación, como «Cómo puedes superar los desafíos que enfrenta el equipo». Luego, saltó a mi currículum y me hizo algunas preguntas técnicas relacionadas con Spark, Databricks, AWS y Delta Lakes. Algunas preguntas que recordé son:
- Cómo AWS Glue obtiene los metadatos de las fuentes de datos (ya sean archivos de parquet o archivos CSV almacenados en el depósito S3).
- ¿Qué es el formato de archivo de parquet y cuál es su significado en las tablas delta?
- ¿Cuál es el uso de las tablas delta en su proyecto? ¿Cuáles son las ventajas de las tablas delta?
- ¿Qué formato usa Delta Lake para almacenar datos?
- Me pidieron que explicara la configuración de Spark Cluster en términos de memoria del ejecutor, número de Nodes de trabajo, número de ejecutores por Node de trabajo, número de núcleos por ejecutor y memoria del controlador de mi proyecto.
- Algunas preguntas estaban relacionadas con el depósito S3, los almacenes de datos Redshift y las bases de datos relacionales.
- Explicar brevemente sobre el funcionamiento interno de Hadoop
Por fin, me preguntó sobre mis calificaciones de B.tech. Le dije que soy un topper universitario del curso B.tech. Quedó muy impresionado con mis respuestas y también con mi porcentaje de B.tech.
Ronda 5: Ronda de recursos humanos
- Esta ronda duró unos 15-20 minutos. Me preguntaron sobre mi experiencia en proyectos de Big Data, mis pasatiempos, mis fortalezas y debilidades. Me preguntó sobre mis antecedentes familiares, experiencias previas de entrevistas, mi objetivo final en mi vida. Por último, me preguntó «¿Por qué deberíamos contratarte?» y «¿Qué te inspira a unirte a Morgan Stanley». Por fin, hubo una discusión salarial con Recursos Humanos.
- Al día siguiente, recibí comentarios positivos de Recursos Humanos. Afortunadamente, me seleccionaron para el puesto de ingeniero de datos en Morgan Stanley.
Finalmente, soy parte de la compañía de mis sueños, Morgan Stanley
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