Applying for CS admission — Winter Semester 2027, Germany

I build systems software
and I’m headed to Germany to study it properly.

Experimental Sciences graduate with a 20.0/20.0 average, now writing Python and Rust tooling while I prepare for computer science admission at TUM, RWTH Aachen and KIT. Everything below is verifiable.

Dubai, UAE — open to relocation EN C1–C2 · DE B2 · FA native

Portrait of Mohammad Haj Najafi
20.0/20 Diploma average
≈ 1.0 German equivalent
B2 German (CEFR)
7 Certifications

About

Short version

I finished my Experimental Sciences diploma with a 20.0/20.0 average and immediately went looking for the part of science that lets you build things. That turned out to be systems programming. I now spend most of my time in a Linux terminal writing Python and learning Rust, because I want to understand machines at the level where the abstractions stop hiding things.

My goal is specific: a BSc in Computer Science at a German technical university — TUM, RWTH Aachen or KIT. I chose Germany deliberately, for the depth of its engineering tradition and the fact that its universities expect you to actually understand the mathematics. I’ve been learning German for that reason and currently sit at B2.

Outside of that I train calisthenics and play competitive volleyball. Both taught me the same thing programming did: you get good at something by doing the boring repetitions long after the novelty wears off.

Academics

Record & qualifications

Full CV →
2026

Experimental Sciences Diploma — Highest Honours

Secondary education, Iranian national curriculum

Final average 20.0 / 20.0, the maximum on the Iranian grading scale — approximately 1.0 on the German scale, subject to formal evaluation by anabin / uni-assist. Core coursework in mathematics, physics, chemistry and biology.

2025 – 2026

Standardised testing & language certification

SAT · IELTS Academic · Goethe-Institut track

SAT completed. IELTS Academic taken (C1–C2 range). German at B2, working toward the C1 level most German-taught CS programmes require.

English — C1–C2 German — B2 Persian — Native
Target

BSc Computer Science / Informatik

TU München · RWTH Aachen · KIT · TU Berlin

Applying for Winter Semester 2027 entry. Preparing through the Studienkolleg / TestAS route where required, and building the mathematics foundation those programmes assume from day one.

Certifications

Google Data Analytics Professional Google / Coursera · 2026
Comprehensive Git & GitHub Maktabkhooneh · 2026
Python Programming — Full Track Maktabkhooneh · 2024
Computer Networking Fundamentals Maktabkhooneh · 2025
Git & GitHub Fundamentals 365 Data Science · 2024
Information Security Essentials Maktabkhooneh · 2025

Skills

What I actually work in

See the code →

Languages

PythonPrimary · 3 yrs
Bash / ShellDaily driver
RustLearning · ownership & traits
HTML / CSS / JSThis site, hand-written
SQLJoins, aggregation

Data & ML

pandas / NumPyCleaning, aggregation
MatplotlibExploratory plots
StatisticsGoogle Data Analytics
Neural networksCoursework level

Tools & systems

Linux CLIPrimary environment
Git & GitHubBranching, PR workflow
TCP/IP networkingCertified fundamentals
PowerShellWindows administration

Work

Shipped

All repositories →
Screenshot of the portfolio site interface

Live · Open source

Personal portfolio & CV system

Shipped
Problem Applications to four German universities each needed the same credentials in a different format, kept manually in sync.
Approach Built a static site from scratch — no framework, no build step — with a token-based CSS design system, a print stylesheet that renders the CV straight to PDF, and JSON-LD so the credentials are machine-readable.
Result ~380 KB total page weight (down from 8.4 MB), zero dependencies, WCAG AA contrast throughout, and one source of truth for every application.
Terminal output from the network toolkit

Python · CLI

Terminal Network Toolkit

Shipped
Problem Diagnosing a home network meant running four separate utilities and manually correlating their output.
Approach A single Python CLI that performs host discovery, port scanning and latency measurement concurrently, then prints one unified report. Built on the standard library plus asyncio for parallel probes.
Result Scans a /24 subnet in under 5 seconds versus roughly 90 seconds sequentially — an 18× speedup from moving to concurrent probes.

Directions

Concepts I want to build

None of these exist yet. They are the problems I want to spend a degree learning enough to attack properly.

Bio Twin

Concept

Continuous biometric monitoring from a single hand-contact sensor, so the gap between clinic visits stops being a blind spot. The interesting problem is signal quality: how much can you actually infer from palm-contact photoplethysmography before the noise floor wins? That is a signal-processing question I don’t yet have the mathematics for.

Signal processing Embedded Health tech

Moython

In progress

A Python and computer-science education channel aimed at learners in regions where good technical material in their own language is scarce. I learned most of what I know from free resources; this is the part I can pay back before I’m qualified to do anything else.

Education Python Community

Homa

Concept

Regional AI compute infrastructure for markets currently dependent on distant hyperscalers. The constraint that interests me is latency and data residency — where inference has to physically happen, and what that costs. Distributed-systems territory, which is exactly what I want to study.

Distributed systems Infrastructure

Beyond the screen

Personal

Competitive calisthenics and volleyball. I mention them because they are the same skill as programming under a different name: showing up for the unglamorous repetitions, and staying calm when a situation stops going to plan.

Calisthenics Volleyball

Contact

Get in touch

I reply to everything within 24 hours. If you’re an admissions officer, a professor, or someone with a project I could help on — write to me.

Goes straight to my inbox. No newsletter, no forwarding.