NG
← Home

Projects

IN PRODUCTION

Caramelito

Free platform to help stray animals and connect the people who can help.

The problem

Animals living on the street need someone nearby to find out and be able to help. Caramelito connects each report with people nearby and adds pet health history, vaccines, reminders and search for nearby vets. It is free for users.

My role

My main technical responsibility is the backend, built in Go with Gin: designing the PostgreSQL database and the RabbitMQ schema, configuring Cloudflare R2 buckets and the production environment on a Linux VPS with Nginx and Docker, plus the domain setup and Authenticated Origin Pulls in Cloudflare.

Project in progress.

Caramelito landing page
Caramelito app

Technologies

  • Go
  • Gin
  • PostgreSQL
  • RabbitMQ
  • Cloudflare R2
  • Docker
  • Nginx
  • Linux
IN DEVELOPMENT

NeatStorage

Local storage focused on privacy and security, meant to run on a NAS, a home server or a mini PC.

The goal is a Go service that stores files locally, separated per user and encrypted.

Project in development: it is not a finished or production-ready product. It has no public repository yet.

  • Go
  • ChaCha20-Poly1305
  • Linux

Work in progress

  • Backend services in Go.
  • File handling through streaming.
  • Storage layout organized by user identifier.
  • File writing and directory handling on Linux.
  • Block-encrypted storage format with ChaCha20-⁠Poly1305.
  • Metadata management and read/write error handling.

Under exploration

  • Key model: one encryption key per file (DEK) protected by a key-encryption key (KEK).

How a file travels

  1. File stream Streamed reads
  2. Blocks Block-based format
  3. ChaCha20-⁠Poly1305 Authenticated encryption
  4. Disk Local storage
KEK DEK per file

Each file's DEK would be protected by the KEK. Under exploration.

PUBLIC REPO

NextWeight API

Backend of an exercise routine recommendation system.

From query to recommendation

  1. Query Muscle, difficulty, intensity
  2. Vector The query is vectorized
  3. Cosine similarity Against the in-memory exercises (hash map)
  4. Recommendation Exercises ranked by similarity

How it recommends

It recommends exercises by muscle, difficulty and intensity. It vectorizes exercises and queries, computes the cosine similarity between them and generates the recommendations. On startup it loads the data into memory with a hash map for faster access.

View repository on GitHub (opens in a new tab)

Technologies

  • Go
  • PostgreSQL
  • REST API
  • Docker
  • Nginx
enes