Open to full-time remote work

Mahmoud Saeed

I build automations that handle boring work.

Support bots, invoice processing, booking flows, lead research. Built with Python. Running today.

Amman (UTC+3) B.Sc. Cybersecurity · ISC² CC Arabic · English

Selected work

Some of my work. Code and a demo video on every page.

Watcher

Built

Checks six job boards every morning, skips anything it has already seen, and sends one short Telegram digest with whatever is new and worth reading.

PythonSQLiteTelegram

Takes a list of companies, visits each site with a real browser, and fills in the spreadsheet: hiring contact, tech stack, careers page — with a screenshot saved as the receipt for every row.

Browser automationPythonxlsx

Answers customer questions in Arabic or English from your own documents, always citing where the answer came from — and turns anything it isn't sure about into a ticket for a human.

RAGpgvectorTelegram

Reads invoice PDFs, checks that the numbers add up, and writes clean rows to Google Sheets. Anything that doesn't reconcile is quarantined and flagged on Telegram instead of written.

PythonPDF extractionSheets

Books appointments over WhatsApp, keeps the schedule in Google Sheets the owner already uses, and can't double-book — even when two customers ask for the same slot at the same moment.

WhatsApp APIFastAPISheets
Something that eats your week?Describe the process, and I'll tell you straight whether it's worth automating.

How I build

What I do on every build.

Checked before saved

Data gets validated before it's written anywhere. If an invoice doesn't reconcile or a field is out of range, the row is rejected instead of stored.

Rate limits everywhere

Anything that talks to an outside service is rate limited, with backoff. The bots wait their turn — quiet days cost a few requests, not an account.

Failures that speak up

When something can't be answered or fetched, it doesn't vanish. Low-confidence questions become tickets, and dead feeds get skipped and noted.

Quiet days cost almost nothing

Content gets hashed first, so the scoring and summary steps run only when something actually changed.

A bit about me

Hi, I'm Mahmoud. I live in Amman, Jordan. I take boring, repetitive work and hand it to a script.

I studied cybersecurity, so I'm paranoid in a useful way: check the inputs, go slow on other people's APIs, make failures loud instead of silent.

Mostly Python. I use AI coding tools to move fast, then test everything by hand. The stuff below is all mine — I built it, I run it.

Currently

Looking for a full-time automation role. Remote, or in Amman. Happy to start with a short paid trial.

Logistics

Amman (UTC+3). Same hours as Europe, mornings overlap with the US. Arabic and English. Can contract through Deel.

Toolbox

The short list.

Languages & frameworks

  • Python
  • FastAPI
  • TypeScript
  • SQL

Data & storage

  • PostgreSQL / pgvector
  • SQLite
  • Google Sheets

Bots & integrations

  • Telegram API
  • WhatsApp API
  • Playwright
  • n8n

Infrastructure & ops

  • Docker
  • Linux / systemd
  • Git
  • Cloudflare

Experience

Automation Engineer, freelance

Oct 2025 — present

Automation work since Oct 2025. I take a manual process and turn it into something that runs on its own — tested, recorded, deployed.

Cybersecurity intern, National Cyber Security Center

Feb — Jun 2026

Internship through the Nashama bootcamp (11th edition): hands-on security training in Amman, hybrid.

Cybersecurity intern, Green Circle

Jul — Sep 2025

Vulnerability assessments and web application penetration tests, followed by remediation reports with risk ratings and fix steps.

B.Sc. Cybersecurity, Hashemite University

Sep 2022 — Feb 2026

Graduated with Very Good standing (GPA 3.12/4.0). Also completed the Nashama Al-Cyber bootcamp at Jordan's National Cyber Security Center, and hold ISC² Certified in Cybersecurity (CC).

Let's talk.

Want to hire me? Email is fastest.

hello@mahmoudsaeed.com