Experiencia de entrevista de Arcesium para SSE | 2+ años de experiencia – Part 1

Modo : El reclutador me contactó en LinkedIn

Compañía : Arcesio

Título : Ingeniero de software sénior

Ubicación : Bangalore

Proceso : El reclutador se comunicó conmigo por correo y me envió un enlace de prueba en línea (Hackerrank) con tres preguntas. Pude resolver 2 completamente y 1 parcialmente. Después de unos días, recibí un correo electrónico de un reclutador para programar las entrevistas virtuales. Hubo 5 rondas, incluidas 1 prueba en línea (HackerRank) +2 (DS/Algo) + 1 gerente de contratación (técnico + gerencial) + 1 ronda de recursos humanos.

Ronda 1: prueba en línea

Plataforma de prueba: HackerRank, 60 min, 3 preguntas

Nivel de dificultad: Moderado

  • Producto de los máximos de todos los subconjuntos de una array
  • La tropa de gatos: Cat necesita cruzar el túnel lo más rápido posible. Un gato puede cruzar el túnel solo y puede cruzar llevando a otros gatos en su espalda. Tiempo dado para cruzar el túnel individualmente y con el gato a cuestas. Encuentra el tiempo mínimo para cruzar todos los gatos del túnel. 
  • Distribución de flujo: una red se proporciona en forma de un árbol binario perfecto y los cálculos pueden ocurrir en los Nodes de hoja, mientras que otros Nodes (Nodes de distribución) distribuyen flujos de datos a las hojas. Existen dos tipos de distribuciones: división y paralelo.
splitting Node - it splits the data into equal halves to the child nodes. 
For Ex: [1,2,3,4] will split into [1,2] and [3,4] to left and right child.

Parallel Node - it splits the data into alternating halves to the child nodes. 
For Ex: [1,2,3,4] will split into [1,3] and [2,4] to left and right child
  • Dados los flujos de entrada que recibe cada Node hoja y los detalles de los Nodes de distribución, necesitamos encontrar el flujo de datos original en la raíz de la red. Esto se puede resolver usando el recorrido de orden de nivel inverso

Ronda 2: 1 hora (DSA + Ronda de codificación) 

Hubo 2 entrevistadores en esta ronda. Uno tenía 2 años de experiencia y el otro era un miembro senior. Comenzaron presentándose y luego preguntaron por mí. Luego pasaron a las preguntas de la entrevista:

  • Número de subconjuntos con producto menor que k
  • El número mínimo de veces que debe repetirse A para que B sea una subsecuencia de él, donde A y B son strings. Algo parecido a esto.
  • ¿Qué es la Clase Singleton? Crear una clase singleton.
  • Explica detalladamente cualquier aspecto de tu proyecto.
  • ¿Qué es la recolección de basura en Java? ¿Cuándo se invoca? ¿Como funciona?
  • ¿Qué es la sincronización? ¿Cómo se logra en Java?
  • Multiproceso.

Resultado: Pude dar la solución de fuerza bruta para la primera pregunta y la solución óptima para la segunda. Mis otros conceptos eran claros y pude explicarlos en detalle. Después de 3-4 días programaron mi próxima entrevista.

Ronda 3: 1 hora (DSA + Ronda de codificación)

Un SDE-2 lo interceptó. Sus habilidades técnicas y de comunicación fueron excelentes. La entrevista comenzó con su presentación, seguida por la mía.

Resultado: Quedó satisfecho con mis respuestas y después de 3-4 días recibí una llamada del reclutador para programar mi Ronda HM.

Ronda 4: 1 hora (gerente de contratación)

 Un gerente de ingeniería tomó esto. La entrevista comenzó con su presentación, seguida por la mía.

  • Luego, hizo preguntas sobre mis proyectos en mi empresa actual (Terminé discutiéndolos durante un buen rato)
  • Me dio un fragmento de código escrito en Java 8 y me pidió que encontrara la falla en el código en términos de diseño de codificación y ¿cómo solucionaría esto? Se basó en interfaces funcionales y expresiones lambda en Java 8.
  • Me dio el siguiente fragmento de código y me pidió que hiciera la revisión del código. Era una pregunta abierta y tuvimos una larga discusión al respecto.

Java

public class MAver {
  
    int windowSize;
  
    List<Integer> values;
  
    public MAver(int windowSize)
    {
  
        this.windowSize = windowSize;
  
        this.values = new ArrayList<Integer>();
    }
  
    public void add(int value) { values.add(value); }
  
    public double GetAverage()
    {
  
        ouble x = 0;
  
        for (int i = 0; i < values.size(); ++i) {
  
            x += values.get(i);
        }
  
        return x / values.size();
    }
}
  • Dadas dos listas de intervalos, encuentre la intersección de estas dos listas. Cada lista consta de intervalos disjuntos ordenados por su hora de inicio.
Input: arr1=[[1, 3], [5, 6], [7, 9]], arr2=[[2, 3], [5, 7]]

Output: [2, 3], [5, 6], [7, 7]

Explanation: The output list contains the common intervals between the two lists.

Ronda 5: 30 minutos (ronda de recursos humanos)

  • Cuéntanos brevemente sobre ti.
  • ¿Por qué quiere dejar su empresa actual?
  • ¿Por qué arcesio?
  • ¿Cuáles son sus expectativas de Arcesium?
  • Preguntas básicas de RRHH.
  • Discusión de CTC: Intentaron negociar en base a mi CTC actual.

Veredicto: Seleccionado 

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 *