Skip to content
SC
  • Go to Work
  • Go to Experience
  • Try the RAG demo
  • See live Core Web Vitals
  • Go to Projects
  • See photography
  • Go to Contact
  • Toggle light/dark theme
  • Cambiar a español
  • Copy email
  • Download CV (PDF)
  • Open GitHub
  • Open LinkedIn
ES

Chile · remote

Sebastián Andrés Cofré Parra

Software Engineer · Full Stack · Angular, React, Node.js, Applied AI

Electronic health records and multi-country credit scoring. I take requirements end to end: shape them with the Product Owner, build them and validate them before shipping. I bring AI into the development cycle — agents, reusable skills and Playwright tests — so the team ships faster without lowering the bar.

01What I build

Where my work runs

  • Healthcare

    Clínica Alemana de Santiago

    Electronic health records

    Clínica Alemana de Santiago · with NTT DATA

    Software clinical staff use during their shift. When a screen fails or confuses, the cost is not a ticket: it is patient time.

    • Angular
    • TypeScript
    • Node.js
    • Oracle
  • Banking

    Banco Interamericano de Desarrollo

    Multi-country credit scoring

    BID project · with NTT DATA

    Credit assessment front end running under different rules per country, with unit tests and static analysis in the pipeline.

    • Angular
    • TypeScript
    • Bootstrap
    • SonarQube
  • Applied AI

    LUXXOR

    RAG chatbot

    LUXXOR · web and WhatsApp

    An assistant that answers from the business's real documentation: I indexed the knowledge base with embeddings and retrieve context before every reply.

    • OpenAI API
    • ChromaDB
    • React
    • Node.js
2+
years building software
Education
Computer EngineerINACAP · graduated 2025
Certification
Azure Fundamentals (AZ-900)Microsoft Certified

What I work with

Frontend

  • Angular
  • React
  • Next.js
  • TypeScript
  • JavaScript
  • Tailwind CSS
  • Material-UI
  • Bootstrap 5

Backend

  • Node.js
  • Django
  • Python
  • PL/SQL

Data

  • Oracle 19c
  • PostgreSQL
  • ChromaDB

AI

  • OpenAI API
  • Claude Code
  • Cursor
  • RAG
  • Embeddings
  • Agents
  • Skills

Testing & quality

  • Playwright
  • Jest
  • SonarQube

Tools & methods

  • Git
  • GitLab
  • Bitbucket
  • Jenkins
  • ArgoCD
  • Jira
  • SCRUM
  • Kanban

02Track record

Experience

Rising Software Engineer (Full Stack)

Clínica Alemana de Santiago

Development & delivery

  • End to end: I take a requirement from the Product Owner all the way to production: design it, build it and validate it before shipping.
  • Standards: I take part in the project's technical decisions and wrote development standards the team uses today.
  • Mentoring: I run the technical onboarding for new joiners and led the team's adoption of AI workflows.

AI applied to development

  • Reusable skills: I designed agents, hooks and skills that automate repetitive work in the development lifecycle, with consistent results across developers.
  • Cost of context: I trimmed the unnecessary information sent to the models: fewer tokens per interaction for the same result.
  • Testing: I automated functional tests with Playwright and use AI to generate and maintain the scenarios.

03Running code

Interactive demos

Ask my CV

Local simulation of a RAG flow, like the one I built at LUXXOR: your question becomes a vector (TF-IDF), the closest fragments of my CV are retrieved, and the best one is returned. No external APIs.

Live Core Web Vitals

These metrics are measured in your browser, right now, with PerformanceObserver (the same data Chrome uses for its Core Web Vitals). Try the buttons and watch them change.

  • LCP

    —

    Measuring…

  • CLS

    0.000

    Good

  • INP

    —

    Interact with the page

  • FCP

    —

    Measuring…

  • TTFB

    —

    Measuring…

Largest Contentful Paint · Cumulative Layout Shift · Interaction to Next Paint
  • LCP: If it's red: prioritize the hero image (fetchpriority, preload), cut blocking JS and serve HTML from the server.
  • CLS: If it's red: reserve image width/height, use font-display and avoid inserting content above what's already visible.
  • INP: If it's red: break up long tasks, defer non-critical work and ship less JavaScript to the client.
  • FCP: Reduce render-blocking resources and use Server Components to send useful HTML right away.
  • TTFB: Cache on a CDN, use static routes and reduce server-side work.

