SanMar- External
Apple
Ingeniero Senior de Sistemas Distribuidos - Proyectos Especiales de Servicios
Sobre la oportunidad
En Apple, las grandes ideas se convierten en productos, servicios y experiencias de cliente fenomenales a un ritmo que pocas empresas pueden igualar. Buscamos un ingeniero de backend con experiencia para diseñar y construir servicios masivamente escalables y de alta disponibilidad que impulsen las experiencias de los clientes de Apple.
DESCRIPCIÓN
Como miembro senior del equipo de ingeniería de servicios, construirás y operarás servicios de backend de alto rendimiento y baja latencia que ingieren, procesan y sirven datos a gran escala en una variedad de cargas de trabajo críticas, desde transacciones en tiempo real hasta análisis y entrega de contenido. También ayudarás a evolucionar una plataforma multiinquilino, incluidos servicios basados en IA/ML, mediante la implementación de nuevas capacidades, el escalado de lo existente y la aplicación de mejores prácticas de sistemas distribuidos desde el diseño hasta la producción.
CUALIFICACIONES MÍNIMAS
- Máster en Informática o campo relacionado
- 8+ años de experiencia profesional en desarrollo de software creando sistemas distribuidos escalables en producción
- Experiencia en la creación, autoría y operación de sistemas distribuidos a gran escala y de múltiples niveles, así como servicios web orientados al cliente: incluyendo diseño de API, autenticación, autorización, escalado para alta disponibilidad, concurrencia y fiabilidad.
- Sólida comprensión de la concurrencia y la programación multihilo, estructuras de datos fundamentales y diseño eficiente de algoritmos
- Gran dominio de Java; se valorará el conocimiento práctico de un segundo lenguaje de sistemas (Go, C++).
- Sólidas habilidades de análisis y diseño orientado a objetos.
- Gran dominio de frameworks de aplicaciones (Spring boot)
- Experiencia práctica con ajuste de rendimiento y perfilado de JVM: selección/ajuste de GC, JFR, async-profiler, análisis de volcados de memoria/hilos para servicios de baja latencia.
- Experiencia práctica con pilas JVM asíncronas y reactivas: Netty, Project Reactor, RxJava, Vert.x o Micronaut/Quarkus.
- Disciplina de pruebas rigurosa con JUnit 5, Mockito, AssertJ, Testcontainers y pruebas de contrato.
- Experiencia práctica con gestión de compilación y dependencias con Gradle
- Profundo conocimiento de los modelos de consistencia transaccional: semántica ACID, con un conocimiento profundo de las compensaciones entre tecnologías de bases de datos relacionales y NoSQL
- Experiencia con E/S de red síncrona y asíncrona y frameworks RPC (gRPC)
- Experiencia en la creación y mantenimiento de pipelines de CI/CD (por ejemplo, Jenkins, GitHub Actions, GitLab CI o similares) para pruebas automatizadas, compilación y despliegue de servicios de producción.
- Experiencia con AWS o GCP y herramientas nativas de la nube (Docker, Kubernetes) en el contexto del despliegue de servicios escalables de grado de producción.
- Experiencia con sistemas de streaming de eventos y colas (específicamente Kafka) y frameworks de procesamiento de flujos, así como rutas de escritura de solo anexado de alto rendimiento para registros históricos duraderos y consultables.
- Experiencia práctica en el aprovechamiento de almacenamiento de datos (Iceberg, Cassandra) y tecnologías de caché (Redis) en servicios de producción
- Experiencia práctica con herramientas de serialización/esquema: Jackson, Protobuf, Avro y Schema Registry
- Experiencia en la identificación, triaje y remediación de vulnerabilidades de seguridad en servicios de producción (gestión de dependencias, revisión de código seguro, modelado de amenazas).
CUALIFICACIONES PREFERENTES
- Autodidacta, con sólidas habilidades de colaboración y comunicación, y experiencia en un entorno ágil y de ritmo rápido
- Experiencia con sistemas de machine learning, frameworks, librerías y algoritmos de ML
- Familiaridad con el despliegue y optimización de servicios de IA de grado de producción a gran escala que requieren GPUs en la ruta de la transacción.
- Experiencia práctica en el despliegue, servicio y optimización de LLMs o modelos de ML directamente en la ruta de transacción/solicitud
- Experiencia con seguridad y criptografía (por ejemplo, TLS, certificados X.509), protocolos de gestión de identidad y acceso (OAuth2/OIDC/SAML) y gestión segura del ciclo de vida de tokens/sesiones.
