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.
- Angular
- Go
- SQL
- Docker
About
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.
Stack
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.
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.
Production store for the portfolio API; schema and queries.
Relational modelling, indexing, migrations.
Document modelling where the shape is genuinely irregular.
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
2024 — Present
Add your current company
Placeholder — replace with what you own day to day, in one or two plain sentences.
20XX — 20XX
Add the company
Placeholder — what the work was, and what you were trusted with.
Featured work — 01
Four repositories, one deploy pipeline, zero secrets on disk.
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.
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.
Three repositories can deploy at the same moment, so the script takes a host-wide flock and uses a throwaway Docker credential store.
The live tag is read back off the running container, so a failed healthcheck can restore the previous image without a state file.
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
02
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.
03
Placeholder — replace with a real project.
Two or three sentences. What was hard, what you chose, and what it cost you.
Beyond the interface
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.
Interface
Server-rendered, hydrated per viewport, typed end to end.
Transport
Versioned resources over HTTPS, terminated at the edge by Traefik.
Service
A single static binary: routing, validation, business rules.
Data
Relational schema, indexed access paths, migrations in version control.
Runtime
Multi-stage images running non-root with healthchecks and limits.
Delivery
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.
Boundaries that survive the next requirement, not the current one.
Written for the person who reads it at 2am — often me.
Measured, not assumed. Budgets before optimisation.
Secrets out of argv, off disk, and out of logs.
Stateless services, honest limits, room to add a node.
If it is done twice by hand, it becomes a workflow.
Contact
Let's build something useful.
Open to full stack and frontend engineering roles. The fastest route is email — I read everything.
me@fathyalbakatoshy.site