Muath Alsawaier

I build backend systems and developer tools, and prove they work.

Software engineering intern at Schweitzer Engineering Laboratories and Software Engineering student at Washington State University, graduating December 2026. Every project below runs live on this page.

Eight live demos, measured on this server.

Live results

Measuring on the server…
  1. FaultLine…
  2. API Contract Tester…
  3. CodeRAG…
  4. Vulnerability Scanner…
  5. Performance Profiler…
  6. G-code Visualizer…
  7. DXF to G-code…
  8. G-code Optimizer…

Experience

Mar 2026 – present

Software Engineering Intern, Schweitzer Engineering Laboratories

Python libraries and extensions for the RTAC automation platform that ship to SEL customers. Built a context manager that made library load and save up to 15× faster, cut GridConnect save times by 14–77% by batching operations and caching Modbus parsing, and implemented WebSocket routing and frame handling for EV-charging integration.

May – Dec 2025

Software Validation Engineer Intern, Alturas Analytics

Took technical ownership of validating two regulated laboratory systems backed by SQL Server: T-SQL checks for data integrity and audit trails, and automated OQ/UAT suites in pytest, pyodbc and pandas built to 21 CFR Part 11 and GDPR.

Expected Dec 2026

B.S. Software Engineering, Washington State University

Minor in Mathematics. Selected student representative for the ABET accreditation review.

Projects

Each demo runs the project's own code on this server and loads its result when you scroll to it. Change the inputs and run it again.

FaultLine

Chaos experiments that state a hypothesis, inject a real fault, and return a pass or fail with the evidence.

Does the shop service keep orders under 60 ms when something breaks?

Loading saved run…

Eight CPU-burning processes compete with the service for 6 s.

POST /api/orders (graded) GET /health 60 ms SLO Failed request
Event log
    About this demo

    FaultLine spawns its bundled shop service, probes POST /api/orders and GET /health every 0.4 s, injects the fault for 6 s, then grades three hypotheses on the orders probe: steady state before the fault, behavior during it, and recovery after. The last run of each choice is saved and shown on load; one experiment runs at a time, so if someone else is running one you will watch theirs.

    • Python
    • asyncio
    • FastAPI
    • SLOs
    • Chaos engineering

    API Contract Tester

    Catches API changes that would break existing clients before a release, and checks live responses against the contract.

    Would releasing Orders API v1.3.0 break clients built for v1.2.0?

    Loading…

      Select a change to see its line. Choose Edit v1.3.0 to change the spec; the diff updates as you type.

      About this demo

      The diff is direction-aware: a new required field breaks clients that send requests but not clients that read responses, and a removed field is the reverse. Schemas used both ways get the stricter verdict. Validation runs the project's own contract enforcer, which converts the operation's response schema to JSON Schema and reports field-level drift.

      • Python
      • OpenAPI
      • JSON Schema
      • FastAPI
      • SQLAlchemy

      CodeRAG

      Answers questions about a codebase with sentences quoted from the code they cite, and says so when it has no good answer.

      Ask a question about the CodeRAG repository itself.

      Loading…
        About this demo

        The demo server keeps no language model loaded, so it runs CodeRAG's offline mode: BM25 retrieval over each function's name, docstring and code, then an extractive answer built only from sentences in the retrieved code. When the best passage scores below 0.20 it refuses instead of citing weak matches. With a local model, the same pipeline embeds chunks with nomic-embed-text and writes the answer with an LLM.

        • Python
        • RAG
        • BM25
        • Embeddings
        • Ollama

        Vulnerability Scanner

        A fast static first pass for SQL injection, XSS, hardcoded secrets and outdated dependencies, graded on code with known answers.

        On an app with planted flaws and safe look-alikes, what does it catch and what does it miss?

        Loading…
        About this demo

        The rules are line-based regular expressions, each paired with a suppression for its most common safe look-alike (parameterized queries, escaped templates, environment lookups). Every line of the sample app that matters is labeled in expected.json, so precision and recall are measured, not claimed. The one miss is deliberate: SQL built across two lines needs taint analysis, which line rules cannot do.

        • Python
        • Static analysis
        • Security
        • FastAPI

        Performance Profiler

        A decorator that records CPU time, wall time and memory per function, so you fix what the measurements say is slow.

        An order report is slow. Which function should you fix first, and did the fix work?

        Loading…
        CPU time Waiting (I/O)
          About this demo

          The report loads 1,000 orders, counts VIP customers and totals revenue for each day of the year. Each step has a classic slowdown and its fix: N+1 queries versus one JOIN, list versus set membership, and a scan per day versus one pass. SQLite runs in the same process, so each query also sleeps 0.1 ms to model a database round trip; that is why N+1 shows up as waiting, not CPU. Numbers are measured on this server for each run.

          • Python
          • Profiling
          • tracemalloc
          • SQLite
          • FastAPI

          CNC workflow

          Three Python projects that form one pipeline: inspect a program, turn a drawing into a program, then shorten the route between cuts.

          1G-code Visualizer

          Parses CNC G-code into a toolpath you can step through move by move, including arcs, drilling cycles and units.

          What will this program cut, and in what order?

          Loading…
          CutRapidHole
          Move 0
            About this demo

            Supports G0/G1, XY arcs with I/J or R, G20/G21, G90/G91 and drilling cycles (G81–G89, drawn as holes). Codes that do not change the XY path, such as tool changes and spindle commands, are listed as notes; codes the preview cannot model, such as G28 and cutter compensation, are listed as warnings. Distances include Z moves; the plot shows XY. This previews geometry; it does not verify a program for a machine.

            • Python
            • G-code parsing
            • Matplotlib

            2DXF to G-code

            Reads a CAD drawing with ezdxf and generates the G-code that cuts each contour, with depth, safe height and an estimated cycle time.

            Which lines of G-code cut which part of the drawing?

            Loading…

            Hover or tap a contour to highlight its G-code.

            Generated G-code

            About this demo

            Accepts LINE, LWPOLYLINE (including bulges), ARC and CIRCLE on the XY plane in millimetre or unitless drawings, up to 100 entities and 500 KB. Curves are cut as chords of at most 2°. Cycle time assumes the programmed feed and 5,000 mm/min rapids. The program has no tool changes or cutter compensation; check tooling and controller setup before machining.

            • Python
            • ezdxf
            • Geometry

            3G-code Optimizer

            Reorders independent cuts to shorten rapid travel, comparing nearest neighbor, X sorting and 2-opt on the same layout.

            How much travel does a better visiting order save, without changing a single cut?

            Loading…
            Original order
            Optimized order

            About this demo

            Each contour keeps its direction and start vertex; only the visiting order changes. 2-opt starts from the nearest-neighbor route and reverses sub-sequences while travel drops. Because a contour can end away from where it starts, each reversal is scored on the whole route with prefix sums, O(n²) per pass. Savings are XY rapid distance from the origin and exclude Z travel. The original order is kept if a heuristic would make it worse.

            • Python
            • Heuristics
            • 2-opt
            • Geometry

            Skills

            Python, asyncio, FastAPI, Pydantic
            Every demo backend on this page; FaultLine's experiment runner.
            APIs and contracts: OpenAPI, JSON Schema, WebSocket
            API Contract Tester; WebSocket routing and frame handling at SEL.
            Testing and quality: pytest, ruff, mypy, GitHub Actions
            CI on every repository; validation suites at Alturas built to 21 CFR Part 11.
            Performance: profiling, caching, query design
            Performance Profiler; 15× faster library load and save at SEL.
            Data: SQL, T-SQL, SQLite, PostgreSQL, SQLAlchemy, pandas
            Data-integrity checks at Alturas; the profiler's N+1 example.
            Retrieval and ML: RAG, BM25, embeddings, Ollama, PyTorch
            CodeRAG.
            Security: static analysis, secret detection
            Vulnerability Scanner.
            Also: C#, C/C++, JavaScript, Docker, Modbus, IEC 61131-3 Structured Text
            SEL RTAC work and coursework; Docker setups in each repository.

            Contact

            Open to backend and developer-tooling roles after I graduate in December 2026. Email is the fastest way to reach me.