Cómo contratar al primer desarrollador de Android para su inicio: Gaurav Navgire, experto de AirCTO

La industria móvil está cambiando a un ritmo muy rápido. Los usuarios pasan la mayor parte de su tiempo en sus teléfonos móviles y con Android reclamando una participación de mercado del 65%, es imperativo que las empresas / startups tengan sus propias aplicaciones de Android en la lista de Play Store, creciendo tanto para ellos como para los gigantes.

El principal desafío que enfrentan los fundadores / gerentes de contratación al contratar para puestos de Android es decidir qué esperar del próximo desarrollador de Android y cómo evaluar si es apto para el trabajo, tanto en términos técnicos como de comportamiento. Las expectativas también pueden variar según el tamaño de la empresa, los paquetes tecnológicos, etc. y no hay nada como la solución de "una regla para todos".

Entonces, ¿cómo eliges?

En AirCTO, hemos realizado cientos de entrevistas con Android y hemos visto que cientos de candidatos fueron rechazados, quienes, por el aspecto de su currículum, parecían ser una perspectiva decente, si no excelente. Para resolver la pregunta, ¿A quién contratar? ¿Cómo contratar? decidimos entrevistar a nuestro experto estrella, Gaurav Navgire, quien ha estado consultando con nosotros por más de 1.5 años y ha realizado muchas entrevistas para diferentes compañías, la mayoría de las cuales resultaron en excelentes contrataciones.

En su entrevista, Gaurav habla sobre cómo debería ser el perfil de un desarrollador ideal de Android, formas de entrevistarlo y validar sus proyectos y las banderas rojas para evitar por completo.

Comenzaste tu carrera como ingeniero de software y luego cambiaste a Android. ¿Qué es lo que más te interesó de esta tecnología?

La movilidad estaba en mi mente desde que mi papá me regaló un dispositivo Nokia que tenía el sistema operativo Symbian. Lo que me intrigó fue que las aplicaciones que se ejecutarían en el dispositivo funcionaban con JAVA. Y como ya estaba estudiando Java en Ingeniería, el año fue 2007–2008, me enganché a él de inmediato.

Después de la ingeniería, decidí profundizar en JAVA y la movilidad, que solo era posible si aprendía J2ME. Así que comencé a seguir un curso sobre él, pero por suerte, Infosys me dio una fecha de ingreso (me asignaron al campus). Completé mi curso a toda prisa para unirme a la compañía de mis sueños de esa época. Era el año 2008. Fue el mismo año en que Android se presentó al mundo.

En Infosys, como nuevo, no tuve más remedio que continuar en SAP BI durante los próximos 2 años y medio como ingeniero de software. Durante este tiempo, Android comenzó a hacer noticias en la India. Cuando llegué a saberlo, me tomé la libertad de aprenderlo por mi cuenta y me entrené para estar listo y ser empleado en la industria de la movilidad.

Lo que me gustó de Android fue que puedes crear aplicaciones móviles usando CORE JAVA. No es necesario aprender J2ME, etc. Además, fue FUENTE ABIERTA. Puede crear un juego simple para aplicaciones empresariales complejas para la creación personalizada de ROM. Afortunadamente, he trabajado en todos los paradigmas del ecosistema de Android. Entonces, para mí, fue una mina de oro de conocimiento y oportunidad. No he mirado hacia atrás desde entonces.

¿Cómo debería ser una cartera de un desarrollador de Android ideal?

Una cartera ideal de un desarrollador de Android es haber trabajado en algunos de los bloques de construcción básicos como Actividades, Fragmentos, Servicios, etc., para funciones complejas como las comunicaciones entre procesos utilizando AIDL.

Me gustaría ver un portafolio en el que el desarrollador haya creado aplicaciones usando API de Android puras y no haya usado bibliotecas de terceros solo para resolver una tarea de programación rápidamente. Si él / ella usa bibliotecas tales como, por ejemplo, Picasso, entonces deben ser capaces de explicar cómo se maneja la tarea real mediante programación.

Has realizado numerosas entrevistas para AirCTO, ¿cuál es tu proceso para examinar al candidato?

Me concentro principalmente en lo básico. Y hay pasos para probar lo básico. Primero están los conceptos de programación orientados a objetos. El segundo es el Core Java. Y, por último, la arquitectura de Android y sus componentes básicos. Cuando el candidato termina con lo básico, entonces solo las preguntas avanzadas tienen sentido.

