• DE
  • EN
  • ES
  • NL

Blog

Qué preguntas hacer al entrevistar a un candidato a desarrollador Magento


Este artículo fue publicado originalmente en inglés en el Blog Magentron con el título Questions to ask when interviewing a candidate Magento developer.

Publicado el domingo 6 de mayo de 2012 por Jeroen Derks.

Como hay mucho trabajo por hacer en Magento, he estado buscando ayuda. En mi experiencia es muy difícil determinar el conocimiento y la experiencia de un candidato hasta que está realmente trabajando contigo en un proyecto. Durante mi búsqueda he compilado una lista de preguntas para ayudarme a decidir con quién hablar de verdad. Cuando se llega al momento de hablar con un candidato, las preguntas se usan para discutir los distintos temas con más profundidad.

Como en mi opinión no solo el conocimiento de Magento/Zend/PHP es necesario para un buen programador Magento, sino también un conocimiento general de metodologías de programación y del sistema (SO, Apache, etc), la lista incluye también preguntas sobre temas más generales que están estrechamente relacionados con la operación de un sitio web (Magento o no).
Además, al usar estas preguntas, deja claro al candidato que te gustaría escuchar más que un simple sí o no. Cuanto más detalle pueda dar, mejor (por ejemplo, he recibido respuestas a preguntas que pedían una descripción y consistían solo en un par de palabras, lo cual obviamente no es una descripción).

Si tienes adiciones, mejoras u otros comentarios, por favor cuéntamelo para que pueda mejorar esta lista, ¡gracias por adelantado!

Vamos allá:

Magento

¿Cuántos años de experiencia tienes en Magento?
¿Puedes contarnos algo sobre los retos técnicos que has abordado en Magento?
¿Qué tipo de problemas encontraste y cómo encontraste una respuesta y los resolviste?
¿Qué tipo de proyectos Magento has hecho? (preferiblemente, para un par de proyectos al menos una línea describiendo qué funcionalidades implementaste)
¿Tienes certificación Magento?
¿Cómo empezarías a crear una nueva extensión?
¿Conoces moduleCreator? ¿Lo has usado? ¿Qué piensas de él?
¿Cuándo modificarías archivos del core?
¿Estás familiarizado con la funcionalidad de rewrite en config.xml? ¿Cómo la has usado?
¿Tienes una solución para los conflictos de rewrite en Magento? ¿Qué soluciones distintas has utilizado?
¿Estás familiarizado con modman? ¿Lo has usado? ¿Qué piensas de él?
¿Puedes describir tu experiencia de programación con los siguientes temas en Magento:
  • Impuestos
  • Quotes
  • Pedidos
  • Facturas/Notas de crédito
  • EAV (cliente, catálogo, producto, etc)
  • Sitio multilenguaje
  • Envíos
  • Pagos
  • Sobrescritura de modelos/bloques
  • Sobrescritura de controladores
  • Config XML
  • Depuración
  • Rendimiento

Depuración

¿Estás familiarizado con xdebug? ¿Qué características de xdebug usas, cómo y por qué?
¿Trazas a veces el código paso a paso? ¿Cómo?
¿Has usado alguna vez la funcionalidad de trace log de xdebug? ¿Por qué? ¿Cómo?
¿Has usado alguna vez la funcionalidad de profiling de xdebug? ¿Estás familiarizado con cachegrind?

Logging

¿Sabes cómo configurar el logging (de errores) en PHP? ¿Cómo?
¿Dónde se registran los errores?
¿Sabes cómo registrar mensajes en Magento? ¿Qué nivel usaste? ¿Cómo?
¿En qué situaciones del código usarías mensajes de logging en Magento?
¿Te gusta loggear lo menos posible o lo más posible? Por favor, explícalo.

IDE / Editor

¿Qué editor(es) usas? ¿Sobre qué plataforma(s)?
¿Puedes describir tu experiencia con linux/unix?
¿Usas Apache en tu entorno de desarrollo? ¿Por qué sí o no?
¿Qué editor prefieres y por qué?
¿Qué editor usas para programar concretamente Magento?

Control de versiones

¿Estás familiarizado con sistemas de control de versiones como git, svn, mercurial, etc?
¿Cómo prefieres trabajar con muchos desarrolladores en el mismo proyecto en cuanto a control de versiones?
¿Sabes cómo crear ramas y hacer merges? ¿Puedes describir cómo resuelves conflictos?
¿Puedes describir el proceso que sigues para hacer commit del código? (por ejemplo, hacer un diff antes de hacer commit, etc)

Aseguramiento de calidad (QA)

¿Estás familiarizado con pruebas unitarias: PHPUnit, Mage_Test, Ecomdev_PHPUnit, Selenium? ¿Cómo y cuándo las usarías?
Describe tu conocimiento/experiencia con objetos Mock
¿Cuáles son tus ideas sobre la calidad del código?
¿Usas estándares de codificación? ¿Por qué? ¿Cómo/cuáles?
Describe tu conocimiento/experiencia con pruebas unitarias (incl. informes de cobertura de código, puntuación CRAP)
Describe tu conocimiento/experiencia con integración continua (como Jenkins). ¿Qué piensas de ella?
¿Puedes describir tu proceso de gestión de releases? (por ejemplo, qué pasos das para llevar el código de tu entorno de desarrollo a producción)
Por favor, incluye las herramientas que usas para esto
¿Cómo gestionas las distintas configuraciones para Magento en estos distintos entornos? (por ejemplo, URL distinta)

Seguimiento de incidencias / Gestión de proyectos

Describe tu experiencia con sistemas de seguimiento de incidencias y/o gestión de proyectos para hacer seguimiento de trabajo/tareas/incidencias. ¿Cuáles has usado y cuáles te gustaron más y por qué? (por ejemplo, asana, assembly, basecamp, pivotal, redmine, git, trac, mantis, bugzilla, etc)

Apache

¿Puedes contarnos un poco sobre tu experiencia con Apache?
Describe algunas reglas de Rewriting complejas y configuraciones de control de acceso en Apache que hayas utilizado

MySQL

Describe tu experiencia en MySQL
¿Has encontrado problemas relacionados con la versión de MySQL? ¿Podrías describirlos y la solución que has implementado?

Cron

¿Sabes cómo configurar trabajos cron desde la línea de comandos en *nix?
¿Sabes cómo configurar cron jobs en Magento?

¿Necesitas ayuda con PHP, Magento o Laravel? No dudes en ponerte en contacto.