Lead Software Engineer - NBA
Become a part of our caring community
The Lead Full Stack Engineer owns the NBA platform's orchestration and state machine โ the system that carries a decision from the moment it is made to the moment it is activated, delivered, and acknowledged across member engagement channels. Built in Node.js/TypeScript on the Temporal workflow platform, the solution manages durable workflow execution, long-running member journeys, and reliable action delivery through Transactional Outbox and Kafka-based event patterns. This role owns the critical path between decision generation, activation, delivery, and receipt processing, ensuring actions are executed correctly, consistently, and at enterprise scale. This is a hands-on technical leadership role: you write code, lead a small team of engineers and contractors, and are accountable end-to-end for the durability, correctness, observability, and timeliness of action delivery across the member journey.
Key Responsibilities
-
Pod delivery โ Own end-to-end delivery for the orchestration pod: planning, execution, quality, and shipping on time.
-
Workflow orchestration โ Design and build durable, long-running workflows on Temporal in Node.js/TypeScript that model the member action lifecycle, state transitions, scheduling, activation, and delivery outcomes.
-
Action delivery architecture โ Own the end-to-end action delivery pipeline from decision publication through activation, delivery acknowledgment, and state reconciliation. Design and implement Transactional Outbox patterns, atomic persist-and-publish workflows, idempotency controls, retry/backoff mechanisms, dead-letter queue handling, and delivery receipt processing.
-
Activation integrations โ Own the components that activate decisions to Adobe Experience Platform (AEP) and publish through Kafka output patterns to downstream channels. Define delivery contracts, activation guarantees, and receipt ingestion patterns that ensure reliable action execution.
-
Hands-on development โ Contribute code alongside the team, including Temporal workflows and activities, Node.js services, Kafka producers and consumers, outbox processors, and integration services.
-
Technical decisions โ Make the day-to-day architecture decisions for the pod, including workflow design, state machine modeling, retry and compensation strategies, idempotency, topic strategy, schema evolution, delivery guarantees, and API contracts.
-
Distributed systems reliability โ Engineer for correctness in a highly asynchronous environment. Ensure exactly-once business intent through idempotent consumers, deduplication strategies, durable state management, safe retries, and graceful failure handling.
-
Observability and operations โ Establish monitoring, tracing, alerting, and operational visibility across workflow execution, event publication, activation processing, and delivery acknowledgment pipelines.
-
Team leadership โ Manage and mentor engineers and contractors; run code reviews, uphold engineering standards, and keep the team unblocked and moving.
-
Cross-team coordination โ Coordinate interfaces with decisioning, the Action Library, activation systems, and the platform team; surface dependencies, integration risks, and operational concerns early.
Use your skills to make an impact
Required Qualifications
- Bachelor's degree in computer science or relevant area
- 6+ years of full stack software engineering experience, with at least 1โ2 years in a tech-lead or senior-lead capacity.
- Strong Node.js/TypeScript backend experience building production services.
- Hands-on experience with workflow orchestration platforms, with Temporal strongly preferred (or comparable technologies such as Cadence, Step Functions, or Airflow for durable workflows).
- Strong distributed systems fundamentals, including event-driven architectures, asynchronous processing, retries, idempotency, and failure recovery.
- Experience designing and implementing Kafka p