Para mí, estos incluyen el multihilo, patrones de diseño, etc. Entre la evaluación, tiendo a hacer algunas preguntas de pseudocodificación si se trata de una llamada telefónica. O preguntas de programación completas si se trata de una entrevista cara a cara. Me parece bien si el código no está 100% completo en el tiempo estipulado. Lo que importa es que si el candidato puede explicar el código a fondo.

¿Importancia de los patrones de diseño y manejo de hilos en el desarrollo de Android?

Un programador no puede llamarse a sí mismo, por lo tanto, si no sabe qué son los patrones de diseño, las estructuras de datos y los subprocesos múltiples. JAVA está diseñado para subprocesos múltiples y Android maneja el trabajo síncrono y asíncrono maravillosamente.

Obviamente, debe implementarse de tal manera que funcione maravillosamente, es decir, sin pérdidas de memoria, consumo de tiempo, etc. El candidato debe saber cómo manejar la instancia de la base de datos utilizando algunos de los patrones de diseño clásicos. Él / Ella debe saber cómo manejar mensajes asincrónicos a través de hilos. Nada me desanima cuando un candidato dice que una aplicación de Android se ejecuta en 2 hilos de forma predeterminada.

Importancia de los proyectos? ¿Cómo validarlos?

Cuando escaneo un currículum, mi enfoque está en el proyecto más actual en el que el candidato ha trabajado / está trabajando. Comienzo la entrevista con la explicación del candidato de su proyecto actual / más reciente y su papel en su desarrollo.

Si el equipo es grande, entonces, ¿de qué componentes fue responsable? ¿Conoce la aplicación aparte de sus propios componentes? Si lo desarrollaron con una sola mano, entonces me da mucho espacio para validar detalles minuciosos como modificaciones de la tabla de base de datos, lanzamientos de play store alfa y beta, etc. Esto me da una idea clara de cómo llevar adelante la entrevista.

Has realizado muchas entrevistas para empresas nuevas y grandes empresas. ¿Cómo difiere el enfoque en cada caso?

En empresas más grandes, el rol del trabajo es muy claro. Es una expectativa bien mapeada de ese rol en particular. Es decir, si tengo que contratar a un ingeniero senior de Android para una gran empresa, se espera que forme parte de un equipo para entregar una parte / pocos componentes de la aplicación.

En una startup, este no es el caso. Aquí, verificamos si el candidato puede cumplir como miembro del equipo junto con la configuración de mejores prácticas para pares, revisiones de código, gestión de repositorios de origen e incluso pocas tareas de DevOps.

Entonces, aunque la etiqueta de rol puede ser la misma, la expectativa es diferente en una startup. Además, el mismo desarrollador tendrá que ser parte del diseño de la API web e incluso del desarrollo. Demasiado para un papel de alto nivel. Pero incluso los más nuevos enfrentan un momento difícil en las nuevas empresas que las grandes empresas.

¿Tu pregunta favorita para resolver problemas para evaluar las habilidades cognitivas del candidato?

Una de mis preguntas favoritas es sobre la persistencia de datos. Hay varias formas en que un desarrollador puede jugar con los datos almacenados en el dispositivo en la base de datos, las preferencias compartidas, los archivos en el almacenamiento interno / externo. Tiendo a preguntarles formas tradicionales de manejar la persistencia.
Además, les hago preguntas sobre la arquitectura moderna de Android como Room, etc. Esto me da una idea justa si el candidato tiene la actitud correcta hacia el cambiante panorama de la tecnología móvil.

¿Su sugerencia para los fundadores de startups sobre cómo contratar a su primer desarrollador de Android?

Como fundador, tienes muchas ideas. Quieres a alguien que pueda hacer realidad esas ideas. Desea una solución a sus problemas e ideas en ese momento, o al menos tiene la capacidad de encontrar una solución óptima en poco tiempo.

Y hacer eso no depende de conjeturas. Por lo tanto, desea que su primer desarrollador de Android sea el que pueda idear una solución técnica modesta para usted y presentarle con confianza. Entonces, todo lo que el desarrollador debe hacer es entregar la solución de forma incremental y continua.

Un truco para los fundadores es conocer algunas soluciones tecnológicas para algunos problemas estándar. Por ejemplo, la arquitectura de notificación push, o ¿debería desarrollar una aplicación híbrida o una aplicación nativa, aplicaciones en tiempo real o primeras aplicaciones sin conexión? Conocer estas soluciones usted mismo lo ayudará a evaluar al primer desarrollador de Android.

Entonces, ¿estás buscando contratar desarrolladores de Android increíbles que puedan agregar valor real a tu equipo? Arregle un horario para hablar con nuestro experto en contratación ahora.