Samir Alami's Work | ContraWork by Samir Alami
Samir Alami

Samir Alami

Full-stack developer building and deploying web apps

New to Contra

Samir is ready for their next project!

Cover image for Kontera is a Rust library
Kontera is a Rust library I'm building that turns e-commerce events (sales, refunds, payment fees and payouts) into correct Swedish bookkeeping: balanced verifications on BAS accounts, exported as SIE 4I files. It runs without a database or server, so it can be embedded in any shop or tool. It came out of a real problem. A payment provider pays out one net amount, but the books need the sales, VAT, refunds and fees posted separately, and those postings have to reconcile to exactly zero. The core is pure and built so invalid states can't exist: money is stored exactly in öre with defined rounding, account numbers are validated, and a verification can only be created if it balances. It's tested with property-based tests, and CI runs formatting, lints with warnings as errors, an MSRV check and a check that keeps the core free of I/O. The specification and architecture decisions were written first. The domain model is in place, and the posting rules and SIE export are next. It also compiles to WebAssembly for use from Node.
1
26
Cover image for This is the deployment and
This is the deployment and operations setup behind SwadeStack, my e-commerce site. The whole cluster is defined in Git, so it can be rebuilt from scratch on a fresh server. Every push to the app repository is built in GitHub Actions and published as a container image tagged with its commit. The pipeline then updates this GitOps repository, and Argo CD deploys the new version to staging. Production is promoted separately, by hand. The app is configured with Kustomize, using a shared base and separate staging and production overlays. It runs on a single-node k3s server. Secrets are stored encrypted with Sealed Secrets, traffic goes through Traefik and a Cloudflare Tunnel, and Prometheus, Grafana and Alertmanager handle monitoring. Eight alert rules cover downtime, the database, TLS expiry, disk usage and backups. The database and uploaded files are backed up nightly by Kubernetes jobs, and a written bootstrap and recovery guide covers rebuilding the cluster.
0
26
Cover image for NazerAuto is a bilingual website
NazerAuto is a bilingual website and management platform for a car workshop that does repairs and sells spare parts. I designed, built and deployed it on my own. Customers can browse the service catalog, filter by vehicle compatibility, and order and pay online with Stripe. The site runs in English and Dari with a full right-to-left layout, and bilingual email notifications go out for each order. The workshop manages services, orders and site content from an admin dashboard. Built with React, TypeScript, Redux Toolkit and Tailwind CSS on the frontend, and Node, Express and PostgreSQL on the backend, with two-factor login for accounts.
0
32
Cover image for SwadeStack is an e-commerce site
SwadeStack is an e-commerce site I designed, built and run on my own, from the storefront to the server it runs on. The frontend is React and TypeScript, the backend is Node with PostgreSQL. It has Stripe checkout, two-factor login, real-time currency conversion and full English and Swedish support. It's self-hosted on a Kubernetes server I set up myself. Every change is built and tested in GitHub Actions and deployed through Argo CD, with Prometheus and Grafana monitoring, email alerts and nightly backups.
0
34