AnasFawaz

Illustrated portrait of Anas in a black cap and hoodie, smiling, on a grey studio backdrop.

Anas

I design and build full-stack systems for schools, hospitals and organisations, from the database schema to the screen.

Software developer in Beirut. Nurse first, then UI/UX designer, now building full-stack systems.

The layers I work across

Every system I build goes from the screen down to the database. Select a layer to hear how I approach it.

And the concerns that cut through every layer:

Featured projects

Two systems I built alone, end to end, and a platform I'm building with a team. Real backends, careful relational models and access control that holds up.

School Management System

In use at one school

A full stack web application with a layered ASP.NET Core API, business rules in SQL Server stored procedures and a React and TypeScript client. It is Arabic-only and right-to-left, and covers a school's students, attendance, subscriptions and reports, plus a portal for parents.

My role: built alone, from scratch to deployment: design, database, API, interface and testing.

How it's built

Controller → Service → Repository → ADO.NET → Stored procedure

React and TypeScript on the front, an ASP.NET Core (.NET 10) API with JWT authentication, and SQL Server underneath. No ORM: business rules live in stored procedures and one service layer.

Modules

  • Students and groups
  • Attendance
  • Progress tracking
  • Curriculum follow-up
  • Subscriptions and payments
  • Planning and notes
  • Evaluations
  • Reports and audit log

Engineering details

Four roles (super admin, admin, team leader, teacher) plus limited finance and curriculum accounts. Edit windows are enforced in SQL, archived students stay in the archive with no time limit and can be restored, monthly reports generate automatically, and backups run on a schedule. Read-only answers are cached in memory per person for a few seconds and dropped the moment any change succeeds. The scheduled jobs are idempotent: the monthly reports and each month's subscriptions can run again, or catch up after the server was off, without creating duplicates. 800+ automated checks in 58 suites, and GitHub Actions builds and unit-tests every push.

Built with C#, ASP.NET Core, React, TypeScript, SQL Server Read the case study

Hospital Information System

Offered to hospitals

A full stack system for a 100-bed general hospital: a React client over an ASP.NET Core API and SQL Server, with 260 API endpoints, 13 scope-aware roles and 212 automated tests wired into a GitHub Actions pipeline, 155 of them integration tests against a real SQL Server. Fifteen modules take a patient from the emergency room to the final bill.

My role: built alone, from requirements to tests. I'm now offering the system to hospitals.

How it's built

React → ASP.NET Core API → EF Core and stored procedures → SQL Server

JWT with server-side sessions and two-factor sign-in, EF Core for the model and transactional writes, versioned stored procedures for searches. Nurses and doctors each get their own home screen: the tasks of the shift, or the results and patients that need them.

Modules

  • Identity and access
  • Patients and encounters
  • Wards and medication
  • Clinical and NEWS2
  • Laboratory and radiology
  • Pharmacy
  • Perioperative care
  • Billing and payers
  • Inventory
  • Staffing
  • Role dashboards
  • Notifications
  • Reports
  • FHIR interface
  • System and health

Engineering details

Authorization combines permission and scope (hospital, department, work context, system) from effective-dated role assignments. Separation of duties stops a prescriber from approving their own prescription. Ward safety is built in: a medication schedule with overdue doses, NEWS2 early warning, a pre-op checklist that gates the case start, and an append-only audit trail enforced by a database trigger.

Built with C#, ASP.NET Core, React, EF Core, SQL Server Read the case study

Tarbawi Platform

In development · team project

A team-built platform for the Ibad al-Rahman Association in Beirut: a bilingual Next.js frontend over a Spring Boot API and PostgreSQL. It manages people, a time-aware organisation tree, posts, access and approvals, across 54 screens in Arabic and English.

My role: a team project run in Scrum. I'm one of the frontend developers: I was the main contributor to the first version of the interface and its Arabic and English layouts, and I ran the screen-by-screen fix pass across all 15 epics. The backend team owns the API, and a QA team tests every story.

How it's built

Next.js → Spring Boot API → PostgreSQL

Next.js 16 and React 19 with TypeScript, Tailwind and shadcn/ui, next-intl for Arabic (right to left, the default) and English, TanStack Query, and forms validated with React Hook Form and Zod. The browser reaches the API through a same-origin proxy, so the refresh cookie stays first-party and the access token lives only in memory. By design, effective-dated data lets you view the organisation at any date, and sessions are server-side so they can be revoked at once.

Built so far

  • Identity and 2FA
  • Accounts and sessions
  • Organisation tree
  • People registry
  • Posts and reporting lines
  • Roles and access review
  • Operations and approvals
  • Audit and notifications
  • Metrics and reports

Coming next

  • Attendance
  • Treasury and payments
  • Phone and tablet QA pass

How the team works: Scrum

The work is planned as epics and user stories on a shared board, each story with its acceptance criteria. I take a story from the board, build it on its own branch, and open a pull request; QA then tests it against the acceptance map before the story is accepted, epic by epic. Fifteen epics so far, from sign-in and accounts to structure, positions, access, approvals, audit and the secretariat.

CI/CD with GitHub Actions

