Hi, I'm Fathy.

Open to new roles

SoftwareEngineer

I build scalable web applications with Angular, Go and modern backend technologies — from the interface a user touches to the pipeline that ships it.

Interface
Angular · TypeScript
Service
Go · .NET · REST
Delivery
Docker · CI/CD
Scroll

About

I build productsfrom interfaceto infrastructure.

Most of my work sits on both sides of the API. I design the Angular front end, write the Go service behind it, model the SQL it reads from, and own the Docker image and CI pipeline that put it in production.

That range is deliberate. Knowing how a request actually reaches the database changes how you build the screen in front of it — what to cache, what to stream, where a loading state is honest and where it is an excuse.

Focus
Full stack — Angular + Go
Depth
Interface through infrastructure
Ships with
Docker, GitHub Actions, Traefik

Stack

The tools I reach for, and what I use them for.

01 Frontend

  • Standalone components, signals, SSR and incremental hydration.

  • Strict mode by default; types as the design, not decoration.

  • The platform underneath the framework — DOM, events, timing.

  • Semantic structure first; accessibility falls out of it.

  • Modern layout, custom properties, motion without a library.

  • Component system behind the admin dashboard.

  • Utility layer over a hand-built token set.

02 Backend

  • Small, fast HTTP services that compile to a single static binary.

  • Routing, middleware and request lifecycle for Go APIs.

  • Data mapping where it helps, hand-written SQL where it does not.

  • C# services and REST APIs.

  • Predictable resources, honest status codes, versioned contracts.

03 Database

  • Production store for the portfolio API; schema and queries.

  • Relational modelling, indexing, migrations.

  • Document modelling where the shape is genuinely irregular.

04 Infrastructure

  • Multi-stage builds; non-root runtimes measured in megabytes.

  • Build, push to GHCR, deploy over SSH, roll back on failure.

  • Every push to main is a release — no manual steps.

  • Static delivery, caching rules, same-origin API proxying.

  • TLS termination, routing and HSTS across the stack.

  • Single-host production: networks, limits, healthchecks.

Experience

Where I've been building.

  1. 2024 — Present

    Software Engineer Placeholder

    Add your current company

    Placeholder — replace with what you own day to day, in one or two plain sentences.

    • Add a responsibility you actually hold.
    • Add a change you made and what it improved.
    • Angular
    • TypeScript
    • Go
    • .NET
    • SQL Server
    • Docker
  2. 20XX — 20XX

    Add your previous role Placeholder

    Add the company

    Placeholder — what the work was, and what you were trusted with.

    • Add an achievement.
    • Add a system you built or maintained.
    • Angular
    • REST APIs
    • SQL

Featured work — 01

Portfolio Platform

Four repositories, one deploy pipeline, zero secrets on disk.

2025Sole engineer — architecture, implementation, deployment

A production system rather than a single site: a server-rendered Angular front end, a PrimeNG admin console, a Go API on SQL Server, and an ops repository that deploys all three. Pushing to main builds an image, ships it over SSH, waits for the container to report healthy, and rolls back to the previous tag if it never does.

  • Angular 21
  • SSR
  • Go
  • SQL Server
  • Docker
  • GitHub Actions
  • Traefik
  • Nginx
  1. 01

    Config never lands on disk

    Secrets travel from GitHub Actions to the server over stdin — not argv, which every tenant on a shared box can read, and not an env file.

  2. 02

    Deploys are serialised

    Three repositories can deploy at the same moment, so the script takes a host-wide flock and uses a throwaway Docker credential store.

  3. 03

    Rollback needs no state

    The live tag is read back off the running container, so a failed healthcheck can restore the previous image without a state file.

  4. 04

    Shared infrastructure

    The stack attaches to existing Traefik and SQL Server networks instead of running its own, with memory limits set for the host it lives on.

Selected work

More things I've built.

02

Add your next project Placeholder

Placeholder — replace with a real project.

Describe what the system does, who it is for, and the one engineering decision you would defend in an interview.

Role
Your role
Year
20XX
  • Angular
  • Go
  • SQL
  • Docker

03

Add another project Placeholder

Placeholder — replace with a real project.

Two or three sentences. What was hard, what you chose, and what it cost you.

Role
Your role
Year
20XX
  • .NET
  • REST APIs
  • SQL Server

Beyond the interface

I understandthe whole system,not only the UI.

A feature is not finished when the component renders. It is finished when the request is routed, the query is indexed, the image is built and the pipeline has put it in front of someone.

  1. Interface

    Angular

    Server-rendered, hydrated per viewport, typed end to end.

  2. Transport

    REST API

    Versioned resources over HTTPS, terminated at the edge by Traefik.

  3. Service

    Go

    A single static binary: routing, validation, business rules.

  4. Data

    SQL Server

    Relational schema, indexed access paths, migrations in version control.

  5. Runtime

    Docker

    Multi-stage images running non-root with healthchecks and limits.

  6. Delivery

    CI/CD

    Build, push, deploy, verify health, roll back — on every merge.

How I work

Good software is notonly aboutmaking it work.

It should be maintainable, secure, observable and easy to evolve.

  • Clean architecture

    Boundaries that survive the next requirement, not the current one.

  • Maintainable code

    Written for the person who reads it at 2am — often me.

  • Performance

    Measured, not assumed. Budgets before optimisation.

  • Security

    Secrets out of argv, off disk, and out of logs.

  • Scalability

    Stateless services, honest limits, room to add a node.

  • Automation

    If it is done twice by hand, it becomes a workflow.

Contact

Have a projectin mind?

Let's build something useful.

Open to full stack and frontend engineering roles. The fastest route is email — I read everything.

I read everything that arrives here. Replies usually take a day or two.