Principal Engineer
Technical Environment Cloud Services: High-availability AWS stack including Lambda, EventBridge, DynamoDB, S3, ECS Fargate, Aurora, API Gateway, CloudWatch, and Secrets Manager Development Languages: Modern Python and Java (Spring Boot) alongside TypeScript/React (Next.js 16) frontends, with legacy domain coverage in PHP/Laravel AI & Agentic Systems: Advanced agentic workflow orchestration utilizing lean AWS Bedrock AgentCore, MCP servers, or LangChain/LangGraph frameworks Data Engineering: Complex data architectures featuring DynamoDB single-table design, MySQL/Aurora, S3 data lakes, Glue Data Catalog, Athena, and Data pipelines Infrastructure & Security: Enterprise-grade CI/CD and observability via CloudFormation, Auth0 consolidation, OpenTelemetry, and CircleCI Integration Surfaces: Multi-protocol connectivity spanning REST, SOAP/XML, EventBridge event-bus patterns, SES processing, and Playwright browser automation You Should Have8+ years of software engineering experience with at least 3 years in a Staff / Principal / Architect role Build Cloud native solutions with emphasis on speed to market Deep hands-on experience (About 40-50% in the code, 40-50% in Design) with AWS serverless (Lambda, EventBridge, DynamoDB, StepFunctions) and traditional service architectures (ECS, RDS, API Gateway) Experience spending 10-20% of your time in mentoring, cross-team alignment and operating mechanisms Track record of leading monolith-to-services migrations strangler fig, dual-write validation, traffic-splitting, canary rollouts Fluency across multiple languages: you can review PHP, architect & prototype Python, architect Java services, and reason about TypeScript frontends Experience with event-driven architectures, configuration-driven workflow engines, and DynamoDB single-table design Strong opinions on observability and the discipline to instrument before you migrate The ability to write a design doc that a senior IC can implement without ambiguity, and the judgment to know when to write code yourself instead