The team ships through GitHub Actions. In the backend repository, every push and pull request to main runs the tests against a real PostgreSQL started by Testcontainers. In the frontend repository, every push to the dev branch builds a Docker image and ships it to the dev server over SSH, with a key that can only deploy and report status. QA gets each build by promotion from dev, so what QA tests is exactly what ran on dev.

Access model

One person can hold several posts, and each post maps to roles. Access is computed per person and per date as permission-and-scope pairs, deny by default, with row filters and field visibility (hidden, masked, read-only, editable). Roles are versioned, and requests go live once the approvers resolved from the reporting lines accept them.

Built with Java 21, Spring Boot, PostgreSQL, Next.js

UI/UX projects

My featured UI/UX projects, from fintech and healthcare to e-commerce and food ordering. Each one opens as a live site you can click through and use.

  • The PayWallet website: the headline 'Your money, anywhere. Anytime.' beside a phone running the app.

    Fintech · Website and app

    PayWallet

    A money-transfer app and its website. The phone on the page is the working app: send money, freeze the card, watch your spending update.

    View live
  • The NOMA website: a phone standing on a plinth in front of the word NOMA in glowing purple outline.

    Consumer tech · Product website

    NOMA

    A launch page for a phone that keeps only calls, maps, music and messages. Wake the phone on the page, open its apps, then order one.

    View live
  • The Furnigo store: the headline 'Where luxury meets comfort' beside a cream living room.

    E-commerce · Online store

    Furnigo

    A furniture store you can shop end to end: filter by room, save pieces, choose a finish, check out, then track the order.

    View live
  • The MyClinic tablet app: today's appointments with an urgent patient at the top, beside her record and vital signs.

    Healthcare · Tablet app

    MyClinic

    A clinic's day on one screen: the waiting room with live wait times, each patient's file and progress, prescriptions, booking and an end-of-day summary.

    View live
  • The Foodigo app on a phone: an orange welcome screen with a drawn burger stacking itself above a 'Start ordering' button.

    Food delivery · Mobile app

    Foodigo

    A burger-ordering app you can use on the page: stack your own burger and watch it build, order from the menu, then pay and track it to your door.

    View live

How a feature gets built

The same six steps, from first conversation to production.

  1. Understand

    Learn the business rules, the requirements and what users actually need before writing code.

  2. Design

    Plan the relational schema, the API contracts and where each service boundary sits.

  3. Build

    Build the backend logic, API and interface, keeping business rules and data access clearly separated.

  4. Debug

    Test error handling, security policies, edge cases and data validation.

  5. Refactor

    Clean up the code, tune the queries and keep the patterns consistent.

  6. Deploy

    Configure production, the proxy server and a reliable release process.

The engineering values behind every project above, each where it is real:

  • Least privilege

    The school's API login can only run stored procedures. The hospital's runtime login has no DELETE, no schema changes and no updates on append-only tables.

  • Idempotent by design

    A job that runs twice does no harm. The school's monthly reports and subscription months catch up after downtime without duplicates.

  • Cache with a clear end

    The school caches read-only answers per person for seconds, and the first successful change throws every cached answer away.

  • One rule, one place

    Rules live in one service or procedure, never in the screens. The 72-hour edit window is enforced inside the stored procedure.

  • Tests in the pipeline, shipped by pipeline

    The hospital's GitHub Actions pipeline is set up to run its 212 tests, 155 of them integration tests against a real SQL Server. The Tarbawi team deploys every push to dev automatically.

  • A record nobody can edit

    Sign-ins, clinical and financial changes and permission refusals are audited, and a database trigger keeps the hospital's audit trail append-only.

Where I've worked

Nurse first, then designer, now developer. Each role taught me something the next one needed.

  1. – now

    Full-stack software developer

    961 Developments

    I build systems for schools and healthcare teams, from the database schema to the interface, with C#, ASP.NET Core, SQL Server and React, and take each one from the first idea to launch.

  2. – now

    Frontend developer

    Tarbawi Platform, a team project

    A Scrum team with backend developers and QA. Each story gets its own branch and pull request, and QA accepts it against the acceptance map. I was the main contributor to the first version of the interface.

  3. –

    UI/UX designer

    10+ product design projects across healthcare, fintech, e-commerce and food delivery: user flows, wireframes, prototypes and reusable design systems. See the UI/UX projects.

  4. –

    Nursing

    BSc in Nursing from Makassed University of Beirut. Hands-on experience with clinical workflows, high-responsibility environments and people who need things to work under pressure.

BSc in Nursing

Makassed University of Beirut, 2025. GPA 3.63/4.0, with distinction.

Software engineering

Ongoing, mentored by working engineers: C# backends, database design, APIs, testing and deployment.

Volunteering

Three years as general secretary and operations manager of a public association, coordinating volunteers and students.

Download CV

PDF, 2 pages, with every role, project and date.

Take my card

Hiring a full stack developer, or need a system built? Email me at fawazanas98@gmail.com and tell me about it.

Drag the card to swing it. Click it to see the back.

ID photo of Anas

Anas Fawaz

Full Stack Software Developer

Build. Improve. Create.