Abdelrhman Mohamed
Software Engineer focused on designing and building systems that keep working as load grows, with a strong emphasis on correctness, maintainability and real-world engineering constraints.
Interested in software architecture, distributed systems, performance, security, and the engineering practices that turn complex requirements into tested, deployable software.
- Oversold seats, 100-VU inventory burst
- 0
- Eventora · local, Docker Compose; 8-seat tier
- Requests in five capacity runs, 0 failed
- 569,066
- Eventora · local, Docker Compose; 0 server errors
- Read ceiling, one 1-CPU replica
- 660 req/s
- Eventora · local, Docker Compose; read path, 0 errors
- Automated tests
- 228
- Eventora · 228 / 228 passing
01 / About
About
- Education
B.Sc. Software Engineering
Arab Academy for Science, Technology and Maritime Transport (AASTMT)
Sep 2023 – Jun 2027
- Open source
15
merged pull requests across 11 projects, 3 under review
03 / Open source - Internships
3
- Alstom 2026
- Orascom Construction PLC 2026
- Telecom Egypt (WE) 2025
- Flagship project
Eventora
Event ticketing platform: one Spring Boot deployable (modular monolith) and a Next.js frontend.
228 Automated tests · 228 / 228 passing
Case study
- Backend
- Java 21Used in: Eventora
- Spring Boot 3.5Used in: Eventora
- Spring Security (JWT/RBAC)Used in: Eventora
- Spring Data JPAUsed in: Eventora
- Spring State MachineUsed in: Eventora
- FlywayUsed in: Eventora
- PythonUsed in: Recruiter-Pro, SysPlex, LexIntelligence, PhishSniffer
- FastAPIUsed in: Recruiter-Pro, SysPlex, LexIntelligence
- FlaskUsed in: SysPlex
- GoUsed in: SysPlex
- Data and messaging
- PostgreSQLUsed in: Eventora
- RedisUsed in: Eventora
- RabbitMQUsed in: Eventora
- Delivery and testing
- DockerUsed in: Eventora, SysPlex
- Docker ComposeUsed in: Eventora
- NginxUsed in: Eventora
- GitHub ActionsUsed in: Eventora, Recruiter-Pro
- k6Used in: Eventora
- TestcontainersUsed in: Eventora
- JaCoCoUsed in: Eventora
- pytestUsed in: Recruiter-Pro, SysPlex
- AI services
- scikit-learnUsed in: Recruiter-Pro, PhishSniffer
- Ollama (HTTP)Used in: Recruiter-Pro
- ChromaDB + LangChainUsed in: LexIntelligence
- PyTorch· notebookUsed in: PlantVillage notebook
- StreamlitUsed in: PhishSniffer
- Frontend
- Next.jsUsed in: Eventora, Recruiter-Pro
- ReactUsed in: Eventora, Recruiter-Pro
- TypeScriptUsed in: Eventora, Recruiter-Pro
- Tailwind CSSUsed in: Eventora
- VitestUsed in: Eventora
02 / Work
Work
Fig. 01 / 06 · Event search results filtered by text, city, category and date, light theme
Flagship project
Eventora
Event ticketing platform: one Spring Boot deployable (modular monolith) and a Next.js frontend.
- Java 21
- Spring Boot 3.5.13
- Spring State Machine 4.0.0
- PostgreSQL 17
- Redis 7
- Oversold seats, 100-VU inventory burstlocal, Docker Compose; 8-seat tier
- 0
- Requests in five capacity runs, 0 failedlocal, Docker Compose; 0 server errors
- 569,066
- Read ceiling, one 1-CPU replicalocal, Docker Compose; read path, 0 errors
- 660 req/s
Case study: EventoraSource: Eventora (opens an external site)
Fig. 01 / 04 · Recruiter-Pro dashboard with the upload area and the four-step processing pipeline
Case study
Recruiter-Pro
CV screening against a job corpus: parse, extract, score, explain.
- Python
- FastAPI 0.111.0
- scikit-learn
- Ollama (HTTP)
- pytest
- Jobs in corpus
- 800
- Branch coverageCI floor 81%
- 84.07 %
- TestsREADME states 544 and 530 in different places
- 500+
Case study: Recruiter-ProSource: Recruiter-Pro (opens an external site)
Case study
SysPlex
Cross-platform system observability: a Go native agent, a Bash agent with a FastAPI API, a PowerShell collector for Windows, and a Flask dashboard that polls every 2 s.
- Go 1.21
- gopsutil 3.23.11
- Python 3.11
- FastAPI
- Flask 3
- Dashboard refresh
- 2 s
- Docker Hub pulls
- 124
- pytest tests
- 104
LexIntelligence
Dual-model RAG assistant for legal documents.
- Scenarios completedself-run evaluation
- 10/10
- Faithfulnessself-run, small manual sample of 10 scenarios
- 0.956
- FastAPI 0.111.0
- ChromaDB
- LangChain
FastAPI backend with ChromaDB and LangChain embedding and chat clients (committed code at HEAD).
No automated tests.
PhishSniffer
Phishing-email classifier with a Streamlit UI, built as a Telecom Egypt internship deliverable.
- Test accuracy8,571 held-out samples, committed model metadata
- 97.7 %
- scikit-learn
- Streamlit
- Python
scikit-learn models: Random Forest, Gradient Boosting, Logistic Regression, on TF-IDF plus handcrafted features.
Trained on about 43K emails from public corpora (34,284 train, 8,571 held out).
Source: PhishSniffer (opens an external site)Live demo: PhishSniffer (opens an external site)May take a few seconds to wake.
03 / Open source
Open source
testssl/testssl.sh #3195 · Merged 27 Oct 2026 · +4 / −4 lines
[3.2] Fix Shellcheck issue SC2154 in client-initiated renegotiation check (opens an external site)Backport of #3190 to the 3.2 branch, requested by the maintainer
Mergeddisposable-email-domains/disposable-email-domains #1243 · Merged 27 Oct 2026 · +30 / −7 lines
Add DuckMailFetcher for the duckmail.sbs domain pool (opens an external site)Fixes #1218
Mergedydkhatri/mac_apt #177 · Merged 27 Oct 2026 · +161 / −0 lines
Add LESSHST plugin to read less history (.lesshst) (opens an external site)Fixes #169
Mergedtestssl/testssl.sh #3190 · Merged 26 Oct 2026 · +4 / −4 lines
Fix Shellcheck issue SC2154 in client-initiated renegotiation check (opens an external site)Fixes #3136
Mergedstylelint-scss/stylelint-scss #1377 · Merged 25 Oct 2026 · +138 / −1 lines
load-no-partial-leading-underscore false positive on @use 'dir/_' as alias-with-hyphen (opens an external site)Fixes #1366
Mergedkaifcodec/user-scanner #741 · Merged 25 Oct 2026 · +69 / −9 lines
fix(core): cap concurrency at 500 in the shared check and the setters (#717) (opens an external site)Fixes #717
Mergedkaifcodec/user-scanner #739 · Merged 24 Oct 2026 · +277 / −18 lines
fix(cli): reject out-of-range numeric options at the CLI and MCP boundary (#732) (opens an external site)Fixes #732
Mergedmagefree/mage #16440 · Merged 7 Oct 2026 · +52 / −14 lines
Boosters: fixed wrong card count in 30A, SWS and MH3 (#16370) (opens an external site)Fixes #16370
MergedFreshRSS/FreshRSS #9388 · Merged 4 Oct 2026 · +8 / −4 lines
Keep the reader view article date on one line (opens an external site)Mergedneomjs/neo #19365 · Merged 2 Oct 2026 · +218 / −0 lines
test(grid): pin the icon, icon-link and LinkedIn grid columns (#19137) (opens an external site)Fixes #19137
MergedFreshRSS/FreshRSS #9369 · Merged 2 Oct 2026 · +29 / −0 lines
Wrap the reader view article subtitle on narrow screens (opens an external site)Fixes #9360
Mergedsimplesamlphp/simplesamlphp #2688 · Opened 2 Oct 2026 · +23 / −0 lines
Document the Twig conflict when an application loads its own Twig (opens an external site)Fixes #2687. Retitled during review; first titled "Remove deprecated Twig includes from the release autoloader"
Openvshulcz/deja-vu #4123 · Merged 29 Sep 2026 · +61 / −2 lines
fix(warmup): warmup and version refuse arguments, and warmup --rebuild names deja index --rebuild (opens an external site)Fixes #4109. Shipped in v0.21.4, credited in the release notes
Mergedpython/typeshed #16443 · Merged 25 Sep 2026 · +5 / −5 lines
Widen tarfile.open() preset to int (opens an external site)Fixes #16442
Mergedconorbronsdon/avoid-ai-writing #342 · Merged 23 Sep 2026 · +1 / −1 lines
fix(scripts): use the resolved interpreter in read_manifest_version (opens an external site)Fixes #333
Mergedconorbronsdon/avoid-ai-writing #332 · Merged 22 Sep 2026 · +54 / −38 lines
docs: replace comments naming a missing script, roadmap and research file (opens an external site)Fixes #224
Mergedlitestar-org/litestar #5019 · Opened 26 Aug 2026 · +76 / −8 lines
fix: do not suggest FromQuery for path parameter defaults (opens an external site)Fixes #5018
Openeclipse-collections/eclipse-collections #1965 · Opened 22 Aug 2026 · +50 / −0 lines
Add iteration pattern examples for primitive bags to reference guide (opens an external site)Fixes #1387. Has a merge conflict
Open
Status from GitHub, refreshed daily · Aug 2026 – Oct 2026
litestar-org/litestar #5020
Bug: click 8.5.0 breaks test collection via rich-click get_binary_stream deprecation (opens an external site)Reported; fixed upstream in rich-click
Closed
litestar-org/litestar #5018
Bug: Error message suggests FromQuery for path parameter defaults (opens an external site)Reported; pull request #5019 proposes the fix
Open
conorbronsdon/avoid-ai-writing #333
sync-plugin-skill.sh hardcodes python3 at line 75 and exits 127 on Windows (opens an external site)Reported, then fixed by pull request #342
Closed
04 / Experience
Experience
–
Systems Engineering Intern
Alstom
- Cairo Monorail (CITYFLO 650 CBTC): diagnosed in-service faults on the driverless line by tracing 10+ subsystem interfaces (ATS, interlocking, ATP/ATO, platform screen doors, SCADA) and rebuilding event timelines from onboard and wayside logs to separate root causes from symptoms.
- Audited 660 pages of wayside and onboard maintenance manuals against the as-built architecture: a register of 78 findings (11 critical), each checked against its source document through 150+ scripted text checks.
- AI/ML sprint on railway incident data: framed the problem of 5 incompatible alarm formats feeding one operator screen, set 5 data-quality metrics, and proposed a unified incident taxonomy and classification approach.
IT Infrastructure Intern
Orascom Construction PLC
- CCNA-aligned networking: routing, VLAN segmentation, NAT, IP addressing, switching.
- Guided data-center rack walkthrough: firewall, servers, UPS.
–
AI/ML Intern
Telecom Egypt (WE)
- Delivered 2 AI-enhanced data-processing prototypes with supervised and unsupervised ML; one was PhishSniffer.
- EDA, preprocessing, and evaluation with precision, recall, F1 and cross-validation.
B.Sc. Software Engineering
Arab Academy for Science, Technology and Maritime Transport (AASTMT)
–
Claude 101, Claude Code 101, Claude Code in Action, Agent Skills, Subagents
Anthropic Academy
GenAI Practice
NVIDIA
Building LLM Applications with Prompt Engineering
NVIDIA
AI Associate
Telecom Egypt
DevOps Foundations
Sprints
Every figure has a source.
- Automated tests
- 228
- Eventora · 228 / 228 passing
- Event-Ticketing-Platform/README.md:253 (opens an external site) · as of
- JaCoCo instruction coverage
- 84.1 %
- Eventora · gated packages, gate 80%
- Event-Ticketing-Platform/README.md:254 (opens an external site) · as of
- Booking states
- 10
- Eventora
- Event-Ticketing-Platform/src/main/java/com/ticketing/booking/model/BookingState.java (opens an external site) · as of
- Flyway migrations
- 14
- Eventora
- Event-Ticketing-Platform/src/main/resources/db/migration (opens an external site) · as of
- Branch coverage
- 84.07 %
- Recruiter-Pro · CI floor 81%
- Recruiter-Pro/README.md:37; .github/workflows/ci.yml:86 (opens an external site) · as of
- merged pull requests
- 15
- 11 projects, 3 under review
- GitHub API, gh pr view per pull request · as of
- pytest tests
- 104
- SysPlex
- evidence-report.md:143 · as of
Systems that keep working as load grows.
Send a message05 / Contact
Contact
Send a message. It goes to my inbox, and I reply by email.









