Skip to content
View jonathanperis's full-sized avatar
😎
Working from a galaxy far far away
😎
Working from a galaxy far far away

Highlights

  • Pro

Block or report jonathanperis

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jonathanperis/README.md
> "A Vinganca nunca e plena, mata a alma e a envenena." - Seu Madruga
varjonathan=newDeveloper{Location="Itanhaem, SP, Brazil",Company="Peris Studio",Focus=new[]{"Microservices","Clean Architecture","Performance Engineering"},Languages=new[]{"C#","Go","Rust","Python","TypeScript","C"},Hobbies=new[]{"Game Dev","Load Testing Everything","Proving .NET Is Fast"}};

$ whoami

Software engineer focused on backend systems, benchmarking, and low-level game work. I build services, measure them, and then rebuild them in other languages to compare the results.

I keep the stack centered on .NET, but I also use Go, Rust, Python, TypeScript/ReactLynx, and C/SDL2 for projects that fit those tools better.


$ ls ~/projects --sort=stars

cpnucleo★ 8
Production-grade .NET 9 microservices reference architecture
Clean ArchitectureCQRSDDDgRPCFastEndpointsBlazor WASMNative AOTDockerPostgreSQLOpenTelemetry

blazor-mudblazor-starter★ 1
Blazor Server starter template with MudBlazor, multi-arch Docker, AOT + trimming
MudBlazor 8.3.NET 9Azure deploymentCI/CD

speedy-bird-lynx
Cross-platform side scroller built with ReactLynx and TypeScript
ReactLynxTypeScript2D gamecross-platform

super-mango-editor
Classic 2D side-scrolling platformer in pure C + SDL2, playable in the browser via WebAssembly
32 render layersdelta-time physicsgamepad supportparallax scrollingEmscriptenpixel art

rinha2-back-end-dotnet★ 3
Rinha de Backend challenge -- ASP.NET 9, Native AOT, 60% less RAM than allowed
< 800ms responses250MB RAM ceilingPostgreSQL stored functionsNpgsql multiplexing

rinha2-back-end-go
Rinha de Backend implementation in Go, kept to a compact single-file service at ~190 lines
chi routerpgxsingle-filecompact

rinha2-back-end-python
Rinha de Backend implementation in Python for the same transaction workload
PythonHTTP APIdatabase-backedbenchmarking

rinha2-back-end-rust
Rinha de Backend implementation in Rust, ~140 lines and backed by Actix-web
Actix-webTokioSQLxsingle-file

rinha2-back-end-k6
Shared stress test suite for all Rinha implementations -- k6 + InfluxDB + Grafana dashboards
load testingHTML reportscustom xk6 binary

jonathanperis.github.io
Portfolio site with a dark terminal aesthetic, Konami code easter egg, and a fake terminal
Next.js 16React 19TypeScriptTailwind CSS v4portfolio


$ cat /proc/tech_stack

+-----------------------+--------------------------------------------------+
| Backend | .NET 9, ASP.NET, FastEndpoints, gRPC, EF Core, |
| | Dapper, Native AOT |
| Systems | Go (chi, pgx), Rust (Actix-web, Tokio, SQLx), |
| | C (SDL2, Emscripten/WASM) |
| Frontend | Blazor WASM, React 19, ReactLynx, Next.js 16, |
| | TypeScript, Tailwind CSS, MudBlazor |
| Infrastructure | Docker, Nginx, PostgreSQL, GitHub Actions |
| Observability | OpenTelemetry, Grafana, InfluxDB, k6 |
| Architecture | Clean Architecture, CQRS, DDD, Microservices |
+-----------------------+--------------------------------------------------+

$ cat benchmarks.md

The Rinha de Backend challenge: handle concurrent credit/debit transactions across 2 API instances behind Nginx, all within 550 MB total RAM with every response under 800 ms p99 — same workload across 5 implementations, same PostgreSQL stored procedures, same Nginx config, same k6 stress harness.

ImplLangFrameworkDB driverLOCCINotable
rinha2-back-end-dotnetC#ASP.NET 10 + FastEndpointsNpgsql multiplexing~200CINative AOT, 60% RAM headroom
rinha2-back-end-goGochipgx v5~190CISingle-file service
rinha2-back-end-rustRustActix-web + TokioSQLx~140CISmallest LOC
rinha2-back-end-pythonPythonFastAPI / asyncpgasyncpg~150CISame API contract, compact
rinha2-back-end-k6JS (k6)xk6 + GrafanaCIShared stress harness

All four service repos share a Reusable — Deploy docs to GitHub Pages workflow defined in jonathanperis/.github — every consumer's deploy job is ~10 lines of YAML.


$ neofetch

 jonathan@peris-studio
----------------------
OS: macOS / Linux / Docker
Shell: zsh + dotfiles
Editor: VS Code + JetBrains
Uptime: coding since 2015
Repos: 13 active, 0 abandoned
Packages: NuGet, npm, Cargo, pip
Theme: Dark Terminal Aesthetic
Contact: jperis.silva@gmail.com
Portfolio: https://jonathanperis.github.io/
Twitter: @jperis_silva

Live demo → | Documentation →


github-snake

hint: visit jonathanperis.github.io and try the Konami code

Pinned Loading

  1. cpnucleocpnucleoPublic

    Production-grade .NET 10 microservices reference architecture — Clean Architecture, CQRS, DDD, Docker, and full test coverage

    C# 7 8

  2. super-mango-editorsuper-mango-editorPublic

    Classic 2D side-scrolling platformer built with C and SDL2 — playable in the browser via WebAssembly

    C 1

  3. rinha2-back-end-dotnetrinha2-back-end-dotnetPublic

    High-performance backend for the Rinha de Backend challenge — built with ASP.NET 9, PostgreSQL, Nginx, Native AOT, and Docker

    HTML 3 1

  4. rinha2-back-end-gorinha2-back-end-goPublic

    High-performance backend for the Rinha de Backend challenge — built with Go, PostgreSQL, Nginx, and Docker

    PLpgSQL 1

  5. blazor-mudblazor-starterblazor-mudblazor-starterPublic

    Blazor Server starter template with MudBlazor Material Design components, .NET 9, Docker, and Azure deployment

    HTML 2

  6. speedy-bird-lynxspeedy-bird-lynxPublic

    Speedy Bird — a Flappy Bird clone built with Lynx (ReactLynx + TypeScript). Cross-platform native UI for iOS, Android, and Web from a single codebase.

    TypeScript 1