Skip to content
CV
On this page

Curriculum vitae of Seyed Mohammad Mahdi Hosseini, software engineer in Milan: skills, personal projects, hobbies and interests, education at the universities of Genoa and Tabriz, work experience, languages, and contact details.

#CV

Profile picture

Seyed Mohammad Mahdi Hosseini

Software engineerMilan, Italyi@smmh.itgithub.com/smm-h

My name is Mahdi, and I am a 28 y/o software developer with a master's in Computer Engineering from UniGe. I was born in Iran and when I was 11 I taught myself programming. Now, I am passionate about writing readable and modular code to create scalable software.

#Skills

  • Languages: Kotlin, Java, Python, TypeScript, JavaScript, GML
  • Frameworks & libraries: Spring, Django, Flask, Express.js
  • DevOps, CI/CD: GitHub Actions, GitLab CI
  • Virtualization: Docker, Ansible, Vagrant, Docker Swarm, Firecracker
  • Cloud: AWS (EC2, S3, Lambda), GCP
  • Databases: PostgreSQL, MongoDB, Redis
  • Other: Git, Gradle, Linux Debian, Markdown, YAML, HTTP, REST APIs, JTest, Agile methodologies

#Projects

#Mathpad

  • Mathematical framework for rendering equations, plotting, and solving problems

#Neurarium

  • Neural networks from scratch
  • Technologies used: Kotlin

#Mage

  • Cross-platform game engine
  • Technologies used: Kotlin

#Nitron

  • DBMS
  • Technologies used: Python

#NiLeX

  • Lexer generator
  • Technologies used: Python

#Kotson

  • JSON library
  • Technologies used: Kotlin

#Telegram bot engine

  • Technologies used: Kotlin

#Markdown to HTML converter

  • Technologies used: Kotlin

#Hobbies & interests

#Programming language design

Languages with paradigms such as meta-, homoiconic, visual, and literate programming; also a DSL from which one can generate a programming language, its compiler, and its LSP.

#Developing interactive mathematics software

As an example, Jile is a collection of formalizations of interrelated mathematical subjects such as set theory, abstract algebra, and analytical geometry, written purely in Java and with no dependencies. It was a predecessor to Squiggle which is a similar project written entirely in Kotlin, featuring a cross-platform GUI.

#Game development

I enjoy developing small and indie games that feature multiplayer, turn-based strategy, puzzle, and procedurally generated themes. I also like to develop effective yet efficient AI adversaries for them using various algorithms such as A* and minimax.

#Developing methods for data visualization

I like creating tools that can generate high-quality still as well as animated imagery from datasets.

#Artificial Intelligence

I like playing around with different ways to make AI models from scratch, including both neural-network-based ones, and otherwise.

#Swimming trips

During my two years of living in Genoa, my favorite pastime was planning trips to golden sandy beaches to swim in and have focaccia genovese by the Ligurian Sea.

#Bullet Chess

I used to enjoy playing bullet chess which is when each player has only exactly one minute to play (in total, not each turn!). I had to give it up because my Elo on lichess stabilized around 1800 and it was no longer enjoyable.

#Education

#M.Sc. in Computer Engineering

#B.Sc. in Computer Engineering

  • Year: 2016 – 2021
  • Institute: University of Tabriz
  • Location: Tabriz, Iran
  • Focus: Hardware Engineering
  • Thesis: NiLeX: a Nilic lexer generator

#Work experience

#Full-stack product engineer

  • Period: 2025
  • Company: Stealth Startup
  • Location: Milan, Italy

Worked alongside a wonderful B2C team at an early stage fintech startup, on their products involving backend, front-end, and database tasks, where I learned to ship incrementally and quickly, and had to develop internal tooling to help with testing (unit, E2E) to validate business logic and keep the products robust. I also learned to shift my focus from code perfection to driving user impact.

#Geo-location operations leader

  • Period: 2021
  • Company: VatanZarin
  • Location: Tabriz, Iran

Led a 7-person team responsible for traversing the entire city of Tabriz, interviewing every shop-owner, big and small, and making detailed documents of their businesses; I utilized the now discontinued Google My Maps to partition the city into nearly a hundred areas and assigned each one to a team member, including myself.

#Freelancing and tutoring

  • Period: 2019 – 2021
  • Company: Self-employed
  • Location: Iran

With the pandemic having reshaped education and some jobs, opportunities for remote work were created. Being a member of the Freelancer community on Telegram, I seized many such opportunities, and cultivated a sizable client-base that comprised almost entirely of computer engineering/science students from all over Iran, and worked exclusively from home, albeit with hectic hours and unpredictable pay.

#Tutoring high-school mathematics

  • Period: 2016
  • Company: Self-employed
  • Location: Tabriz, Iran

#Languages

#Contact information

Write me at i@smmh.it, follow me on GitHub, or check out my activity on StackOverflow.

Last updated on December 21st, 2025

More tools from this site

  • claudestream Drive Claude Code from Python: run it as a subprocess and read its output as typed events, with async and sync sessions, sandbox policies, and tools you define in Python
  • claudewheel A TUI Claude Code Launcher that lets you have more than one profile, manage sessions lifecycle, pick the exact CC version, model to use (even older unlisted ones), pick which GitHub account to use, etc.
  • dirstat Fast, single-binary directory statistics CLI: every file under a tree grouped by format, with counts, sizes, and lines of code, as a colored terminal table or as JSON
  • fastware A batteries-included ASGI framework: msgspec JSON, a managed Granian server, dependency injection, SSE, WebSockets, auth, and a test client
  • go-toml-edit Zero-dep TOML editing library for Go with comment preservation
  • howmuchleft The fastest Claude Code statusline: context window, 5-hour, and weekly limit usage as three customizable gradient bars, rendering in about 6 ms
  • orxtra
  • pgdesign
  • predraw Declarative rendering pipeline: describe a scene in JSON and get SVG, PNG and WebP out, with light and dark style tokens, reusable components and text converted to path outlines
  • reposummary Turn a git repository's history into a Markdown journal: pick a time window or revision range and get a readable digest of what changed, optionally narrated by an LLM
  • rlsbl Release orchestration and project scaffolding CLI that bumps versions, validates a structured JSONL changelog, tags only the commit CI verified, and publishes to npm, PyPI, Go and more
  • safegit git wrapper CLI that gives each commit its own temporary index and retries ref updates on conflict, so concurrent agents share one repository
  • saferm Command-line replacement for rm that archives every deletion with a mandatory reason and the context it ran in, so deleted files can be listed, inspected and restored
  • selfdoc Static Site Generator that builds a project's documentation site directly from its source code, so the docs can never drift from the code they describe, with SEO/AEO, first-class blog, search, and cross-project linking built in
  • strictcli
  • stricttest An always-on test-isolation floor: a pytest plugin and a Go env-hygiene module that make a test suite structurally unable to reach real credentials, the real HOME, the network, or the development repository.
  • wesktop A Python framework that turns an ASGI web app into a desktop application, serving it from a local Granian server and displaying it in a native OS window via pywebview
Search