Skip to content

// Senior Fullstack & AI Engineer_

Enterprise systems that stay up under real load.

I'm Cristian — a senior fullstack engineer. Over six years building event-driven microservices in .NET and the React and Angular interfaces on top of them, for travel, insurance and enterprise platforms serving 1M+ customers. I own the hard parts: caching layers, message pipelines, resilience, and the migrations nobody wants to run.

Cristian Ionas
Years shipping
6+
Enterprise platforms
4
Customers reached
1M+
Current stack
.NET · React
01

About

I build both halves. Most of my work lives in the layer nobody sees — the cache that decides whether search is fast, the queue that decides whether an order survives a bad deploy, the retry policy that decides whether a flaky third-party API takes the platform down with it. But I ship the surface too, and I would rather own a feature from the API contract through to what the user clicks than hand it over halfway.

In practice that has been .NET on the server with React or Angular in front of it, across three regulated-ish sectors — insurance, travel and license management — where being roughly right is not good enough. I have migrated a live document-signing workflow without downtime, moved a hot cache off SQL Server onto DynamoDB, and kept 160 supplier integrations behaving through a distributed semaphore and rate limiting.

On the frontend: most recently a greenfield React module for supplier configuration, and before that years of Angular with RxJS and NgRx on insurance and license platforms. The stack is a choice rather than an identity — the constant is systems that stay up. I work remotely across the EU.

Based in
European Union · Remote
Education
BSc Information Technology
Technical University of Moldova, Chisinau
2017 — 2021
Languages
English (advanced) · Romanian (native)
Also runs
Crisify
02

Skills in motion

A working toolkit shaped across enterprise .NET, distributed systems, cloud platforms and the data layers underneath them.

54

Tools & technologies

06

Engineering domains

6+

Years in practice

Current signal

What I actually reach for day to day right now.

  • .NET 10
  • C#
  • React
  • PostgreSQL
  • Redis
  • RabbitMQ
  • DynamoDB
  • AWS
  • Databricks
  • Docker
  • Terraform
  • ArgoCD

Working vocabulary

01

Core

The language and runtime everything else hangs off — plus the data access layers I reach for depending on how much control the query needs.

  • C# 14
  • .NET 8 / 9 / 10
  • .NET Framework
  • ASP.NET Core
  • Entity Framework
  • Dapper
  • LINQ
  • NHibernate
  • SqlKata
  • Swagger / OpenAPI
02

Distributed

Messaging, choreography and the patterns that keep services independent — where most of my work actually happens.

  • Kafka
  • RabbitMQ
  • MassTransit
  • MediatR
  • SNS / SQS
  • EventBridge
  • CQRS
  • DDD
  • Clean Architecture
  • Multi-Tenant
  • SignalR
03

Data

Relational, document and key-value stores, chosen for the read pattern rather than the habit.

  • PostgreSQL
  • SQL Server
  • DynamoDB
  • Redis / ElastiCache
  • MongoDB
  • MySQL / MariaDB
  • Aurora
04

Cloud & ops

Infrastructure, delivery and observability — the tooling that decides whether a release is routine or an event.

  • AWS
  • Azure Functions
  • Docker
  • Terraform
  • Kubernetes
  • ArgoCD
  • Helm
  • GitHub Actions
  • GitLab
  • DataDog
  • NewRelic
  • Azure DevOps
05

Frontend

Enough depth to own a feature end to end, from the API contract through to what the user clicks.

  • React.js
  • Angular
  • RxJS
  • NgRx
  • TypeScript
  • JavaScript
06

Testing

Unit and integration suites that make refactoring a normal activity instead of a risk.

  • xUnit
  • MSTest
  • NSubstitute
  • Moq
  • Shouldly
  • FluentAssertions
  • AutoFixture
  • TDD
03

