Skip to content
ES

Santiago Santofimio

Software Developer

About me

I'm a web developer based in Colombia, working remotely: distance is no obstacle to taking your project wherever you are.

We coordinate over WhatsApp or video call, and you can follow your project's progress from day one. I'm available for freelance projects and to join a development team.

I've learned at university, through online courses and, above all, by building my own projects from start to finish. I work across frontend and backend: from an interface in React or Astro to a Java API with Spring Boot.

I care about what I build working for everyone: fast to load, usable with a keyboard and easy to read on any screen.

How I learned

  • University

    The formal foundation.

  • Online courses

    To pick up new tools quickly.

  • Personal projects

    Where I learn the most: by building.

  • Breach Room

    A web cybersecurity escape room. The player is locked inside the internal network of Kryptelia Systems, a fictional company, and escapes department by department by exploiting a real vulnerability in each one. It takes about 10 minutes to play, on a phone too, and without DevTools.

    • After each room, a debrief explains the flaw with the vulnerable and the fixed Java side by side, its OWASP Top 10 category and how to catch it in a real system.
    • Safe by design: the vulnerabilities are real in their logic, but they only operate on simulated resources. Nothing the player types starts a process, touches a file or makes an outgoing request.
    • Tests prove the SQL injection can't read files, define functions or change data, plus 44 Playwright browser tests, including a full playthrough.
    • Java 21
    • Spring Boot
    • H2
    • JUnit 5
    • React
    • TypeScript
    • Docker

    The first visit can take up to a minute while the free server wakes up. The game turns that wait into part of the story.

  • Luka Wallet

    A personal finance app for iPhone that works offline and without a server: every record stays on the phone. It installs from Safari like any other app.

    • Income, expenses, monthly budgets per category and a daily spending chart.
    • Encrypted backups with AES-GCM and PBKDF2, using only the Web Crypto API.
    • Built to feel native on iOS: draggable sheets, its own numeric keypad and dark mode.
    • React
    • TypeScript
    • Vite
    • Vitest
    • PWA
    • IndexedDB
  • URL Shortener

    A URL shortener with click stats, custom aliases and expiring links. The interface is a split-flap departures board.

    • A Spring Boot REST API that redirects with a 302 and answers 410 once a link expires.
    • Every destination is validated: dangerous schemes, internal networks and disguised IP addresses are blocked.
    • Per-IP rate limiting, random codes from SecureRandom and deletion protected by a token.
    • Java 25
    • Spring Boot
    • JPA / Hibernate
    • React
    • TypeScript

    The demo runs without a server: the API is ported to the browser with the same rules, and links only work in the browser that creates them.

  • SortingVisualizer

    Algorithm

    A miniature version built for this page. In the real project, a Spring Boot API computes the steps.

    A sorting algorithm visualizer. A Spring Boot API computes every step of Bubble, Insertion, Selection, Merge and Quick Sort, and the browser animates them bar by bar.

    • Java 21
    • Spring Boot
    • Maven
    • JavaScript
  • This site

    Built with Astro, with React only where there's real interaction. Its own CSS design system, contrast checked by a script and animations without libraries.

    Current theme contrast, measured live

    Text on background
    Muted text on background
    Primary button
    • Astro
    • React
    • TypeScript
    • Tailwind CSS

Tech stack

The ones I've used in my own projects, from the interface to the database.

  • Frontend

    Interface · components

    • HTML5
    • CSS3
    • JavaScript
    • TypeScript
    • React
    • Angular
    • Astro
    • Tailwind CSS
    • Vite
  • Backend

    APIs · services

    • Java
    • Spring Boot
    • Maven
    • JPA & Hibernate
    • JUnit
    • Python
    • Lua & Luau
  • Data & DevOps

    Persistence · infra

    • PostgreSQL
    • Docker
    • Git
    • GitHub
    • Cloudflare Pages
    • Netlify

How I work

Four habits you can see in the code of this very site.

  1. Mobile first

    I design from 360 px up. This site never scrolls sideways, at any width.

  2. Accessible from the start

    Semantic HTML, full keyboard navigation and every color checked with a contrast script.

  3. Fast by default

    Static HTML, self-hosted fonts and JavaScript only for what moves or responds.

  4. A history that reads well

    Small commits, each with a single purpose.

Let's talk.

If you have a role or a project where I can contribute, write to me. I reply within one to three hours during the day, Colombia time (UTC-5).

Email me