Web programming from back-end to front-end: HTTP, REST, Go, databases, JavaScript, and the systems behind the Internet.
Teaching
Courses I have taught, with slides, notes, assignments, and the code written in class, published openly under the1995parham-teachingorganization on GitHub.

Courses
Full courses with slides and notes, and where they exist, the assignments and exam questions that went with them.
A first course in information security: the properties we defend, cryptography, authentication, and secure systems.
First steps in programming, taught in C. Fourteen lectures plus sample code, based on Prof. Bakhshi's course at Amirkabir.
An introduction to Python: syntax, data structures, functions, modules, and the tooling around a real project.
Intermediate Python for people who already know the basics: functional programming, iterators, typing, and more.
A compact Go course, also used as the Go part of Internet Engineering. Slides and runnable examples.
An introduction to large language models by a non-AI developer: tokens, context, attention, prompting, tools, and agents.
Learn how to use Kubernetes: deployments, services, ingress, and kubectl, one hands-on step at a time.
An introduction to infrastructure as code with Terraform and friends.
Computer Networks
ArchivedCourse materials for computer networking, with socket programming hands-on sessions in Python.
Hands-on projects
Code written live in class or handed out as a reference: small, complete programs that show one idea end to end.
Backend implementation demonstration in Go with JWT, MongoDB, and the usual service plumbing.
A URL shortener in Go that demonstrates the key concepts of the language and of a small web service.
The RESTful server written during the Go course in live-coding sessions, one repository per term.
Object-relational mapping in Go with GORM.
A minimal SoundCloud, just for having fun with SQL databases from Go.
Read a log file and append its records to PostgreSQL.
React, Fiber, and an API, just for saying hello.
A simple, containerized Fruits API with FastAPI and SQLite.
A peer-to-peer network for file distribution over TCP and UDP.
dallal
ArchivedHow to write a message broker in Python over TCP.
The Git warm-up exercise used as the first Internet Engineering homework.
A review of some practices in using Argo CD.
Workshops and talks
Shorter sessions: a few hours on one topic.
Java in 4 hours
ArchivedA review of Java in a four-hour workshop.
C linked-list workshop
ArchivedA C programming workshop on linked lists and structures.
A review of Go with the Snapp! cloud team, fall 2022.
Internet of Things and IPv6
ArchivedA presentation on IoT over IPv6 for the AUT Linux Festival.
Interview stories told in code, to remember the awesome moments.
Course tooling
Shared pieces behind the courses.
The shared LaTeX look for course documents: assignments, exams, and projects.
harpocrates
ArchivedSend students their grades privately from a CSV file, in Python.