Skip to content

Hi, I'm Mehdi.

A cloud and AI engineer. I build the infrastructure and the intelligent systems that run on it.

probably deploying something right now

The short version

Mehdi Salhi

I'm Mehdi, a cloud and AI engineer who loves building things from scratch. There's nothing better than watching an idea turn into a working system, whether that's the infrastructure running on AWS or the AI agents and apps that live on top of it.

Right now I'm going deeper into AI engineering and agentic AI, building projects on AWS and having fun with hackathons along the way. Always open to chatting about new ideas and opportunities!

tech I use

AWS

  • Lambda
  • API Gateway
  • DynamoDB
  • S3
  • EventBridge
  • SNS
  • CloudWatch
  • ECR
  • Secrets Manager
  • WAF
  • AWS Config
  • Cost Anomaly Detection
  • Bedrock
  • IAM
  • VPC

AI

  • Amazon Bedrock
  • Amazon SageMaker
  • Hugging Face
  • OpenRouter
  • LLMs
  • RAG
  • prompt engineering

Infrastructure as Code

  • Terraform
  • AWS SAM
  • CloudFormation

Containers & CI/CD

  • Docker
  • GitHub Actions
  • CI/CD pipelines

Security

  • IAM least-privilege
  • WAF
  • OIDC
  • HMAC-verified webhooks
  • Secrets Manager

Languages & Tools

  • Python
  • Bash
  • Linux
  • Git
  • YAML
  • JavaScript/TypeScript
  • SQL

Selected work

five projects I shipped end to end: architecture, code, deployment, and the bill

event-driven finops stack

  • 01EventBridge cron
  • 024 × Python Lambda
  • 03DynamoDB findings
  • 04Slack + Telegram
  • 05React dashboard
TerraformOIDCAWS Config< $2/mo
01

AWS Cost Watchdog

FinOps

A FinOps watchdog that found a $21/month zombie subscription on day one

Serverless FinOps monitoring for AWS: daily cost digests, idle-resource detection, tag enforcement, and anomaly alerts, all running for under $2/month.

  • Automated daily cost and waste monitoring (spend digests, idle-resource detection, tag-compliance checks via AWS Config, and cost-anomaly detection) across four event-driven Python Lambdas on EventBridge Scheduler and SNS, pushing findings to Slack and Telegram in real time
  • Persisted findings to DynamoDB and surfaced them in a React dashboard served through an API Gateway HTTP API and S3/CloudFront
  • Provisioned the whole stack as code with Terraform (remote S3 state, DynamoDB locking) and shipped it via GitHub Actions CI/CD using OIDC federation, with zero static AWS credentials
TerraformLambdaEventBridge SchedulerSNSDynamoDBAPI GatewayPythonReact

daily brief pipeline

  • 01EventBridge (daily)
  • 02Lambda (arm64)
  • 03yfinance → data
  • 04Claude → summary
  • 05CloudWatch logs
ECRSecrets ManagerTerraformOIDC
02

StockWatch

Serverless AI

A daily market brief that writes itself, for a few dollars a month

A serverless AI market brief on AWS. Pulls real price and news data, summarizes it with Claude, and runs hands-free on a daily schedule, every piece of it provisioned as code.

  • Automated a daily AI market brief that pulls price and news data via yfinance and summarizes it with Claude, running hands-free on an EventBridge daily schedule
  • Guarded the LLM output with automated pytest checks (non-empty, no refusals) enforced in a GitHub Actions pipeline alongside ruff linting and a terraform plan gate
  • Deployed as an ARM64 container image on ECR with zero static AWS credentials via GitHub OIDC, with API keys in a single Secrets Manager secret behind a least-privilege IAM policy
PythonLambda (ARM64)ECREventBridgeTerraformGitHub ActionsClaude APIDocker
unkommon.ai
Unkommon.ai screenshot
03

Unkommon.ai

Flagship

An AI receptionist that answers the phone and books the meeting

A full-stack AI website on a serverless AWS backend: a React site with an AI chatbot and a Vapi voice receptionist that answer questions, book appointments, and capture leads.

  • Built and deployed the site and serverless backend end to end, across three Lambdas behind API Gateway, with infrastructure as code in AWS SAM
  • Cut chatbot latency and Bedrock spend by front-running a Trie-based intent classifier ahead of Claude Haiku 4.5 streaming responses, so common questions never reach the model
  • Hardened it with a WAFv2 web ACL, HMAC-verified webhooks, least-privilege IAM, and Secrets Manager, over a DynamoDB data layer with Global Secondary Indexes, tested through a GitHub Actions pytest pipeline
ReactTypeScriptAWS LambdaAPI GatewayDynamoDBBedrockAWS SAMWAFVapi

retrieval pipeline

  • 01query
  • 02hybrid retrieve
  • 03cross-encoder rerank
  • 04generate
  • 05RAGAS score
FastAPIStreamlitDocker1.00 faith.
04

Company Policy RAG

RAGAS 1.00

Ask your documents anything, then measure whether it answered well

Retrieval-augmented generation over policy documents, with hybrid retrieval and cross-encoder reranking, scored against a real evaluation set rather than vibes.

  • Built a RAG pipeline with hybrid retrieval (dense embeddings and BM25) and cross-encoder reranking, measured with RAGAS at 1.00 faithfulness and 1.00 context precision on a 10-question evaluation set
  • Engineered the ingestion and chunking pipeline with unit tests and a GitHub Actions CI pipeline, documenting the key retrieval design tradeoffs
  • Served it through a FastAPI backend with a Streamlit UI, containerized with Docker and deployed on Hugging Face Spaces
PythonFastAPIStreamlitBM25Cross-encoderRAGASDocker
beesknees.ai
Bees Knees AI screenshot
05

Bees Knees AI

Live site

A marketing site with a chatbot that costs 90% less to run

Live marketing site for an AI agency with an embedded chatbot (Buzz) built on Claude. Streaming responses over SSE, prompt caching, per-IP rate limiting, and a full security header policy.

  • Prompt caching cut inference cost roughly 90%
  • Hardened with HSTS, CSP, and Permissions-Policy headers
  • Cal.com booking flow and a custom WebGL shader hero
Next.js 16React 19TypeScriptClaude APICal.comWebGLVercel
01 / 05

Where I've been

building AI agent workflows while I finish the degree

FunktasycurrentTechnology & Automation Lead · Remote
  • Jul 2026 – Present
  • Build AI business-intelligence agents in n8n (self-hosted on Docker) that turn market and product data into decision-ready reports for Wayfair's rugs category
  • Orchestrate multiple LLM providers (Google Gemini, Mistral, OpenRouter, Hugging Face) with prompt engineering and multi-step reasoning for classification, normalization, and analysis
  • Engineer resilient data pipelines that pull product data from multiple retailers through APIs and web scraping, normalize it into clean JSON, and assemble it into styled HTML reports

Credentials

B.S. Computer Science

Southern New Hampshire University

Expected Nov 2026

AWS Certified Solutions Architect – Associate

Amazon Web Services

2026

AWS Certified Cloud Practitioner

Amazon Web Services

2026

Google IT Support Professional Certificate

Google

2026

Let's talk

Hiring cloud or AI engineers? Or just want to talk about AWS, infrastructure as code, or what it takes to run an agent in production? Send me an email, put time straight on my calendar, or find me on LinkedIn. Whichever you pick, I'll get back to you within a day.

mehdisalhi.dev@gmail.com

© 2026 Mehdi Salhi

designed & built by Mehdi Salhi