Ronda 1 (DSA, Diseño, Java)
1. Escriba un código para encontrar el k-ésimo elemento más grande en una array.
El entrevistador estaba interesado en la solución más óptima de inmediato, además de escribir el código para todas las operaciones del montón desde cero. https://www.geeksforgeeks.org/k-largestor-smallest-elements-in-an-array/
2. Escriba un código para fusionar k arrays ordenadas de tamaño n.
Usó el enfoque de montón nuevamente y codificó.
https://www.geeksforgeeks.org/merge-k-sorted-arrays/
3. Diseña un estacionamiento. Había dado una clase de ParkingLot. Me pidió que diseñara la arquitectura orientada a objetos compatible con las API park() y unpark().
Luego, discutió el funcionamiento de todas las demás API de soporte de diferentes clases junto con la lista de argumentos mínimos para llamar. Los algoritmos internos también fueron optimizados al final.
Para su referencia, puede obtener ayuda del siguiente enlace:
https://www.educative.io/collection/page/5668639101419520/5692201761767424/5770234338213888
4. Bajo qué condiciones utilizará la clase abstracta y cuándo utilizará las interfaces.
5. Cualquier desafío de diseño al que te hayas enfrentado en tu proyecto.
Ronda 2 (Diseño)
1. Diseño del sistema de caché distribuida.
Para los datos provenientes del lado del cliente, utilicé el concepto de agregador intermedio para volcar periódicamente esos datos en el lado del caché. Pero los datos deben ordenarse durante el volcado.
Así que se presentó un desafío que pidió clasificar archivos de gran tamaño con 200 mb de memoria principal. Ordenación por combinación externa usada de n manera. Después de estar de acuerdo hasta cierto punto con mi enfoque, me pidió que escribiera el código completo que cubriera todos los casos extremos para el mismo.
Además, utilicé el concepto de balanceadores de carga justo antes de la capa de caché. Entonces, el entrevistador preguntó cómo implementa realmente el equilibrio de carga. Utilicé el concepto de hashing consistente para explicar la parte de equilibrio de carga que minimiza la redistribución de la carga cuando se agrega o elimina un servidor y también ayuda a reducir la carga sesgada en cualquiera de los cachés mediante el uso de un concepto de servidores virtuales.
Vídeo de referencia: https://www.youtube.com/watch?v=zaRkONvyGr8
Ronda 3 (Diseño)
1. Diseñe la función Autocompletar de la búsqueda de Bing.
Toda la discusión sobre qué tan eficientemente probará el uso de la estructura de datos y cómo clasificará las sugerencias y cuántas sugerencias se enviarán al usuario.
¿Cómo fragmentará la base de datos trie y diseñará otros componentes del sistema de soporte?
Mi implementación al final fue algo así como el enlace que figura a continuación:
https://www.youtube.com/watch?v=us0qySiUsGU
2. Implementar un recolector de elementos no utilizados de marcado y barrido simultáneos. Utilicé el concepto de hashmap concurrente en el recolector de basura e ideé el algoritmo de Mark y barrido en consecuencia. Luego hubo una discusión sobre todos los desafíos de concurrencia. Como yo era de Java Background, me hizo esta pregunta.
Ronda 4: (Con Director – Equipo de aplicaciones web de Office 365)
El director formó parte de Microsoft durante los últimos 25 años.
1. Discusión sobre los proyectos y la arquitectura del proyecto. Me preguntó qué parte de mi marco estoy manejando.
Como él era muy senior, comencé a presentar mis proyectos actuales y anteriores desde la perspectiva comercial primero y luego pasé a la parte de la arquitectura en detalle.
Luego hizo hincapié en las funciones que desarrollé en mi proyecto actual para comprender los casos de uso comercial exactos del mismo.
2. Mis desafíos que enfrenta regularmente y cómo los resuelve para garantizar la entrega oportuna de su producto.
3. Luego explicó todos los desafíos y el modelo de las aplicaciones web a las que apuntan para su producto Office 365. Hay un gran delta del escenario actual de Office 365 en lo que respecta a la implementación en la web en lo que respecta a SaaS.
Se hicieron rondas. El director dijo que Recursos Humanos se pondrá en contacto conmigo. Finalmente, recibí la oferta en unos días 🙂
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