Software Architect · Senior Developer

Ehsan Enaloo

I design and build reliable software for businesses and organizations, with a focus on clear architecture and long-term maintainability. In my spare time, I create free apps and practical tools that make everyday tasks easier.

20+ years in software · Ontario, Canada

A demo of WebSocket messages between you and enaloo.com. Each message is encrypted, and the panel shows its plain text.

About

ehsan@enaloo:~$ whoami

Ehsan Enaloo, software architect

ehsan@enaloo:~$ cat about.txt

I am a software architect and senior developer. For more than twenty years I have designed and built business systems: accounting, ticketing, CRM, licensing and workflow software, many of them still in daily use. I have also led development teams of 5 to 20 people.

I start with the design. Requirements, boundaries and trade-offs come first, and the code follows. I still write the core of every system myself, because good architectural decisions come from staying close to the code.

I choose technology to fit the problem, not the other way around. My work spans VB6, Delphi, C#, C++, TypeScript, PHP, Python and more, always with an eye on security, performance and the real limits of the team and the budget.

I have watched many tools come and go. I stay curious, and I stay careful.

ehsan@enaloo:~$ ls principles/

architecture/ correct-code/ easy-maintenance/

ehsan@enaloo:~$ uptime

up 20+ years, building software that people depend on every day

ehsan@enaloo:~$

How I work

  1. Design first

    Every large project starts with a written design: the requirements, the boundaries of the system and the trade-offs. Implementation follows it closely.

  2. I write the core

    I lead the architecture and write the core components myself. Staying close to the code keeps my decisions practical and my designs honest about what is hard.

  3. AI with review

    I use AI tools to move faster, under clear direction. Each task is scoped, each result is reviewed, and the responsibility for every decision stays with me.

  4. Tests decide

    Nothing is merged until automated tests and code review have passed, and the depth of checking matches the risk. I answer for every line.

Experience

  1. Independent Product Development

    2025 to nowCurrentSoftware Architect

    I am designing and building a new product from the ground up with C#, .NET, PostgreSQL, TypeScript and React. I own the architecture, the core code and the review process. The work includes moving its REST API to a custom binary WebSocket protocol, and a Python tool in which AI agents (planner, coder, manager and reviewer) work together, with every code change verified by a fresh test run.

  2. Invorg

    2023Senior Full Stack Software Developer

    I rebuilt a municipal management system with GIS and document management, moving it from VB6 to C#, Blazor Server and SQL Server. A new data access layer that I wrote made database queries 45% faster.

  3. TSI Complex

    2006 to 2025Lead Software Architect, later Technical Advisor

    For almost twenty years I led architecture and development here, guiding teams of 5 to 20 developers. We delivered accounting, ticketing, CRM, licensing and workflow systems, and many of them are still in use today. In my final years I stayed on as a part-time advisor and introduced the team to AI-assisted development.

  4. Erfan Computer

    2002 to 2006Programmer and Software Developer

    I built client software with VB6, Delphi and Microsoft Access.

Selected work

Business systems from my years at TSI Complex. Many of them are still in use today.

Business system

Accounting software

More than 500 customers.

Product

CRM

Used by more than 400 companies and factories.

Transport

Bus ticket system

Runs in more than 50 terminals. It moved from FoxPro to VB6 and then to .NET.

  • Business license system

    For a provincial guild organization with about 300 associations.

    Public sector
  • Fuel transport system

    Dispatch, accounting and fuel quotas in one system.

    Logistics
  • Office workflow

    Letters, approvals and daily office work in one place.

    Office

Browser extensions

open source

Libraries and tools

open source

Research

Beyond client work, I spend my time on two things.

The first is independent research into end-to-end encryption, post-quantum cryptography and fast binary communication over WebSocket. I build working code to understand each topic, test it, and write about what I learn.

The second is my own older work. I am updating many of the products I wrote in the past, including my PHP libraries, and publishing them on GitHub under the MIT license.

  • End-to-end encryption E2EE
  • Post-quantum cryptography PQC
  • Fast binary communication over WebSocket WS
  • C#
  • .NET
  • PostgreSQL
  • SQL Server
  • TypeScript
  • React
  • Blazor
  • Python
  • PHP
  • WordPress
  • Azure
  • Docker
  • n8n

Writing

Notes on code that I ran and checked, about PHP, JavaScript and post-quantum cryptography.

  • A small runner game on a canvas, with no library

    JavaScript

    A jump, a few obstacles and a best score are enough for a game. This post shows how I built one for this site in plain JavaScript, with the numbers behind it.

    9 minute read

  • TOTP in PHP without a library

    PHP

    Authenticator apps use a small standard, TOTP. A few lines of PHP can make and check the codes, and the RFC test values show that they are right.

    6 minute read

All posts

GitHub activity

github.com/ehsanenaloo (opens in a new tab)

Let's talk.

If you have a software architecture question, a development role or a technical project in mind, I would like to hear about it. LinkedIn is the quickest way to reach me, and the form below works too. I reply by email.

Take a break

Press Space or tap to run. Up or Space jumps, press again in the air to jump twice, Down ducks.

About this game

A small runner game made for this site. Jump over the bugs and duck under the packets. The longer you run, the faster it goes.

Space or the up key jumps, and a second press in the air jumps again. The down key ducks. On a phone, tap the game (twice for a double jump) or use the two buttons. The first button changes the look between pixel and modern.

The pictures and the sounds are made in code. Nothing is sent anywhere. Your best score and your choice of look stay in this browser.

© 2026 Ehsan Enaloo