SOFTWARE ENGINEERING / CLASS OF 2027

The interface.
The engine.
The whole thing.

I’m Hajar. I build the part you interact with
and the systems that make it work.

Java · C++/CUDA · Python · PostgreSQL
Sichuan University, Chengdu · Graduating June 2027

A LITTLE UNDER THE SURFACE
01

Give people control. GridFlex’s React workspace turns battery settings and energy profiles into interactive charts and scenario comparisons.

Inside a real project: GridFlex
SELECTED WORK / 2026SCROLL TO LOOK CLOSER

Less telling.
More showing.

Five projects. Different problems.
Follow the interface down to the decisions.

01 / FULL-STACK & SCIENTIFIC COMPUTING

What if the grid
could bend?

GRIDFLEX

An energy simulation workspace for exploring what batteries and flexible demand can change.

React · TypeScript · FastAPI · NumPy
gridflex / energy systems laboratoryOpen case study ↗ Actual GridFlex workspace: energy metrics, residual-load chart and battery scenario controls The actual application. A Tétouan energy profile.

I built the workspace, API and numerical engine. The interface makes scenarios easy to compare; the backend bounds expensive computation and keeps the physics in one reusable engine.

31.9×

local pipeline speedup71.731 → 2.246 ms · 60-day profile

Recorded shift + battery benchmark, not whole-app latency. Identical numerical outputs in that case. Release 0.2.0: 91 Python tests and five browser journeys. Research simulation; free hosting may need time to wake.

02 / FULL-STACK APPLICATION

The right action.
The right access.

AEGIS CLAIMS

A claims workspace with document uploads, role-aware actions and a traceable status history. I built the React client and layered .NET API.

React · ASP.NET Core · PostgreSQL · JWT

Live workspace requires sign-in. Free hosting may need time to wake; demo uploads use temporary storage.

EXPLORE A DESIGN DECISIONINTERACTIVE SKETCH

Who gets to change a claim?

EXAMPLE CLAIMStatus update
Under review
React interfacePATCH /api/claims/{id}/statusAPI role check

Read the record. Keep the status.Adjusters cannot change claim status. The API enforces the same boundary as the interface.

A local illustration of the implemented role rule. No live request or claim is changed.

See the authorization rule ↗
File-signature validationStatus audit history22 backend tests, including PostgreSQL constraintsSecurity assessment ↗

03 / BACKEND & DATA SYSTEMS

Both updates.
Or neither.

NEOBANK API & ANALYTICS
ONE POSTGRESQL TRANSACTION
ACCOUNT A− debitACCOUNT B+ credit
COMMIT TOGETHER / ROLL BACK TOGETHER

A transfer API built for retries and concurrency. Matching idempotency keys are serialized; account locks are acquired in a consistent order. The 37-test suite includes real PostgreSQL concurrency and rollback checks.

FastAPI · PostgreSQL · SQL · Docker

Portfolio system with synthetic data. The separate analytics pipeline covers 891,772 synthetic transactions.

04 / PERFORMANCE ENGINEERING

A faster idea?
Measure it.

CUDA TRANSFORMER KERNELS

Matrix multiplication and Softmax experiments on an NVIDIA T4. One result I kept: warp-shuffle Softmax was slower than register caching for the tested workload. The measured winner stayed.

CUDA C++ · Nsight Compute · FP32

Open the benchmark explorer

Explore the GEMM results

Throughput in GFLOPS. Higher is better; all bars use the same scale.

Naïve CUDA385.648
Shared-memory tiled485.283
Register-tiled custom kernel1,278.508
cuBLAS library baseline5,322.721

3.32× the naïve kernel’s throughput; 24.0% of cuBLAS for 1024 × 1024.

Recorded measurements on NVIDIA T4, CUDA 12.8, FP32; median of 20 runs. This compares existing results and does not run CUDA on your device.

Methodology and complete results ↗
The code, including the experiments ↗

Recorded measurements, not a benchmark of your device. The optimized custom kernel is compared with cuBLAS as well as a naïve implementation.

05 / JAVA, ALGORITHMS & CORRECTNESS

Price first.
Time breaks the tie.

A Java 21 limit-order book with integer ticks, FIFO priority, cancellation and deterministic partial fills. Twenty tests include 60,000 generated commands compared with an independent reference model.

One writer owns the state. JMH measures bounded in-process batches with warm-up, separate JVM forks and allocation data. The measurements exclude network, queueing and persistence; this is an educational system.

Read the design, tests and measured results ↗

OUTSIDE THE PERSONAL REPOS

Built with
someone else.

MAR — APR
2026

Data & AI Engineering Intern

Chengdu Suncaper Data Co., Ltd / SkyQuery

I owned backend and data engineering in a two-person team: PySpark analysis, data preparation and a FastAPI query prototype. My teammate built the frontend and contributed analysis.

15Mdocumented flight records
in the analytics project
2contributors with
distinct responsibilities
My contribution, decisions and results ↗

The large-data analysis and the conversational query prototype are separate workflows. The dataset count does not describe the prototype’s SQLite database.

A LITTLE ABOUT ME

Curious across the stack.
Careful at the boundaries.

I’m completing my Software Engineering degree at Sichuan University, graduating in June 2027. My work moves between interfaces, APIs, relational data and performance experiments.

I’m looking for graduate backend or full-stack roles where I can contribute to a product and keep developing that range.

Based in Chengdu, China