Pasé por las siguientes rondas en BrowserStack como se menciona a continuación, donde cada ronda era una ronda de eliminación.
Ronda 1 (Prueba de codificación):
prueba en línea de HackerEarth que tenía 3 preguntas durante 2 horas por 200 puntos. Las preguntas fueron del nivel Fácil/Medio.
Todas las siguientes rondas fueron en el sitio.
Ronda 2 (Codificación de máquina-1):
Planteamiento del problema:
Este problema requiere que implemente una solución de observación de registros (similar al comando tail -f en UNIX). Sin embargo, en este caso, el archivo de registro está alojado en una máquina remota (la misma máquina que su código de servidor). El archivo de registro está en modo de solo agregar.
Tienes que implementar lo siguiente:
1. Un programa del lado del servidor para monitorear el archivo de registro dado y capaz de transmitir las actualizaciones que ocurren en él. Esto se ejecutará en la misma máquina que el archivo de registro. Puede implementar el servidor en cualquier lenguaje de programación.
2. Un cliente basado en la web (accesible a través de una URL como http://localhost/log) que imprime las actualizaciones en el archivo a medida que ocurren y NO al actualizar la página. La página debe cargarse una vez y debe seguir actualizándose en tiempo real. El usuario ve las últimas 10 líneas del archivo cuando llega a la página.
Restricciones del problema:
- El servidor debe enviar actualizaciones a los clientes, ya que tenemos que estar lo más en tiempo real posible.
- El servidor no debe retransmitir el archivo completo cada vez. Solo debe enviar las actualizaciones.
- El servidor debe poder manejar múltiples clientes al mismo tiempo.
- La página web no debe permanecer en el estado de carga después de la primera carga y tampoco debe volver a cargarse a partir de entonces.
- No puede usar bibliotecas comerciales o herramientas que brinden funcionalidades similares a las de la cola.
Lo evaluaremos en cuanto a la calidad del código, la capacidad de prueba, la modularidad, los casos de esquina, etc.
Ronda 3 (Codificación de máquina-2):
Planteamiento del problema:
Debe implementar un servicio web sin estado simple que permita interactuar con dos navegadores web: Google Chrome y Mozilla Firefox.
El servicio debe admitir los siguientes puntos finales:
Método
|
punto final
|
Parámetros
|
Descripción
|
---|---|---|---|
OBTENER | /comienzo | navegador, URL | Inicia <navegador> que tiene la <url> abierta en su interior. |
OBTENER | /deténgase | navegador | Mata al <navegador>. |
OBTENER | /limpiar | navegador | Elimina toda la información de la sesión de navegación, como historial, caché, cookies, descargas, contraseñas guardadas, etc. para <navegador> |
OBTENER | /geturl | navegador | Devuelve la URL de la pestaña activa actual. Suponga que el <navegador> tiene exactamente una ventana y varias pestañas. |
<navegador> = Chrome/Firefox
<url> = Cualquier URL válida como: http://www.browserstack.com
Ejemplo de uso de puntos finales:
- http://<servidor>/start?browser=<navegador>&url=<url> debe iniciar el navegador deseado y abrir la URL en la misma instancia del navegador.
- http://<servidor>/geturl?browser=<navegador> debería obtener la URL de la pestaña activa actual para el navegador dado
- http://<servidor>/stop?browser=<navegador> debería detener el navegador dado si se está ejecutando
- http://<servidor>/cleanup?browser=<navegador> debería limpiar la sesión de navegación para el navegador dado si se ha detenido.
Puntos a tener en cuenta :
- Los navegadores deben iniciarse/detenerse en el extremo del servidor. es decir, si el servidor se ejecuta en la máquina A y se realiza una solicitud para /start desde la máquina B, el navegador debe iniciarse en la máquina A. Para el propósito de esta asignación, suponga que las máquinas A y B son iguales, es decir, su propia máquina.
- Cualquier herramienta o biblioteca que dependa del protocolo Selenium (WebDriver) no debe ser una dependencia del servicio.
- No es necesario que el servicio sea independiente del sistema operativo, es decir, si tiene una máquina con Windows, se espera que el servicio se ejecute correctamente en Windows, pero no se espera que se ejecute correctamente en todos los sistemas operativos. Dicho esto, si proporciona una implementación independiente del sistema operativo, obtendrá puntos de bonificación.
- Recuerde realizar una copia de seguridad antes de pulsar /limpiar para evitar el borrado de sus datos.
Ronda 4 (Ronda Técnica-1 con el Gerente de Ingeniería):
1) Su proyecto de pasantía favorito.
2) Preguntas sobre un proyecto personal y si hacemos un cambio, cómo lo manejará.
3) Fortalezas y Debilidades.
4) Dio un problema para traer todos los ceros al comienzo de una array, tenía que resolverlo en el tiempo O (n) y el espacio O (1).
5) Dio un problema de diseño de estructura de datos donde podemos consultar todo en tiempo O (1).
6) Gran manejo de archivos como si tuviéramos 1 TB del archivo y tuviera que contar las apariciones de palabras con RAM limitada, digamos que solo tiene 8 GB de RAM. ¿Cómo lo procesarás?
Ronda 5 (Ronda Técnica-2 con el Director de Ingeniería):
1) Sobre proyectos.
2) Proyecto fallido.
3) HTTP frente a HTTPS.
4) Códigos de error HTTP.
5) ¿Qué es User-Agent en el encabezado HTTP?
6) ¿Qué haría si su gerente le pidiera que usara C++ y usted prefiere Python?
7) Si tiene un problema y su gerente está demasiado ocupado y tiene que resolverlo de forma independiente, ¿cómo lo manejará?
8) ¿Cuáles son los puntos que tendrá en cuenta si tiene que implementar un sistema en producción?
9) ¿Qué tipo de registros enviará mientras construye su sistema para que sea útil en el monitoreo en el futuro?
10) Escalado de base de datos.
Ronda 6 (entrevista de recursos humanos):
1) Explique el trabajo realizado en una pasantía.
2) ¿Cómo se enteró de BrowserStack?
3) ¿Por qué BrowserStack?
4) ¿Usas GitHub?
5) ¿Participas en concursos de codificación competitiva?
6) ¿Algún proyecto que creas que estabas fallando pero lo imaginaste y lo lograste?
Veredicto: Rechazado.
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