Tokyo skyline at night with neon-lit streets

Software Engineering

Backend Developer building systems, APIs and reliable software.

I build backend systems with TypeScript, Node.js and NestJS, combining clean architecture, business logic, APIs, databases and infrastructure to turn ideas into working software.

Open to opportunitiesCurrently learning · building · improving
Scroll

About

About Me

I'm a backend-focused developer interested in understanding how software works beyond the interface. My learning process is centered around programming logic, business rules, APIs, databases, architecture and infrastructure.

I enjoy taking an idea, breaking it into requirements, designing the system, implementing the backend, connecting the frontend and understanding the infrastructure required to make everything work together.

I build software by combining programming fundamentals, business logic, system architecture and practical engineering. I am continuously expanding my knowledge to evolve professionally and contribute to building reliable solutions and improving products.

Process

  1. Learn
  2. Design
  3. Build
  4. Test
  5. Improve

What I know

TypeScript, Node.js, NestJS, REST design, PostgreSQL and Prisma, layered architecture, Docker basics.

What I have built

A modular NestJS learning platform backend, its Next.js frontend, and a personal analytics dashboard.

What I'm learning

Deeper testing practices, observability, infrastructure, system design and distributed systems.

Philosophy

How I Think About Software

Five principles that shape how I approach a problem before, during and after writing code.
  • 01

    Understand the Problem

    Before coding, understand the requirements, constraints and business rules.

  • 02

    Design the System

    Think about architecture, modules, APIs, data and responsibilities.

  • 03

    Build with Structure

    Separate controllers, services, repositories, DTOs and infrastructure concerns.

  • 04

    Test and Debug

    Use testing, logs, API clients and debugging to verify assumptions.

  • 05

    Keep Improving

    Refactor, document, learn and improve the system continuously.

Selected work

Featured Projects

Three projects presented as technical case studies — the problem, the architecture, the engineering decisions and what each one taught me. Feature status is stated explicitly inside each case study.

01Learning Platform / Backend Engineering

Fluency OS

A full software ecosystem for Japanese language learning, combining spaced repetition, progress tracking, authentication, content management, immersion tracking and analytics.

BackendREST APINestJSTypeScriptPrismaPostgreSQLRedisDocker

flow

  • ┌─ Frontend
  • ├─ REST API
  • ├─ Controllers
  • ├─ Services
  • ├─ Repositories
  • ├─ Prisma
  • └─ PostgreSQL

+ 3 supporting services

02Learning Interface / Full-Stack

Fluency OS — Frontend

A modern learning interface built to consume the Fluency OS backend and provide a complete experience for study, review, analytics and content management.

FrontendNext.jsReactTypeScriptTailwind CSSshadcn/uiZustandFramer MotionVitest
View GitHub

flow

  • ┌─ Frontend
  • ├─ REST API
  • ├─ Backend
  • └─ Database

03Productivity / Analytics Dashboard

Weekly Metrics System

A personal dashboard designed to track weekly progress across programming, Japanese study, schedule and review activities.

ReactNext.jsTypeScriptRechartsZustandFramer Motion
View GitHub

flow

  • ┌─ Activity input
  • ├─ State layer
  • ├─ Aggregation
  • └─ Charts & insights

Stack

Technology Stack

Grouped by category and weighted honestly. My primary focus is TypeScript → Node.js → NestJS → PostgreSQL → Prisma; React, Next.js, Docker, Git and GitHub are supporting skills I use regularly.

Languages

  • TypeScriptPrimary focus

    Primary language — typed domain models and APIs.

  • JavaScriptPrimary focus

    Language fundamentals, async behavior, runtime model.

Backend

  • Node.jsPrimary focus

    Runtime for services, tooling and APIs.

  • NestJSPrimary focus

    Modular architecture, DI, layered structure.

  • REST APIsPrimary focus

    Contracts, validation, status codes, error shapes.

Database

  • PostgreSQLPrimary focus

    Relational modeling, relationships, queries.

  • PrismaPrimary focus

    Schema as source of truth, typed data access.

Frontend

  • ReactWorking knowledge

    Component composition and UI state.

  • Next.jsWorking knowledge

    Routing, rendering and app structure.

Infrastructure

  • DockerWorking knowledge

    Reproducible environments and services.

Development

  • Git & GitHubWorking knowledge

    Branching, history, code review workflow.

  • CLI / TerminalWorking knowledge

    Daily driver for builds, logs and debugging.

  • IDEsWorking knowledge

    Refactoring, navigation, debugging tools.

  • AI-assisted developmentTooling

    Used as a tool, not a substitute for understanding.

Scope

What I Build

The kinds of engineering problems I work with day to day.
  • APIs

    Design and implementation of REST APIs.

  • Business Logic

    Transforming requirements into software rules and workflows.

  • Architecture

    Organizing systems into maintainable modules and responsibilities.

  • Databases

    Data modeling, relationships, persistence and query organization.

  • Authentication

    Sessions, JWT, authorization and protected resources.

  • Infrastructure

    Docker, environments and application infrastructure.

  • Testing

    Unit tests, integration tests and validation of behavior.

  • Debugging

    Investigating errors, logs, requests, data and unexpected behavior.

Workstation

Engineering Toolkit

The tools I actually keep open while building and debugging.

erik@tokyo ~ toolkit

$terminal— daily driver — builds, logs, migrations

$git— branching, history, review workflow

$github— repositories, issues, collaboration

$postman— API requests, contracts, debugging

$docker— containers and local infrastructure

$vscode— refactoring, navigation, debugger

$ai-tools— assisted development, reviewed by hand

$database— psql, schema, queries, inspection

$rest— contracts, status codes, payload design

Growth

Always Building. Always Learning.

My goal is to keep expanding my understanding of software engineering — from programming fundamentals and backend architecture to databases, infrastructure, system design and distributed systems.

  1. 01Fundamentals
  2. 02Backend
  3. 03Architecture
  4. 04Infrastructure
  5. 05System Design

Continuous improvement

Cherry blossom branch lit by faint violet light at night

Repositories

Code is the proof.

Every project on this page is public. 3 selected repositories — open them and read the structure.

Direction

Where I'm Going

I want to continue evolving as a software engineer, deepen my backend expertise and contribute to products by building reliable systems, solving technical problems and continuously improving the way software is designed and delivered.

Contact

Let's build something useful.

I'm interested in opportunities where I can learn, contribute, solve technical problems and grow as a software engineer.

eriksantos0126@gmail.com