VP & Staff Software Engineer(s)
hace 2 días
Barcelona
ph3About Share /h3 pShare is a venture-backed internet infrastructure network building Africa’s backbone. The company aggregates underutilized telecom infrastructure, fiber, subsea cables, and data centers, and provides ISPs with scalable access to bandwidth without traditional upfront costs. Through an open-access model, local internet providers can deliver dramatically faster speeds to their subscribers without raising their own costs. /p pShare’s network spans thousands of kilometers of fiber, 12 infrastructure providers, and 10 data centers, reaching over 8 million people across East Africa. The platform team builds the software that makes this work: billing, payments, subscriber management, RADIUS-based network authentication, and integrations with ISP billing systems and mobile money providers. We are replacing legacy, non-API systems with a modern API platform, and real money is already flowing through the system. This is a small, high-intensity engineering team building core infrastructure under real deadlines. You will own entire domains, not tickets. /p h3The role /h3 pWe are hiring a VP Staff Software Engineer to take ownership of the platform’s most critical technical domains: the payments pipeline (collections, revenue splitting, treasury operations), the billing engine (subscription lifecycle, cycle management, automated renewals), and the integration layer (BSS/OSS sync with partner systems). You will work directly with the CTO and a small team of engineers to ship production systems that handle real financial transactions for real ISP partners. /p pThis is the most senior individual contributor role on the engineering team. You are expected to make architectural decisions, write production code, review others’ work, and unblock the team when they hit technical walls. You will not manage people. You will build systems. /p h3What you will own /h3 ul liPayments domain: SasaPay collections integration (C2B API, STK push, IPN handling), revenue split engine (per-partner, per-BNG percentage logic), ChoiceBank treasury operations (withdrawals, internal transfers, OTP flows), and the payment completion handler that bridges payment confirmation to subscriber activation. /li liBilling engine: Subscription and BillingCycle lifecycle, automated renewal cron, grace period enforcement, plan change mid-cycle logic, and the event-driven communication triggers that notify subscribers at every billing moment. /li liIntegration layer: Splynx adapter (plan sync outbound, subscriber sync inbound, activation webhooks), custom webhook delivery engine, and the event routing that connects domain events to external system notifications. /li liArchitecture decisions: Service boundaries, event contracts (Kafka), data model evolution (Prisma/PostgreSQL), API design for both public and private endpoints, and the migration strategy from the legacy Next.js monolith to the NestJS microservices platform. /li /ul h3Technical environment /h3 ul liBackend (where you will spend most of your time): NestJS monorepo with 7 microservices (CRM, Billing, Payments, Ledger, Communications, Provisioning, Integrations) /li liTypeScript end-to-end /li liPostgreSQL with Prisma ORM (shared database, service-scoped access) /li liKafka message bus (migrating from RabbitMQ) for inter-service communication (send/emit patterns) /li liRedis for caching, queues, rate limiting, and idempotency /li liREST API gateway with Swagger documentation /li /ul h3Payments and financial systems /h3 ul liSasaPay (OAuth 2.0, C2B collections, B2B transfers, IPN webhooks) /li liChoiceBank BaaS API (KYC, internal transfers, OTP-based withdrawal confirmation) /li liRevenue split engine with per-partner/per-BNG/per-plan configuration /li liDouble-entry ledger (AccountTransfer, AccountLedgerEntry, AccountRevenueSplit) /li liM-Pesa STK push integration via SasaPay as collections gateway /li /ul h3Infrastructure and tooling /h3 ul liGitHub Actions CI/CD, SSH deployment to VMs /li liSentry for error monitoring, Loki + Pino for structured logging (being implemented) /li liCircuit breaker patterns, provider failover, webhook signature verification /li liFreeRADIUS integration for network subscriber provisioning (PPPoE credentials, plan attributes) /li /ul h3Legacy system (active, being migrated) /h3 ul liNext.js application with API routes (the payments module you’ll be refactoring lives here today) /li liShared Prisma schema with the new platform /li liActive development continues on both repos simultaneously during migration /li /ul h3Requirements /h3 h3Non-negotiable /h3 ul li7+ years of professional software engineering experience, with at least 3 years in backend systems handling real financial transactions (payments, billing, ledger, or treasury) /li liDeep TypeScript/Node.js expertise. You should be able to design a NestJS microservice from scratch, not just work in one. /li liProduction experience with payment gateway integrations (M-Pesa, Stripe, Adyen, or similar). You understand STK push flows, webhook idempotency, callback signature verification, and reconciliation. /li liStrong PostgreSQL skills. You can design schemas for financial data, write migrations, and reason about transaction isolation and locking. /li liExperience with event-driven architectures (Kafka, RabbitMQ, or similar). You understand the difference between request-reply and fire-and-forget patterns and when to use each. /li liYou ship. You can take a spec document and turn it into production code without waiting for someone to break it into small tasks. /li /ul h3Strong preference /h3 ul liExperience in East African fintech or mobile money ecosystems (M-Pesa, SasaPay, Airtel Money). Understanding of Kenya’s payment infrastructure and regulatory environment. /li liExperience with ISP billing systems, RADIUS protocols, or telecommunications platforms. /li liExperience with Prisma ORM and NestJS specifically. /li liProduction experience with multi-tenant SaaS platforms (provider-scoped data, API key auth, webhook delivery). /li liTrack record of migrating monolithic systems to microservices while keeping production running. /li /ul h3AI-augmented Engineering (required Mindset) /h3 pWe expect every engineer at Share to use AI tools as a daily part of their workflow. This is not optional and not aspirational — it is how we operate. Our entire project planning, specification, and documentation process runs through AI-assisted sessions. Our codebase includes AI-readable context files. We use Claude for architecture decisions, code review, spec generation, and technical writing. /p pWhat this means for you: /p ul liYou already use AI coding assistants daily and can articulate how they change your workflow — not just autocomplete, but architectural reasoning, spec review, and debugging. /li liYou are comfortable working with AI-generated specifications and can critically evaluate them, push back where they are wrong, and extend them where they are incomplete. /li liYou see AI as a force multiplier that lets a small team operate at the capacity of a much larger one. You are not threatened by it; you are faster because of it. /li liYou are willing to contribute to improving our AI-assisted workflows — better prompts, better context files, better session structures. /li /ul h3What we offer /h3 ul liA seat at the table while we build the technical backbone of Africa’s next-generation internet — the decisions you make here will be visible in how entire ISP partners run their networks. /li liCompetitive salary and meaningful equity in a mission-driven, investor-backed company (US-incorporated; Kenya operating entity). /li liPrivate health and wellness benefits — we’ll walk through these during the process. /li liA high-ownership environment with a steep but well-supported learning curve, and a team that writes things down. /li /ul /p #J-18808-Ljbffr