Axiom Path
Domino's
Ingeniero de Software Senior - Desarrollo Android
Descripción de la Empresa
Domino’s Pizza, que comenzó en 1960 como un único local en Ypsilanti, MI, ha tenido mucho que celebrar últimamente: somos una marca redefinida y revitalizada de honestidad, transparencia y responsabilidad, ¡sin mencionar la excelente comida! En su camino para convertirse en un verdadero líder tecnológico, la marca se encuentra constantemente entre las cinco principales empresas en transacciones en línea y el 65% de nuestras ventas en EE. UU. se realizan a través de canales digitales. La marca continúa "cumpliendo el sueño" de los dueños de negocios locales, el 90% de los cuales comenzaron como repartidores y pizzeros en nuestros locales. Eso es solo la punta del iceberg... ¡o como podríamos decir, una "rebanada" del pastel! Si esta es una marca de la que te gustaría formar parte, ¡considera unirte a nuestro equipo!
Descripción del Puesto
Salario- base de 120-130k
Toda su información se mantendrá confidencial de acuerdo con las directrices de EEO.
Categoría de Puesto Org: Tecnología de Domino’s
Nombre de la ubicación - Código de ubicación: Domino's Pizza LLC-WHQ
Un Ingeniero de Software III demuestra competencia en la tecnología en cuestión. Desarrolla con un enfoque más externo, abarcando otros equipos y cómo el software interactúa con otras partes de la organización. Son competentes en el lenguaje de programación y la biblioteca principal, incluidas sus partes más complejas, numerosas bibliotecas de terceros y las herramientas de desarrollo, compilación, depuración, prueba y despliegue de aplicaciones. Comprenden, a un nivel moderado, todos los componentes que conforman el sistema y sus interrelaciones y patrones de comunicación. Pueden utilizar este conocimiento para desarrollar subsistemas complejos utilizando los principios que han aprendido y con la vista puesta en un enfoque con los modismos y patrones ya presentes en el código y el equipo. Tienen una profunda comprensión del subconjunto de componentes en los que están trabajando y pueden asesorar a desarrolladores con menos experiencia en el diseño de su código y el ecosistema de desarrollo más amplio utilizado dentro del proyecto. Se espera que un Ingeniero de Software III escriba consistentemente código de alta calidad, de complejidad media a alta, de manera oportuna. Esto incluye tener en cuenta aspectos como el rendimiento, la mantenibilidad y la seguridad. Además, se espera que sean competentes en todos los estándares, prácticas, directrices y modismos del equipo y los apliquen mientras codifican.
Desarrollo - 80%
- Proporciona aportaciones a la definición de los estándares de codificación de la organización
- Produce estimaciones para sus tareas asignadas y participa en la estimación de iniciativas más grandes, incluida la planificación inicial del proyecto
- Produce código de alto rendimiento con un énfasis especial en la estabilidad y el soporte a largo plazo
- Promueve la reutilización del código con la vista puesta en oportunidades de reutilización entre equipos/sistemas
- Produce código que está adecuadamente probado unitariamente y cumple con los requisitos para pruebas de sistema/integración
- Responsable de la documentación de su código y de la documentación externa de un sistema o proyecto
- Participa en el diseño de componentes completos y la interacción entre componentes
- Apoya al equipo de gestión de proyectos en la descomposición de los requisitos empresariales en tareas individuales
- Profundo conocimiento de bibliotecas y componentes comunes (frameworks)
- Un revisor clave de las PR (Pull Requests) para su equipo de proyecto
- Participa en la implementación inicial de nuevos patrones
- Soporte de desarrollador de primera línea para sistemas de producción - resolución de problemas/triaje
- Puede participar en entrevistas
Mentoría - 20%
- Apoya a los desarrolladores respondiendo a preguntas conceptuales y técnicas de los miembros del equipo
- Ayuda a los desarrolladores a mejorar la mantenibilidad, el rendimiento y la seguridad de su código a través de revisiones de código
- Proporciona mentoría dedicada a miembros nuevos o inexpertos del equipo (por ejemplo, candidatos rotacionales, nuevos empleados o nuevos miembros de un equipo)
Cualificaciones
Cualificaciones de Aplicaciones Nativas
- + de 7 años de experiencia general en desarrollo utilizando un lenguaje orientado a objetos
- Experto en Kotlin y/o Swift
- Experiencia demostrable con XCode y/o Android Studio
- Experiencia demostrable con Java y/o Objective-C.
- Experiencia demostrable consumiendo servicios web RESTful JSON
- Experiencia demostrable con desarrollo Agile y pruebas unitarias.
- Experiencia demostrable con notificaciones push, servicios de localización.
- Experiencia demostrable con herramientas de compilación como Gradle y Fastlane
- Experiencia demostrable con frameworks de análisis como Firebase, Adobe o similares
- Experiencia con varios patrones de arquitectura como MVC, MVVM, VIPER o similares
- Experiencia con herramientas de gestión de dependencias como Cocoapods, gestor de paquetes de Swift, Gradle
- Experiencia con frameworks de accesibilidad
- Experiencia con herramientas de perfilado y depuración de código
- Experiencia en la presentación y publicación de aplicaciones a través de tiendas de aplicaciones.
Cualificaciones Generales
- Competente en métodos/patrones de diseño (por ejemplo, DRY, SOLID, ReST) y su aplicación práctica
- Excelente jugador de equipo con buenas habilidades de comunicación tanto con compañeros no técnicos como técnicos
- Altamente motivado y impulsado por el deseo de resolver problemas difíciles y aprender nueva tecnología
- Experto en escribir pruebas unitarias de calidad
- Experto en herramientas de compilación y depuración
- Competente en herramientas de perfilado
- Experiencia con sistemas de integración continua como Jenkins/GitHub
- Experiencia con desarrollo de software internacional (multilingüe, multidivisa, geográfico y conocimiento de la configuración regional)
- Competente en MacOS, Unix y Linux
- Experiencia con conceptos de bases de datos (consultas, modelos de datos)
- Comprensión del desarrollo en un sistema distribuido
- Comprensión de los conceptos básicos de redes como el protocolo http y su uso
- Se prefiere experiencia con Docker, o tecnología de contenedores equivalente.
- Se prefiere experiencia con prácticas y herramientas ágiles (Jira o similar)
Información Adicional
- Beneficios: • Días festivos y vacaciones pagados
- Beneficios médicos, dentales y de visión que comienzan el primer día de empleo
- Soporte de salud mental gratuito para el empleado y dependientes
- Descuentos en la matrícula de guardería
- Programas gratuitos de fitness, nutrición y bienestar
- Beneficios de fertilidad
- Asistencia para la adopción
- Contribuciones de igualación de 401k
- 15% de descuento en el precio de compra de acciones
- Bonificación de la empresa
