Tengo alrededor de 3 años y 4 meses de experiencia como desarrollador de software. Recientemente me entrevisté con ixigo para el puesto de perfil de backend Java de SDE2. La experiencia de la entrevista es la siguiente.
Ronda 1: (Estructuras de datos y algoritmos)
La entrevista comenzó con una pequeña introducción sobre mí y el trabajo que he realizado. Hubo 2 entrevistadores en esta ronda. Uno se graduó de NIT Allahabad (más de 4,5 años de experiencia) y el otro se graduó de IIT Delhi. Revisaron mi perfil de github y mi perfil de programación competitivo. Me hicieron 3 preguntas que se detallan a continuación, los parámetros involucrados fueron la complejidad del tiempo, la complejidad del espacio y la claridad del código.
Pregunta 1: dado un árbol de búsqueda binario en el que se intercambian datos de 2 Nodes, imprima los Nodes intercambiados.
Solución: propuse una solución utilizando el recorrido en orden porque el recorrido en orden de BST siempre da una lista ordenada. Así que fue fácil identificar los Nodes que no encajaban en el orden. La solución fue simple de implementar. En)
Pregunta 2: dado un árbol binario con una estructura modificada, cada Node también contiene información sobre el Node principal. Ahora, en este árbol binario, si quemamos un Node, el fuego viaja desde el Node quemado hasta el Node principal y su Node secundario en 1 segundo. Indica el tiempo en que se quemará todo el árbol.
Solución: utilicé BFS para resolver el problema, el código fue sencillo. O(n+e)
Pregunta 3: Imprima la vista inferior del árbol binario.
Esto fue sencillo. En)
Ronda 2: Java
El entrevistador me preguntó conceptos relacionados con Java
Pregunta 1: Cómo funciona ConcurrentHashMap. ¿Cuál es el algoritmo subyacente y el código que utiliza Java? Cómo se logra la sincronización en él. Explique el protocolo del cubo.
Pregunta 2: uso de enum y dar un ejemplo de patrón de diseño que lo usa.
Pregunta 3: Diferentes preguntas relacionadas con colecciones y genéricos.
Pregunta 4: subprocesos, pestillos, barreras, semáforos, exclusión mutua, bloqueos inactivos, invocables y otros conceptos relacionados con subprocesos múltiples.
Ronda 3: Ronda Técnica VP
El entrevistador era una persona con mucha experiencia (más de 10 años) con graduación de IIT Varanasi y PG de IIM Bangalore. También fue jefe de ML (aprendizaje automático). Me hizo las siguientes preguntas.
Pregunta 1: Ámbitos de Bean en Spring, cómo funciona la resolución de ámbito. Qué problemas surgirán si pasamos el frijol de alcance de solicitud en el frijol de alcance único.
Pregunta 2: ¿Qué es la arquitectura de microservicios y en qué se diferencia de la arquitectura monolítica? Beneficios de usarlos. Explique los microservicios que ha utilizado en su código y qué mecanismo ha utilizado para sus interacciones.
Pregunta 3: Me preguntó sobre el disyuntor y el ejemplo de cualquier disyuntor si lo he usado. He usado Netflix hystrix en uno de mis proyectos y tenía una idea al respecto. Luego me preguntó sobre el descubrimiento de servicios y por qué se usa.
Pregunta 4: Me pidió que explicara la arquitectura que implementé en uno de mis proyectos para lograr la sincronización en tiempo real. Le expliqué sobre el protocolo WebSocket y Stomp y los he usado en el lado del servidor en mi proyecto Spring. Luego me preguntó sobre las colas de mensajes que he usado.
Pregunta 5: Me dio un rompecabezas para resolver. Dado un tablero cuadrado, hay una moneda de 1 rupia colocada en cada esquina del tablero. La orientación de la moneda no se conoce, puede ser cara o cruz. Hay 2 jugadores A y B. El jugador B tiene los ojos vendados y no conoce la configuración inicial. El jugador B gana si todas las monedas son cara o cruz. El jugador B puede pedirle al jugador A que lance cualquier moneda cualquier número de veces. Una vez que esté seguro de que se logra el estado ganador, le preguntará al jugador A si está en lo correcto, el jugador A le responderá sí/no. Si la respuesta es no, entonces el jugador A puede rotar el tablero cuadrado n*90 grados (siendo n un número entero). Ahora el juego continúa hasta que el jugador B gana.
Quería comprobar el enfoque para resolver este problema, dado que yo soy el jugador B y él es el jugador A.
Ronda 4: Ronda CTO
El entrevistador era un graduado de IIT Kanpur y tenía más de 15 años de experiencia. También era experto en aprendizaje automático, sistemas distribuidos e IA.
Pregunta 1: Cuénteme sobre sus proyectos y el DAN de sus proyectos. Explique el problema más complicado que ha resuelto hasta ahora en sus proyectos.
Pregunta 2: ¿Cuál es tu aplicación favorita? Luego, dime una característica que podrías cambiar y cómo la implementarías.
Pregunta 3: Diseñe un motor de búsqueda similar a Google. Debe escalar bien para cargas altas. Explique cómo funcionará la indexación y dónde almacenará los millones de resultados devueltos mientras rastrea la web y qué tecnologías usará (por ejemplo, HDFS, indexador basado en Lucene como Apache Solr, búsqueda elástica, etc.), cómo comenzará a rastrear en su motor de búsqueda , Implemente la función de escritura anticipada, explique las estructuras de datos (Tries) y las tecnologías relacionadas que usaría para implementarla, cómo priorizará sus fuentes de búsqueda. Los parámetros principales en las preguntas de diseño de este sistema fueron la escalabilidad y el rendimiento.
Pregunta 4: Implemente un algoritmo que muestre los restaurantes cercanos, surtidores de gasolina, estaciones de GNC, etc. en una ruta de viaje. Optimice el algoritmo tanto como sea posible.
Pregunta 5: Luego me hizo un rompecabezas geométrico. Quería comprobar la velocidad con la que puedo calcular y los casos extremos en los que puedo pensar.
Ronda 5: Ronda de CEO
El entrevistador era un graduado de IIT Kanpur, hizo su PG de Inseed y doble MBA de Wharton. Era una persona con mucha experiencia.
Pregunta 1: Me pidió que me presentara y algunas otras preguntas básicas sobre mi experiencia y calificaciones.
Pregunta 2: Me pidió que diseñara un sistema similar a Uber.
Todos los entrevistadores fueron bastante sorprendentes y muy inteligentes. Fue una experiencia maravillosa para mí. Las entrevistas se extendieron a lo largo de una semana. Me ofrecieron el perfil SDE2 (Senior Software Developer) :).
Publicación traducida automáticamente
Artículo escrito por AseemRastogi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA