Muath Alsawaier

I build backend systems &developer tooling that proves itself.

Software Engineering student at Washington State University and SWE intern at Schweitzer Engineering Laboratories. I build Python and protocol tooling, then test it against real behavior. Explore eight interactive projects below.

apichecking repos… Python lines… pattern matches… test functions…
mu8th@portfolio: project explorer
preview · click to explore
scroll
01

About Me

[ who i am & what i do ]

Engineering reliable systems with measurable proof.

I'm a Software Engineering student at Washington State University and a software engineering intern at Schweitzer Engineering Laboratories, where I build Python libraries and extensions for the RTAC platform.

My focus is backend systems and developer tooling: APIs whose contracts are tested before they ship, security tooling that surfaces risky patterns for review, and performance data you can watch while it happens. I care about the unglamorous parts of software: the tests, the diagnostics, the measurements. That's what separates code that works from code that's proven to work.

Internship · Mar 2026 - Present
Software Engineering Intern
Schweitzer Engineering Laboratories

Building Python libraries and extensions for the RTAC platform that ship to production and are used by many SEL clients, including reusable utilities, schema-aware upgrades with tests, and a context manager that made library load and save up to 15x faster.

Internship · May - Dec 2025
Software Validation Engineer Intern
Alturas Analytics

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

Education
B.S. Software Engineering, Washington State University
Minor in Mathematics · expected 12/2026
Python C# C / C++ SQL & T-SQL Docker Git
currently learning Rust for systems-level tooling · Kubernetes & Helm · gRPC & Protobuf · AST analysis with tree-sitter
02

Skills

[ technical proficiency ]

01 / Languages

Build across the stack

Python · Structured Text (IEC 61131-3) · SQL / T-SQL · C# · C / C++

02 / Backend

Design the contract

FastAPI · OpenAPI · WebSocket · SQLAlchemy · Pydantic · SQLite · SQL Server

03 / Quality

Prove the behavior

pytest · Ruff · mypy · GitHub Actions · contract testing · risk-based validation

04 / Systems & AI

Measure and retrieve

Docker · Modbus · DNP · profiling · chaos testing · RAG · NumPy · Ollama

03

Projects

[ projects & interactive demos ]

Eight projects, from backend systems to CNC geometry. Run an experiment, inspect its result, then explore a three-step workflow for visualizing, converting, and optimizing toolpaths.

chaos · inject & grade not run
THE EXPERIMENTWill the service recover after CPU pressure?

Chart, recent p95, and phase summaries include both probes; SLO hypotheses grade POST /api/orders only.

—recent p95 · last 12 0probes 0errors —margin to 25 ms line
FaultLine probe latency over the experiment Live request latency grouped by baseline, CPU pressure, and recovery. The dashed trace shows the 95th percentile of successful latency samples from the most recent 12 probes; failed requests are counted separately. The chart, recent p95, and phase summaries include both POST /api/orders and GET /health probes. The amber line marks the 25 millisecond threshold; SLO hypotheses grade POST /api/orders only.
Select a phase to inspect what its measurement means.
$ faultline run --experiment portfolio-demo [PREVIEW] baseline → CPU pressure → recovery
01 / FAULTLINE featured experiment

Fault Injection & Chaos Testing Platform

Define an SLO hypothesis, inject a bounded fault, and watch the service respond. This run probes a spawned service through baseline, CPU pressure, and recovery, then grades each phase against a 25 ms p95 threshold. A red FAIL means the experiment found a breach.

- measured p95 under CPU pressure
PythonAsyncioChaos EngineeringSLOsFastAPI
Request a FaultLine walkthrough ↗
code-rag · ask the indexed repo not run
THE INVESTIGATIONCan an answer point back to the code?
Try a question about retrieval, citations, or the embedding pipeline. how does the retrieval index rank code chunks? [1] retrieval.py:41-62 query 0.87"up to k (position, cosine_score) tuples, highest score first" [2] embed.py:33-59 embed_texts 0.63"texts are embedded in batches against the local endpoint" [3] ingestion.py:107-124 ingest 0.41"one chunk per top-level symbol, plus module preambles" Chunks are embedded and ranked by cosine similarity to the query… illustrative example · ask the codebase for a live answer
03 / CODE-RAG

Local RAG Code Assistant

Retrieval-augmented code assistant that answers questions about a codebase with grounded, cited answers: per-symbol chunking, cosine retrieval, and local LLM synthesis, plus a zero-model offline mode so the demo runs anywhere.

PythonFastAPIRAGEmbeddingsOllama
View on GitHub ↗
pattern scan · 5 local repos not run
THE TRIAGEWhich pattern matches need a closer look?
Illustrative snippets · run the heuristic scan to inspect repository matches
db.execute(f"SELECT * FROM u WHERE id={uid}") row = conn.execute(query, params).fetchone() html = "<div>" + raw_input session = requests.Session() api_key = "EXAMPLE_TOKEN_DO_NOT_USE" cursor.close()
Select a flagged line after the scan to inspect why it was surfaced.
04 / VULNERABILITY-SCANNER

Real-time Vulnerability Scanner

A regex-based first pass flags SQLi, XSS, secret, and dependency patterns. Filter real repository matches and inspect a flagged line. Every result remains a review lead until its context is checked.

- potential pattern matches · review required
PythonStatic AnalysisSecurityFastAPIDocker
View on GitHub ↗
profile · CPU share + live samples not run
THE QUESTIONWhich function deserves attention first?
db_query
42%
render_template
36%
encode_payload
22%
hot path: db_query() illustrative profile · run for measured values
—recorded CPU —calls measured —first target
Run the profiler to turn the example bars into measured evidence.
CPU per samplewaiting for run
CPU time consumed by each live sample A line chart updated from profiler WebSocket frames. The horizontal axis is relative elapsed time in the plotted sample window; the vertical axis is CPU milliseconds per sample.
05 / PERFORMANCE-PROFILER

Real-time Performance Profiler

A stdlib decorator measures CPU time, wall time, and traced memory per call. Switch between total CPU share and average cost per call, then watch fresh CPU samples stream in. The chart shows functions, not a nested call graph.

- of CPU on the live hot path
PythonFastAPIWebSocketProfilingFlame Graphs
View on GitHub ↗
GEOMETRY / MOTION / EFFICIENCY

From a drawing to a better route.

Three Python projects. One CNC workflow. Inspect the moves, turn geometry into G-code, then measure how much travel a better ordering saves.

06 / G-CODE-VISUALIZER

G-Code Visualizer

PythonMatplotlibG-code parsing

Parsed and visualized CNC G-code toolpaths with color-coded visualization. Inspect where the tool cuts, where it travels, and how each line changes its route.

01 / INSPECTRead the program. See the path. sample preview
Feed / cutRapid travel
XY PLANE / MILLIMETRES
Run to inspect source lines
—motion commands
—feed distance · mm
—rapid distance · mm

Edit a program or choose a sample, then visualize its computed toolpath.

Python demo rebuilt for this portfolio. Supports G0/G1, XY G2/G3 with I/J, G20/G21, and G90/G91. Distances include Z moves; the plot shows XY. Unsupported operations are reported.

07 / DXF-TO-G-CODE

DXF to G-Code Converter

PythonezdxfGeometry extraction

Extracted geometry from DXF files and generated CNC-compatible G-code. This demo reads a real drawing with ezdxf and turns each contour into an inspectable motion program.

02 / CONVERTDrawing in. Toolpath out. sample preview
DXF → G21 / G90 / G1
Generated G-code
Choose a drawing and convert it.

G21  → millimetres
G90  → absolute coordinates
G0   → travel between contours
G1   → trace the geometry
—DXF entities
—contours extracted
—G-code lines

Try the mounting plate, then inspect the outline and four circular holes.

Inspect or paste ASCII DXF

Python demo rebuilt for this portfolio. LINE, LWPOLYLINE, ARC, and CIRCLE on the XY plane; mm or unitless drawings (assumed mm). Curves use chords of at most 2°. Geometry preview uses Z5 clearance and Z−1 depth; tooling, compensation, and controller setup require verification before machining.

08 / G-CODE-OPTIMIZER

G-Code Optimizer

PythonSortingNearest neighbor

Reduced toolpath inefficiencies through sorting and reordering algorithms, with efficiency statistics. Compare the original route with a new ordering and see exactly how much rapid travel it saves.

03 / OPTIMIZESame contours. A shorter journey. sample preview
Preserved cutsRapid travel
ORIGINAL ORDERSample preview
OPTIMIZED ORDERRun to compare
—less XY rapid travel
—millimetres saved
—contours preserved
—unchanged XY cut · mm
Run to reveal the new contour order.

Compare two heuristics on the same layout. Savings are computed for your selected example.

Python demo rebuilt for this portfolio. Reorders independent contours from the selected DXF without changing cut direction or start vertices. Reports XY rapid distance from origin; excludes Z travel and machine time. Keeps the original route if the heuristic is worse. Does not rewrite arbitrary machine programs.

[ how they get built ]
STEP 01
Write the contract first

Declare expected API behavior in OpenAPI, then compare real responses with that contract. The tester surfaces response drift with concrete field-level evidence instead of relying on guesswork.

STEP 02
Test until it's boring

Each repository's GitHub Actions workflow runs pytest and Ruff on pushes to main and pull requests. The tests exercise behavior; the workflow reports regressions without claiming branch-protection rules it cannot verify.

STEP 03
Measure before you optimize

The profiler records CPU time, wall-clock time, and traced memory by function call. Those measurements help focus optimization on observed costs instead of guesses.

STEP 04
Review before shipping

The regex-based scanner flags code patterns worth reviewing, including query construction, markup handling, and secrets. A human checks the surrounding context before treating a match as a vulnerability.

04

Contact

[ get in touch ]

Let's talk about what you're building.

A question about one of these projects, an idea worth pressure-testing, or just to trade notes on backend tooling: my inbox is always open!

Get In Touch
Opens a draft in your email app.