Experiencia de entrevista de resistencia (en el campus)

Endurance International Group visitó nuestra universidad para obtener el perfil de desarrollador de software. Constó de 5 rondas (MCQ, CODIFICACIÓN, TÉCNICA 1, TÉCNICA 2, HR).

Ronda 1 (ronda MCQ de 45 min):

Había 60 preguntas MCQ con 4 opciones. Las preguntas eran de nivel GATE y tenían calificación de +3 para respuesta correcta y -1 para respuesta negativa. Las preguntas cubrieron temas como OOPS, análisis de algoritmos, redes, DBMS y SO. Pude «intentar» 54 de ellos y ganar la primera ronda entre aproximadamente otros 70 competidores. Alrededor de 25 personas fueron preseleccionadas para la siguiente ronda.

Ronda 2 (Codificación):

La ronda de codificación de EIG es diferente de las rondas de codificación normales. Tienes que codificar en un IDE en tu propia computadora portátil, desconectada de Internet. Le proporcionan todos los comandos de la biblioteca de todos los lenguajes de programación conocidos a través de la LAN de la universidad, a la que puede consultar. Puede codificar en cualquier idioma, en cualquier IDE de su elección.
Planteamiento del problema:

Implemente un almacén de clave-valor en memoria con las siguientes funciones en la línea de comando :

  • El programa debe apoyar lo siguiente
  • Cursiva : comando escrito por el usuario
  • Negrita – Respuesta desde la línea de comando
Dominio Descripción Ejemplo
establecer valor clave [ttl] establecer la clave con especificado establecer hola 5
valor. ttl opcional en segundos hecho
se puede especificar si ttl es establecer datos de prueba
especificado, la clave debe hecho
caducan después de ttl. establecer ttl_test 10 5
hecho
obtener la clave obtener la clave si se encuentra en los datos recibe hola
Tienda. o devolver cero. 5
obtener mundo
nulo
hacerse la prueba
datos
enjuagar tirar todas las llaves enjuagar

enjuague hecho

recibe hola

nulo

ahorrar guardar todas las claves en un archivo ahorrar

guardado en data.dat

cargar nombre de archivo cargar claves desde un archivo cargar datos.dat

cargando hecho

Punto de bonificación Resuelve el conflicto cuando el conjunto es Establecer hola 5
hecho sobre la misma clave dos veces. establecer hola 6
recibe hola
Resuelve el conflicto cuando el conjunto es 5 6
hecho sobre la misma clave dos veces Establecer ttl_test 5 10
con ttl Establecer ttl_test 6 20
recibe hola
5 6
después de 10 s
6

Solución:  creé una clase de datos con valor de atributos y marca de tiempo. La marca de tiempo almacena la hora de caducidad del elemento de datos utilizando la marca de tiempo basada en el sistema en milisegundos y un valor negativo si no tiene una hora de caducidad.

Mientras obtenía los datos, verifiqué si la marca de tiempo de caducidad es menor que la marca de tiempo actual, luego emití cero (salida ya caducada), de lo contrario, mostré los datos.

Durante el guardado en archivo, solo guardé los elementos que aún no han caducado, comprobando de manera similar.

Para la parte de bonificación, puede usar una lista enlazada de elementos de datos.

Los resultados fueron revisados ​​por al menos 2 personas.

3 personas llegaron a la siguiente ronda, incluido yo mismo.

Ronda 3 (Técnica 1):

El panel tenía dos jueces y la ronda duró unos 30 minutos. Primero me preguntaron sobre mis proyectos y cuál de ellos era mi favorito. Describí todos mis proyectos de aprendizaje automático y aplicaciones de Android. También notaron proyectos basados ​​en la web en mis pasantías y tenían curiosidad sobre ellos.

Después de consultar sobre el proceso básico de recuperación de datos de un servidor, me dieron una situación basada en la recuperación de datos de un sitio web seguida de una secuencia de obstáculos que deben solucionarse. Eran los siguientes:

Cómo garantizar que el usuario haya iniciado sesión en el servidor, sin verificar las credenciales en cada paso de la recuperación de datos.

Propuse una solución agregando una columna is_online en la base de datos. Pero eso autenticará automáticamente al usuario si accede desde varios dispositivos.

¿Cómo asegurarse de que un usuario acceda al sitio desde un solo dispositivo?

Sugerí usar la identificación del dispositivo con la identificación del usuario para la autenticación. Pero no querían que los detalles del usuario se intercambiaran en tiempo aire con tanta frecuencia. Me dieron algunos consejos sobre el uso de números aleatorios y les dije que generaran un par de claves pública y privada en el lado del servidor y le dieran la clave privada al usuario para que la identidad única se pueda conservar junto con el cifrado de datos. Dijeron que me estaba excediendo ya que tales servicios no son gratuitos. La solución es simplemente enviar una clave aleatoria al usuario para esa sesión y luego usar I para los dos problemas anteriores.

¿Cómo bloquear los ataques DDOS para que no se creen múltiples conexiones en un período de tiempo determinado desde el mismo usuario?

Propuse usar una secuencia de comandos liviana separada para verificar la cantidad de conexiones realizadas desde la IP pública del usuario dentro de un cierto período de tiempo (ejecutando un ciclo while con un contador), antes de que pueda acceder a las secuencias de comandos del servidor. Preguntaron sobre la capa en la que estaría usando este script, ya que necesitábamos detener la conexión mucho antes que las capas superiores de OSI.

No fui seleccionado después de esta ronda. Me dijeron que tenía un conjunto de habilidades diferente, uno que no era de sus requisitos a partir de ahora.

Después de una conversación con otros estudiantes, aprendí que también se les hacían preguntas similares. No hubo mucho enfoque en la codificación o el sistema operativo, en las rondas de entrevistas.

Consejo: si desea ingresar a EIG, asegúrese de que realmente tiene un buen conocimiento basado en la web y las redes, ya que la mayoría de los proyectos se basan en eso (¡y asegúrese de que también lo disfrute!).

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 *