Experience
Download CV ↓From intern to leading the architecture.
Three roles, from internship to full-time, each with more ownership than the last.
CME Offshore · Beirut
Full-Stack Software Engineer · Full-timeJul 2024 – Present
Led the design of the client’s target platform architecture: modular micro-frontends and microservices, presented and defended before 30+ engineers and the head of engineering; adopted across all teams
Led AI-native development: made repositories AI-ready and built agentic pipelines, specialist agents and skills shared across teams, from ticket review to pull request; hundreds of tickets shipped in days, not weeks
Built dozens of AI tools and skills that make AI safe and efficient in teams’ daily work, including MySQL and AWS MCP servers that keep access read-only and compliant by redacting secrets and PII
Designed event-driven serverless architectures on AWS using AppSync, SNS, SQS and CDK, enabling reliable real-time communication
Designed a serverless email and two-way SMS backend on AWS (Lambda, SES, SNS, SQS, Bandwidth) handling 12,000+ messages a day
Led Next.js micro-frontends (SSR, SEO); owned features across legacy React/Backbone apps on Scala Play
Led a weekly AI adoption series for 30+ QA engineers and company-wide talks and workshops (e.g. OAuth 2.0); mentored interns in 2024 and 2025 until they could own full-stack applications
AWSNode.jsNext.jsReactTypeScriptScala PlayMySQL
leadershiptechnical
Toolbox
- Cloud & DevOps
- AWS · Lambda · API Gateway · AppSync · SNS · SQS · SES · EventBridge · CDK · Terraform · Docker · Jenkins · GitHub Actions
- Architecture
- Microservices · Event-driven · Serverless · Distributed systems · REST
- Backend
- Spring Boot · Spring Cloud · Node.js · Scala Play
- Frontend
- Next.js · React
- Data
- MySQL · PostgreSQL · MongoDB · Redis · Neo4j · Elasticsearch
- Messaging
- RabbitMQ · Kafka
- Security & identity
- Keycloak · Spring Security · OAuth 2.0
- AI-native development
- AI-assisted development · Agentic pipelines · MCP servers · Claude Code · Skills & subagents
- Languages
- Java · TypeScript · Python · Scala · OCaml · Gallina
- Testing
- Jest · JUnit · Mockito · Playwright · JMeter · Postman
How I lead
Requirements to solutionsdesigns, trade-offs, then building them with the teamArchitecture others adoptthe client’s target platform architecture, adopted across all teamsFull-stack deliveryfeatures end to end, new services and legacy systemsRaising the teamAI adoption, tech talks, mentoring interns
On AWS
An email and two-way SMS backend I designed
Send now, defer politely, listen back. Serverless and event-driven, 12,000+ messages a day: a shared messaging service that sends email and SMS in real time, parks out-of-hours messages on a queue instead of dropping them, records every Amazon SES event, and answers inbound SMS through a Bandwidth webhook.
1 / 5Send on requestA calling service asks for an email or an SMS, through API Gateway with an API key or by invoking the Lambda directly. The messaging service sends it straight away and logs it.
Calling servicescallers
API GatewayAPI key · or direct invoke
Messaging serviceLambda · checks · sends
SQS FIFOout-of-hours queue
EventBridgehourly replay · daily cap reset
ReplayLambda · re-sends
Amazon SES
Inbox
SNS
Email eventsLambda · records
BandwidthSMS
Phone
SMS webhookLambda · records · replies
DatabaseMySQL
- 1Send on request
- 2Check before sending
- 3Respect the recipient’s hours
- 4Email out, events back
- 5Two-way SMS
Before every send
- One-time message not already sent
- Daily cap per address
- Inside the recipient’s daytime window
- Allow-list in test environments
Built with
AWS CDK · CodePipelineLambdaAPI GatewaySQS (FIFO)EventBridgeSESSNSBandwidth SDK (SMS)webhookMySQL
EducationB.E. Computer & Communications Engineering (Software)Saint-Joseph University of Beirut · 2019–2024Ranked 1st · Valedictorian · GPA 3.7 / 4.0
LanguagesArabic (native) · English (fluent) · French (fluent)
Firas Khalife