Experience

  1. May 2025 — Oct 2026

    On the Beach — UK online travel

    Senior .NET / React Engineer

    Large UK travel booking platform for 1M+ customers in the UK and Europe, wanted to dominate the market and compete on hotel availability, pricing with 3rd-party supplier integrations across their search pipeline.

    • Drastically improved search response times for low-latency reads at high throughput from 3s to 200ms, by searching in the database for availability combinations based on a pre-computed hash table and by re-using precalculated combinations from hashes for day availability.
    • Scaled the Inventory Management System, by migrating the cache layer from SQL Server to DynamoDB, by consolidating all supplier data into a single source of truth for all downstream search systems.
    • Streamlined search availability from 160 suppliers, by improving the REST microservice performance, by migrating from an SQL Server to PostgreSQL to handle high-volume data using Amazon ElastiCache (Redis) and C# and .NET.
    • Eliminated availability gaps and stale cache data in the event-driven architecture by designing a Databricks and .NET microservice pipeline that auto-queries suppliers for fresh details for the primary cache for most popular searches.
    • Strengthened supplier integration stability by implementing a Redis-backed distributed semaphore with a token bucket, with slot limits under high load, and retry policies using Polly for resilience and rate limiting with Nginx.
    • Developed a greenfield module for a centralized supplier configuration system using React.js and .NET APIs.
    • Used AI-assisted development (Claude Code, Cursor) daily for implementation, refactoring and test generation, cutting delivery time on migrations by 30%, and built custom Claude Code skills, subagents and hooks for the team.

    C# 14 · .NET 10 · React.js · Databricks · RabbitMQ · New Relic · Docker · Redis · PostgreSQL · SQL Server · Dapper · LINQ · MassTransit · Scrutor · Polly · xUnit · Shouldly · NSubstitute · Amazon Aurora · Amazon DynamoDB · Amazon CloudWatch · Amazon ElastiCache · Terraform · ArgoCD · Claude Code · Cursor

    Read the full case→

  2. Apr 2023 — Mar 2025

    Asuro — German insurance

    Senior .NET / Angular Fullstack Developer

    A top German company in the insurance sector, wanted to scale and modernize their financial management platform for insurance brokers across Germany.

    • Successfully supported 44k insurance brokers from the DACH region, by integrating with the 100 insurance companies from Germany for contract signing using REST microservices and .NET 8.
    • Architected a greenfield application, by developing core transfer services applying choreography for life insurance, property insurance and pension schemes modules in .NET 8 and by integrating with the 3rd party, eDocBox for digital signatures.
    • Ensured the stability of the whole platform, by developing the backward compatible migration process which automated all the processes from document generation to digital contract signing to a new workflow using Angular, C# and .NET WebAPI.
    • Set up observability for performance monitoring purposes by interconnecting Datadog with Amazon SNS and Amazon SQS event processing, improving platform stability through Azure DevOps pipelines, deployment guidelines, and unit/integration tests using xUnit, FluentAssertions.

    C# 12 · .NET 8 · Angular · RabbitMQ · Datadog · Docker · PostgreSQL · SQL Server · Entity Framework · Dapper · MediatR · MassTransit · AutoMapper · FluentValidation · Polly · xUnit · NSubstitute · Amazon EventBridge · AWS Lambda · Amazon SNS · Amazon SQS · Amazon RDS · Azure Functions · Microservices · CQRS

    Read the full case→

  3. Feb 2022 — Mar 2023

    OpenLM — Enterprise software (IL)

    .NET / Angular Fullstack Developer

    An innovative company from Israel, supporting Fortune 500 companies, such as Tesla, Disney and BMW, wanted to extend its offering regarding software license management and how licenses are allocated for large companies.

    • Reduced license costs and developed a custom greenfield application for employee offboarding, by automatically de-provisioning licenses and by synchronizing Active Directory with AWS Secrets Manager and Kafka.
    • Successfully enabled vast organizational data transfers, by integrating with Google Cloud Directory Sync to import all the company organizational hierarchy structure using C# and Google Admin SDK Directory API.
    • Enhanced core functionality by designing and implementing a comprehensive notification system for email, ticketing, and push notifications using SignalR and integrating Google Firebase Cloud Messaging.

    C# 10 · .NET 6 · Angular · Kafka · SignalR · Firebase Cloud Messaging · Docker · Redis · SQL Server · MongoDB · MySQL · Entity Framework · MediatR · AutoMapper · FluentValidation · Quartz.NET · xUnit · NSubstitute · AutoFixture · Amazon DynamoDB · Amazon MSK · Azure DevOps · Microservices · CQRS

    Read the full case→

  4. Oct 2020 — Jan 2022

    OpenLM — Enterprise software (IL)

    .NET / Angular Fullstack Developer

    A major company from Israel, wanted to fulfill the needs for some of its large client base, by creating a custom on-point solution for software license management.

    • Designed an on-point solution for manual synchronization, by developing a tool which allowed user property details to be synced to different proprietary applications by using Amazon SNS and Amazon SQS.
    • Optimized costs related to license management, by developing modules to track and analyze cloud and SaaS services used including its licenses, extensions and features such as: Zoho CRM, Autodesk and Adobe product suite, providing detailed reporting and user management using C# and .NET Core.
    • Increased the robustness of the system, by developing complex modules to handle dynamic form generation in real-time from the back-end structures using C# and Angular.

    C# 8 · .NET Core 3.1 · Angular · Kafka · Docker · SQL Server · MongoDB · MySQL · Entity Framework · AutoMapper · FluentValidation · Hangfire · Puppeteer · xUnit · Moq · FluentAssertions · Amazon DynamoDB · Amazon MSK · Amazon SNS · Amazon SQS · Azure DevOps · Microservices

    Read the full case→

// Get in touch

Tell me what you are building.

Open to senior contract and full-time roles — remote across the EU.

No obligation · Response within 24 hours