GabrielSignorini

Full Stack Engineer

I build web software, front end first, and I write games for fun.

I work in TypeScript across React, Next.js, Node.js and PostgreSQL, remotely from Cascavel, Brazil.

Work

A 3D engine that draws in text.

CP437-Engine renders scenes with coloured light, shadows and traced reflections, using only text characters. There is no rendering library: projection, clipping, the z-buffer and analytic ray tracing are all written by hand, and the last pass runs on the GPU with WebGPU and a CRT effect. It began as synth-ascii-wallpaper, an outrun wallpaper drawn entirely in ASCII.

A toolkit for everyday TypeScript.

import { clamp, coalesce, Random } from "@gabreusi/hyrax";clamp(120, 0, 100); // 100coalesce(null, undefined, 0); // 0const dm = new Random("hailtotheking");dm.roll("1d20+5"); // attack: same every rundm.roll("4d6kh3"); // ability score: best 3 of 4
@gabreusi/hyrax
Anywhere: numbers, strings and Random, with no DOM and no React. About 4.6 kB compressed
@gabreusi/hyrax/dom
Browsers: listeners, clicks outside, CSS values. About 1.1 kB
@gabreusi/hyrax/react
Hooks, Portal and hx for React 18 and 19. About 1.5 kB

Hyrax is a general-purpose TypeScript toolkit with zero runtime dependencies. The core covers the small helpers most projects end up needing: number helpers like clamp and lerp, case conversion, a StringBuilder, null handling, and a seeded random generator that rolls tabletop dice, forks and saves its state, with output that is part of the public contract. DOM utilities and React hooks and components get their own entrypoints, so importing the core never touches the DOM. A CI check enforces that: it compiles a fixture that uses window and document against the core config and fails the build if that ever succeeds.

It has its own documentation site: a guide for each entrypoint, the API reference generated from the source, and examples that run the library live in the page. Every example is a test. The build type-checks them against the built package and runs the ones for the core, so an answer that goes stale fails it.

Personal project · 1.0.0-rc.0 · all three entrypoints are built · not on npm yet

Smaller projects

  • NEJS

    Experiment in drawing an NES-style platformer in plain JavaScript on a canvas, with a sprite editor and debug view.

    JavaScript / pushed 20 Sep 2026

    SourceLive

  • vod-metadata

    Look up the metadata of a Twitch VOD from its URL. React front end for vod-metadata-api.

    CSS / pushed 20 Sep 2026

    SourceLive

  • vod-metadata-api

    Small Express API that fetches Twitch video data, keeping the Twitch credentials on the server.

    TypeScript / pushed 20 Sep 2026

    Source

  • ProficiencySurge

    Vintage Story mod where skills level up through use. Only the shovel so far.

    C# / pushed 20 Sep 2026

    Source

  • 100prisoners

    Simulation of the 100 prisoners problem in TypeScript, using the loop-following strategy.

    TypeScript / pushed 20 Sep 2026

    Source

Every repository is on GitHub.

All repositories

Background

Front-end Engineer

Maker · Oct 2023 to Jan 2026

Co-owned the internal framework behind the seven modules of ConecteMe, a retail integration platform. Most of two years went into rendering performance and state handling.

Independent Developer

Jan 2026 to present

Built and run an online store for a family retail business, front to back, sized to what a small business can pay.

Download CV (PDF)

What I work with

Languages
TypeScript / JavaScript / SQL
TypeScript from the framework layer to the API.
Front-end
React / Next.js / Tailwind CSS / Internal design system and framework work
Two years of it inside a framework that seven modules share.
Testing
Jest
Unit tests for the functions I wrote at Maker.
Back-end and data
Node.js / Express / PostgreSQL / Prisma / Redis / REST APIs
Infrastructure
Vercel / Fly.io / Cloudflare / Docker / Git
Where the online store runs, front to back.

Latest

  1. Post

    Hello World!

    After three years working as a developer, I decided to open a personal space to share my work and my projects. Here I can also talk about myself, my hobbies and my thoughts. I am very happy with this new project, and I hope you like it too!

    1 min read / meta / personal

  2. 5 photos

    Pixel art I made for a commission! That's how I discovered that painting dolphins is very hard....

A role, a team, or an idea?

Write to me about any of them. I answer from Cascavel, in Brazil.

Remote, contractor based in Brazil.
Cascavel, Paraná (UTC-3), overlapping with US business hours.

Tell me about the role, the team, or the idea.

Your details are used only to reply to you. They are not shared.