Vacante Django/Phyton developer -Grin

Vacante


El equipo Grin sigue creciendo y abren convocatoria junto con Kodemia para arrancar Hack the Job Django Developer.

Acerca de Grin

Grin es una comunidad de movilidad diferente. Buscan conectar personas de manera simple, divertida y ecológica a través del uso compartido de patines eléctricos. Mediante una app disponible para Android o iOS, el usuario puede encontrar un scooter, escanear su código QR y utilizarlo. Al terminar el traslado, el scooter se deja en una zona designada para su estacionamiento y listo. Al ser una plataforma emergente, Grin solo tiene presencia en la Ciudad de México, específicamente en las colonias Condesa, Roma Norte, Roma Sur, Juárez, Cuauhtémoc, Anzures, Polanco, Del Valle Norte, Del Valle Centro, Nápoles, Narvarte, Ciudad de los Deportes, San Juan, Noche Buena, Extremadura Insurgentes, Insurgentes Mixcoac, Actipán, Del Valle Sur, Acacias, Santa Cruz Atoyac y Xoco y San Pedro GG en Nuevo León pero tienen planes de expandirse muy pronto a otras dentro de la capital. Aún cuando es un concepto nuevo en México, en otras grandes ciudades como San Francisco y Los Ángeles ya lleva activo un tiempo considerable, lo que garantiza el éxito y crecimiento de esta startup única en el país.

Lo que necesitas para formar parte del equipo de desarrollo Grin en cuanto a conocimiento y experiencia es:


Conocimiento avanzado de Django (2.x) y Python (3.x)

  • Set de librerías de soporte para poder manejar los mecanismos ya usados en Django.
  • PyCharm para debugging y deployment local.
  • Docker .
  • HTML usando los componentes de Django.
  • Servicios REST.
  • Celery.
  • Control de versiones (Git).

Tus habilidades soft y técnicas:

  • Lógica de programación.
  • Capacidad para trabajar en un equipo multidisciplinario.
  • Debes ser autodidacta.
  • Tener Ownership, que es el sentido de pertenencia hacia un proyecto.
  • Adaptabilidad.
  • Compromiso .
  • Análisis de problemas.
  • Experiencia en mantener y desarrollar sistemas en tiempo real con alta disponibilidad de datos.
  • Planeación de manejo de grandes cantidades de información.
  • Implementación de pruebas de integración y unitarias.
  • Optimización de consultas a DB usando ORMs.
  • Configuración de herramientas para CI y automatic Deployments.
  • Creación de herramientas básicas para la administración de datos.
  • Desarrollo de casos de pruebas para testing.
  • Conexión con servicios externos usando APIs y webhooks.

Grin es un lugar donde surgen ideas y se colabora con equipos multidisciplinarios en todo momento. Con oficinas en la Colonia Condesa, tu horario será de 9:00 am a 6:00 pm, pero contarás con la flexibilidad necesaria ya que lo importante es que cumplas con los objetivos.

El ambiente es lo mejor, hay desayuno todos los días como jugo, fruta y cereal y Grin te invita la comida 3 veces por semana.

La oferta económica va de los 2000 USD a los 2500 USD y cuenta con prestaciones de ley. Se te hará una oferta final acorde a tus conocimientos y experiencia.

El reto

Queremos crear un servicio que le ayude a la gente a buscar e interactuar con lugares cerca de ellos. Este servicio backend va a servir a diferentes clientes como iOS, Android y Web. Es importante tener en mente que no solo estamos buscando algo que funcione, estamos buscando un producto de calidad que se podría subir a producción.

Features MÍNIMOS para aplicar

  • Registrarse como usuario.
  • Hacer login.
  • Explorar lugares o puntos de interés dado un texto de búsqueda y una ubicación
    • Si no hay texto, se regresan N número de lugares cercanos.
    • Si no hay ubicación el endpoint regresa un error.
    • Los lugares deben ser reales, se puede utilizar APIs como las de Google o Foursquare.

Features DESEABLES para aplicar

  • Cada resultado debe incluir la distancia al usuario así como la información del lugar.
  • Habilidad para ordenar por distancia o popularidad (desde el query del API).
  • Soporte de paginación.
  • Implementar algún sistema de cache en la base de datos para no tener que llamar a servicios externos siempre.
  • Favoritos
    • El usuario puede agregar/remover un lugar como su favorito.
    • El usuario podrá subir una foto del lugar solo si está en sus favoritos.
    • Ver lista de otros usuarios que han marcado a un lugar como favorito, con paginación.
  • Favoritos de lista
    • El usuario puede ver su lista de favoritos y ordenarla por distancia, popularidad, o fecha en que se añadío.
    • Soporte de paginación.
  • Suscripciones
    • El usuario podrá pagar para suscribirse y recibir notificaciones sobre lugares.
    • El usuario recibirá un correo cuando un lugar que tenga como favorito tenga un nuevo suscriptor. Solo si pago por el servicio.

Requerimientos

  • Implementación con:
    • Django rest framework.
    • Python3.
    • Docker.
    • Optimización y uso de queries geo espaciales.
    • Integración de un procesador de pagos en México.
    • Seguridad para los endpoints que lo requieran (todos excepto registro y login).
    • Ubicación del usuario para todos los endpoints.
    • Documentación:
      • Como correr el servicio usando Docker.
      • Ejemplo de uso de servicios web (usando Postman o similar).
      • Estrategia planeada para un deploy a producción.
      • Cualquier información extra que crean relevante.
    • Unit/Integration tests para el servicio.

Notas

  • Si hay algo que no esté claro, toma una decisión y documenta por qué lo resolviste de esa manera.
  • No importa si no terminas, queremos ver tus métodos y la forma de resolver el ejercicio.
  • Realiza tu ejercicio y envía un mail adjuntando tu CV y un link a tu repositorio con el ejercicio a Carolina Gayosso (carolina@kodemia.mx), tienes hasta el 25 de Octubre para enviar tu ejercicio. Recibirás un mail confirmando tu participación en el evento y los siguientes pasos.

¡Suerte Koder!