Lab

Clicks: 0

This block stands in for content that is already visible. When a banner is inserted above it without reserved space, everything moves down: that is a layout shift, and CLS adds it up.

Lab values for this visit; in production they are measured from real-user data (CrUX / RUM) at the 75th percentile.

04Work

Projects

7 projects shown

This portfolio

react

Bilingual ES/EN Next.js 15 (App Router): Server Components by default and small client islands for the interactive parts.

  • Keyboard navigable, with visible focus and correct ARIA roles
  • i18n with /es and /en routes, middleware and per-language metadata
  • Light/dark theme with no flash; animations with only CSS + IntersectionObserver
  • Playwright e2e tests in both languages
  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind 4
  • Playwright

Live Core Web Vitals panel

react

Measures LCP, CLS, INP, FCP and TTFB of the page itself with PerformanceObserver, plus a lab to trigger CLS and INP on purpose.

  • CLS with session windows, as in the official definition
  • INP computed per interaction (high percentile)
  • Every metric explains how to fix it
  • React 19
  • PerformanceObserver
  • Event Timing
  • Layout Instability

RAG demo over my CV

react

A didactic, 100% in-browser version of the RAG flow I built at LUXXOR: retrieves by TF-IDF similarity and answers with the best fragment.

  • Shows the retrieved fragments with their score
  • Streaming answer that is screen-reader friendly
  • Pure, testable retrieval logic
  • React 19
  • TypeScript
  • TF-IDF
  • Cosine similarity

Design system in Storybook

react

Button, Badge, Tabs and ProjectCard documented with states, controls and automated accessibility checks.

  • Tabs following the WAI-ARIA pattern with arrow-key navigation
  • Color tokens with light/dark mode
  • a11y addon to catch contrast and semantics issues
  • Storybook 9
  • React 19
  • Tailwind 4
  • WAI-ARIA

50,000-row explorer (Angular)

angular

Hand-written virtualized table: only the visible rows exist in the DOM. Sorting, filtering, keyboard navigation and a sticky header.

  • Shows live how many nodes are actually in the DOM
  • role=grid with aria-rowcount and aria-rowindex over virtual rows
  • The windowing maths is pure and covered by tests
  • Angular 19
  • Signals
  • TypeScript
  • Jasmine

RxJS search (Angular)

angular

Debounce, cancellation of stale responses and retry with backoff, with a timeline showing which request was cancelled and why.

  • switchMap vs mergeMap: the race condition is shown, not explained
  • Latency inversely proportional to query length to force the case
  • Loading, empty and error states, with stale results flagged
  • Angular 19
  • RxJS
  • Signals
  • Jasmine

RAG demo (Angular)

angular

The same TF-IDF retrieval flow, built with Signals and forms in Angular.

  • Query and results state with signal() and computed()
  • Word-by-word answer streaming
  • Unit tests for the retrieval engine
  • Angular 19
  • Signals
  • TF-IDF
  • Jasmine

05Away from the keyboard

Photography and travel

When I close the editor, I pick up the camera. I love traveling and photographing what I find along the way, especially the small details that show up when you walk without hurry.

  • Photography
  • Travel
  • Nature
  • Shore of Lake Collico with smooth stones and still water reflecting the sky, hills in the background
    Lake Collico
  • Native forest on a slope with monkey puzzle trees, fallen trunks and moss, seen from below
    Native forest
  • Turquoise lagoon at the foot of a dark rocky hill with remnants of ice from the Pichillancahue Glacier
    Pichillancahue Glacier
  • White columbines in the foreground with green foliage and an overcast evening sky
    Columbines
  • Plum tree branches covered in white blossoms against a clear blue sky
    Plum tree in bloom

06Say hello

Contact

Open to new opportunities

Have a project or a role in mind?

I read every email and I answer. Tell me what you are building and let's see how I can help.

Email me

Give me a bit of context and I'll reply straight to your email.

Work model
Contract type
I only use your details to reply.
Download CV

Chile · remote