




Resumen: Share está contratando a un Ingeniero de Software Senior para gestionar dominios críticos de la plataforma como pagos, facturación e integraciones, tomando decisiones arquitectónicas y lanzando sistemas de producción para transacciones financieras reales. Aspectos destacados: 1. Gestionar dominios técnicos completos con un impacto significativo en la infraestructura central. 2. Trabajar directamente con el CTO en un equipo de ingeniería de alta intensidad. 3. Utilizar herramientas de IA a diario para tomar decisiones arquitectónicas, escribir código y gestionar flujos de trabajo. **Acerca de Share** =============== Share es una red de infraestructura de internet respaldada por capital riesgo que construye la columna vertebral de África. La empresa agrupa infraestructura de telecomunicaciones subutilizada, fibra óptica, cables submarinos y centros de datos, y brinda a los proveedores de servicios de Internet (ISP) acceso escalable al ancho de banda sin los costos iniciales tradicionales. Mediante un modelo de acceso abierto, los proveedores locales de internet pueden ofrecer velocidades drásticamente más rápidas a sus suscriptores sin incrementar sus propios costos. La red de Share abarca miles de kilómetros de fibra óptica, 12 proveedores de infraestructura y 10 centros de datos, llegando a más de 8 millones de personas en África Oriental. El equipo de plataforma desarrolla el software que hace esto posible: facturación, pagos, gestión de suscriptores, autenticación de red basada en RADIUS y integraciones con los sistemas de facturación de ISP y proveedores de dinero móvil. Estamos reemplazando sistemas heredados sin API por una plataforma moderna basada en API, y ya circulan fondos reales a través del sistema. Se trata de un equipo pequeño pero de alta intensidad, encargado de construir infraestructura central bajo plazos reales. Usted gestionará dominios completos, no simples tareas. **El puesto** ============ Estamos contratando a un Ingeniero de Software Senior para asumir la responsabilidad de los dominios técnicos más críticos de la plataforma: la canalización de pagos (cobros, reparto de ingresos y operaciones del tesoro), el motor de facturación (ciclo de vida de las suscripciones, gestión de ciclos y renovaciones automáticas) y la capa de integración (sincronización BSS/OSS con sistemas externos). Trabajará directamente con el CTO y un pequeño equipo de ingenieros para lanzar sistemas de producción que gestionen transacciones financieras reales para socios ISP reales. Este es el puesto individual más senior del equipo de ingeniería. Se espera que tome decisiones arquitectónicas, escriba código de producción, revise el trabajo de otros y desbloquee al equipo cuando encuentre obstáculos técnicos. No tendrá responsabilidades de gestión de personal. Construirá sistemas. **Qué usted gestionará** ===================== * **Dominio de pagos:** Integración de cobros mediante SasaPay (API C2B, STK push, manejo de IPN), motor de reparto de ingresos (lógica por socio, por porcentaje BNG), operaciones del tesoro con ChoiceBank (retiros, transferencias internas, flujos OTP) y controlador de finalización de pagos que vincula la confirmación del pago con la activación del suscriptor. * **Motor de facturación:** Ciclo de vida de las suscripciones y los ciclos de facturación, cron de renovación automática, aplicación de períodos de gracia, lógica de cambio de plan a mitad de ciclo y disparadores de comunicación basados en eventos que notifican a los suscriptores en cada momento clave de la facturación. * **Capa de integración:** Adaptador Splynx (sincronización de planes hacia afuera, sincronización de suscriptores hacia adentro, webhooks de activación), motor personalizado de entrega de webhooks y enrutamiento de eventos que conecta eventos del dominio con notificaciones a sistemas externos. * **Decisiones arquitectónicas:** Límites entre servicios, contratos de eventos (Kafka), evolución del modelo de datos (Prisma/PostgreSQL), diseño de APIs tanto públicas como privadas, y estrategia de migración desde el monolito Next.js heredado hacia la plataforma de microservicios NestJS. **Entorno técnico** ========================= **Backend (donde pasará la mayor parte de su tiempo)** * Monorepo NestJS con 7 microservicios (CRM, Facturación, Pagos, Contabilidad, Comunicaciones, Provisionamiento, Integraciones) * TypeScript de extremo a extremo * PostgreSQL con ORM Prisma (base de datos compartida, acceso limitado por servicio) * Bus de mensajes Kafka (en migración desde RabbitMQ) para comunicación entre servicios (patrones send/emit) * Redis para caché, colas, limitación de tasas e idempotencia * Puerta de enlace REST API con documentación Swagger **Sistemas de pagos y financieros** * SasaPay (OAuth 2\.0, cobros C2B, transferencias B2B, webhooks IPN) * API BaaS de ChoiceBank (KYC, transferencias internas, confirmación de retiros mediante OTP) * Motor de reparto de ingresos con configuración por socio / por BNG / por plan * Libro mayor de doble entrada (AccountTransfer, AccountLedgerEntry, AccountRevenueSplit) * Integración M\-Pesa STK push mediante SasaPay como puerta de entrada para cobros **Infraestructura y herramientas** * CI/CD con GitHub Actions, despliegue SSH a máquinas virtuales * Sentry para monitorización de errores, Loki \+ Pino para registros estructurados (en implementación) * Patrones de circuit breaker, conmutación ante fallos de proveedor, verificación de firmas de webhooks * Integración con FreeRADIUS para provisionamiento de suscriptores de red (credenciales PPPoE, atributos del plan) **Sistema heredado (activo, en proceso de migración)** * Aplicación Next.js con rutas de API (el módulo de pagos que usted refactorizará se encuentra actualmente aquí) * Esquema Prisma compartido con la nueva plataforma * El desarrollo activo continúa simultáneamente en ambos repositorios durante la migración **Requisitos** ================ **Imprescindibles** * 7\+ años de experiencia profesional en ingeniería de software, con al menos 3 años en sistemas backend que gestionen transacciones financieras reales (pagos, facturación, contabilidad o tesorería) * Conocimientos profundos de TypeScript/Node.js. Debe ser capaz de diseñar un microservicio NestJS desde cero, no solo trabajar dentro de uno existente. * Experiencia en producción con integraciones de pasarelas de pago (M\-Pesa, Stripe, Adyen o similares). Comprende los flujos STK push, la idempotencia de webhooks, la verificación de firmas de callbacks y la conciliación. * Competencias sólidas en PostgreSQL. Puede diseñar esquemas para datos financieros, escribir migraciones y razonar sobre aislamiento de transacciones y bloqueos. * Experiencia con arquitecturas orientadas a eventos (Kafka, RabbitMQ o similares). Comprende la diferencia entre los patrones solicitud-respuesta y disparo-y-olvida, y cuándo usar cada uno. * Entrega de productos. Puede transformar un documento de especificaciones en código de producción sin esperar a que alguien lo divida en tareas pequeñas. **Preferencias fuertes** * Experiencia en fintech o ecosistemas de dinero móvil del este de África (M\-Pesa, SasaPay, Airtel Money). Conocimiento de la infraestructura de pagos y del entorno regulatorio de Kenia. * Experiencia con sistemas de facturación de ISP, protocolos RADIUS o plataformas de telecomunicaciones. * Experiencia específica con ORM Prisma y NestJS. * Experiencia en producción con plataformas SaaS multiinquilino (datos con alcance por proveedor, autenticación mediante claves API, entrega de webhooks). * Historial comprobado de migración de sistemas monolíticos a microservicios manteniendo la operación en producción. **Ingeniería potenciada por IA (mentalidad requerida)** Esperamos que cada ingeniero de Share utilice herramientas de IA como parte diaria de su flujo de trabajo. Esto no es opcional ni aspiracional: así operamos. Todo nuestro proceso de planificación de proyectos, especificaciones y documentación se ejecuta mediante sesiones asistidas por IA. Nuestra base de código incluye archivos de contexto legibles por IA. Usamos Claude para decisiones arquitectónicas, revisiones de código, generación de especificaciones y redacción técnica. Lo que esto significa para usted: * Ya utiliza asistentes de programación con IA (Claude, Cursor, Copilot o similares) a diario y puede explicar cómo cambian su flujo de trabajo —no solo autocompletado, sino también razonamiento arquitectónico, revisión de especificaciones y depuración. * Se siente cómodo trabajando con especificaciones generadas por IA y puede evaluarlas críticamente, objetarlas cuando sean incorrectas y ampliarlas cuando estén incompletas. * Ve a la IA como un multiplicador de capacidades que permite que un equipo pequeño opere con la capacidad de uno mucho más grande. No le amenaza; es más rápido gracias a ella. * Está dispuesto a contribuir a mejorar nuestros flujos de trabajo asistidos por IA —mejores indicaciones (prompts), mejores archivos de contexto, mejores estructuras de sesión. **Qué ofrecemos** ================= * Un lugar en la mesa mientras construimos la columna vertebral técnica de la próxima generación de internet en África: las decisiones que tome aquí serán visibles en cómo funcionan enteros socios ISP en sus redes. * Salario competitivo y participación accionaria significativa en una empresa con propósito y respaldada por inversores (constituida en EE.UU.; entidad operativa en Kenia). * Beneficios privados de salud y bienestar —los revisaremos juntos durante el proceso. * Un entorno de alta responsabilidad con una curva de aprendizaje pronunciada pero bien apoyada, y un equipo que documenta todo por escrito.


