Experiencia de entrevista con Flipkart para SDE2 (exp. de 2,5 años)

Ronda 1: Codificación de la máquina 

El problema planteado fue diseñar un sistema de subastas en Foobar donde haya vendedores que puedan crear subastas para el artículo que quieren vender. Se especificará la oferta más baja y más alta que se puede realizar y se aplicará un cargo de participación a los compradores que pujen por esta subasta. El sistema debe poder manejar múltiples subastas a la vez. La ganancia/pérdida del vendedor se calculará como: Oferta ganadora + 20 % del costo total de participación de los compradores – promedio de oferta más baja y más alta. El 80% restante del costo de participación va a foobar como comisión. La oferta ganadora será la oferta única más alta . Si para una subasta en particular estas son las ofertas: comprador1 19, comprador2 19, comprador3 17, comprador4 17, comprador5 10: entonces el comprador5 será el ganador. Se requirieron las siguientes operaciones: 
 

  1. Crear un vendedor
  2. crear un comprador
  3. creación de subasta por un vendedor registrado
  4. pujar en una subasta por cualquier comprador registrado
  5. el monto de la oferta puede ser actualizado por el comprador
  6. Retirar oferta
  7. cerrar una subasta y devolver la oferta ganadora
  8. ganancias/pérdidas de cualquier vendedor hasta ahora 
    Puntos de Brownie por esto: Si algún comprador ha hecho una oferta en más de 2 subastas, entonces es el comprador preferido. Entonces, si en una subasta hay dos ofertas comprador1 19 y comprador2 19 y comprador2 es el comprador preferido, entonces él es el ganador. Si tanto el comprador 1 como el comprador 2 son compradores preferidos, vuelva a la siguiente oferta más alta y aplique la misma lógica.

Expectativas : 
 

  • El código debe ser modular y todas las responsabilidades no deben estar atascadas en 1/2 clases. Básicamente, querían que esto estuviera en capas: capa dao, capa api como esa.
  • El código debe funcionar y ser demostrable.
  • manejar las fallas con gracia
  • Cubra los casos de esquina
  • El código debe ser extensible con cambios mínimos. Por lo tanto, tenga en cuenta los requisitos futuros y utilice interfaces y contratos siempre que sea posible. Debe conocer los principios y patrones de diseño SOLID para esto.

Ronda 2: Ronda DS ALGO 
 

  1. https://www.careercup.com/question?id=24532662 <– Buena
  2. https://practice.geeksforgeeks.org/problems/rotten-oranges2536/1
  3. https://practice.geeksforgeeks.org/problems/find-median-in-a-stream-1587115620/1

Para las últimas 2 preguntas, el entrevistador pidió que escribiera el código en papel. 

Ronda 3: Diseño del sistema 

Diseñe un sistema para flipkart para esta nueva idea en la que flipkart presente algo como una canasta grande en la que no puede comprar cosas pero suscribirse a ellas (por ejemplo, nos suscribimos a leche y jugo de manzana diariamente durante el próximo mes). Habrá tiendas que proporcionarán estos artículos en flipkart y también especificarán la ubicación donde pueden entregar. El usuario puede suscribirse a los artículos: el artículo puede provenir de cualquier tienda si el usuario se encuentra en el rango de ubicación de la tienda donde el artículo está disponible. No se preocupe por la parte de la tienda y la parte lógica y concéntrese en el modelo de suscripción. 
Su trabajo es proponer requisitos, hacer preguntas aclaratorias. Hablé sobre los microservicios en el lado del servidor, qué cosas manejará su aplicación cliente y cómo, el lado de la base de datos, los pagos, qué se puede hacer para que funcione de forma asíncrona/sincrónica, equilibrar la carga en los servidores, cómo manejar la escala, manejar el spof, el almacenamiento en caché , interfaces API, notificación a los usuarios sobre descuentos, múltiples modelos de suscripción, cuál elegir: SQL vs NoSQL y por qué, diseñar entidades de manera que optimice las consultas de búsqueda. Tenía preguntas cruzadas sobre todo lo que incluí en mi diseño. Se aseguró de preguntar todo lo que quería saber, si me estaba metiendo en algo que él no quería en profundidad, me detuvo y me dijo que no queríamos profundizar tanto en esto y desvió la discusión a lo que quería perforar. 
Si hay un punto en el que está utilizando 1 tecnología entre 2, debería poder justificar POR QUÉ y discutir los pros y los contras de cada uno. 

Ronda 4: Gerente de contratación 
Algunas de las preguntas que recuerdo fueron: 
 

  • ¿Dónde te ves en 5 años?
  • Si 10-12 años después de su carrera, planea convertirse en gerente, ¿cómo lo planearía a partir de ahora?
  • ¿Cómo planea acercarse a los nuevos miembros del equipo si lo seleccionan? (¡Estaba como qué! Simplemente iré y hablaré con ellos: P)
  • ¿Dónde te calificas de 5 en conocimiento de diseño de sistemas?
  • ¿Cual es su debilidad?
  • Si hay un consumidor que consume a razón de 10 unidades por seg. & productor produciendo a razón de 100 unidades por segundo, ¿cómo manejaría esto?
  • No puede usar el operador % / *, ¿cómo encontrará el valor de x/y hasta dos lugares decimales?
  • ¿Qué esperas de flipkart y del nuevo equipo si te seleccionan?
  • ¿Por qué quieres trabajar en sistemas distribuidos, tienes suficientes fuentes para aprender aunque no estés trabajando en ellos?

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 *