Skip to content
Available

Oliver Infantemeasures what gets built.

Software Engineer specialized in QA. I design test cases, run regression suites and chase defects down to their root cause — and anything that can be automated, I automate. I come from development, so I understand the code I'm testing.

Oliver Infante in a racing suit, holding his helmet in front of a Corvette on the circuit.
Santo Domingo, Dominican Republic
Role
QA Engineer
Location
Santo Domingo, Dominican Republic
Certification
ISTQB Foundation · in progress
Education
B.Sc. Software Engineering · INTEC

Cumulative tests · six suites run on October 7, 2026

0 failed · 4 skipped

05001,0001,5002,000Kepubli1,013La Infantería1,301Tara1,506Delta1,606botqa1,681Panel de control1,719
  1. Kepubli1,013
  2. La Infantería1,301
  3. Tara1,506
  4. Delta1,606
  5. botqa1,681
  6. Panel de control1,719
1,719
passed
0
failed
4
skipped, only run on Linux

Profile

I'm a Software Engineer, Magna Cum Laude from INTEC, and my work moves between two worlds that complement each other: development and quality assurance.

At Focused — a cross-platform support system for ADHD patients, psychologists and psychiatrists — I held both roles: I built the Flutter mobile app and was also responsible for QA. I wrote and ran the functional test cases, put together the regression suites for the patient and clinical staff modules, and tracked defects in Azure DevOps through to closure.

That double perspective is what I bring to a quality team: I can read a stack trace, I understand why a defect happens and not just that it happens, and I write reports a developer can act on without a round trip.

At La Infantería Motorsport I run the team's systems and web platform: a Next.js and Supabase site with an admin panel, backed by 288 automated tests. The suite I care most about is the security one, because it doesn't check that things work — it checks that the things that shouldn't work don't: that the public key cannot write to any table or upload files, and that the data is left intact after the attempt.

Outside formal work, my obsession is making technology work for me. I build bots and agents with language models to automate repetitive tasks, I run Franky, a home server self-hosting my own services, and I build my PCs with the same attention to detail I put into a test plan.

Right now I'm building Delta, a telemetry analysis platform for sim racing. It's the project where my two worlds meet completely: software that measures, compares and explains where a tenth of a second goes.

Portrait of Oliver Infante, QA Engineer.
Fig. 1Oliver Infante — QA Engineer, Santo Domingo.

Build sheet

People who build cars publish a list of what each one runs. This is mine: what I use daily, grouped by the job it does.

QA and Testing

The core of my day-to-day work.

  • Manual testing
  • Functional test cases
  • Regression testing
  • Automated E2E testing
  • pytest
  • Defect reporting and tracking
  • Root cause analysis
  • QA sign-off
Automation and AI

I build tools to avoid repeating work, including tests where a model grades the result.

  • Agentic systems
  • Anthropic API
  • Local models (Ollama)
  • LLM as a judge
  • Telegram bots
  • Process automation
Tracking and Management

Where the defect lifecycle lives.

  • Azure DevOps
  • Jira
  • Trello
Languages and Frameworks

The development that backs my technical judgment as a tester.

  • Python
  • FastAPI
  • C#
  • .NET
  • TypeScript
  • Next.js
  • Dart
  • Flutter
Databases

To validate data at the source, not only through the interface.

  • PostgreSQL
  • SQL Server
  • MySQL
  • SQLAlchemy
  • Redis
Infrastructure and Systems

I self-host and administer my own environments: hardware, network and services.

  • Docker / Compose
  • Linux (DietPi)
  • nginx
  • Celery
  • SSH
  • Tailscale
  • Git / GitHub

Two lanes, one method

A QA portfolio that only lists tools says nothing. This is what I produce: the process, and two real samples of my documentation.

In drag racing everything is decided in under eleven seconds, and every tenth comes from a number: reaction time, 60-foot, trap speed. You measure, you adjust the setup, you run again. You never guess. Testing software works exactly the same way — the difference is that on the track a defect costs you the race, and in production it costs you the user.

In software

Test case runI keep evidence of every step, so the report never depends on my memory.
Root cause of the defectReproducible steps and, where I can, the probable cause.
Fix and regressionA fix can break what already worked, so I check around it.
Next releaseWhat can be automated, I automate.

On the track

Run telemetryReaction time, 60-foot, trap speed.
Where the tenth was lostYou measure, you don't guess.
Setup and launch controlHP Tuners and bootmod3 on a 2018 Mustang and a BMW M4.
Next passData decides the next adjustment, not intuition.
1,719
automated testsAcross six repositories, run and green: pytest and vitest
5
simulators supportedCustom telemetry parsers
10
automated E2E scenariosConversational suite graded by an LLM
2+
years in QA and developmentSince February 2024

The cycle, step by step

  1. 01

    Analyze

    I read the requirement looking for what it doesn't say: what happens with empty data, with different permissions, with the connection down.

  2. 02

    Design

    I write the cases prioritized by risk. First the flows that, if they break, stop the user.

  3. 03

    Execute

    I run the suite leaving evidence of every step, so the report doesn't depend on my memory.

  4. 04

    Report

    I document the defect with reproducible steps and evidence. Where I can, I point at the likely cause.

  5. 05

    Verify

    I check the fix and run the regression around it: a repair can break what already worked.

Test case · TC-042Functional · Edge case

Assign a psychologist to a patient already assigned to another professional

Module

Patient management

Priority

High

Preconditions

  1. 01An active patient exists with a psychologist already assigned.
  2. 02The session is signed in with an administrative role holding assignment permission.

Steps

  1. 01Open the patient list and select one with an assigned professional.
  2. 02Go to “Assign professional”.
  3. 03Pick a psychologist different from the current one and confirm.

Expected result

The system warns that the patient already has an assigned professional and requires explicit confirmation before reassigning. The clinical history stays tied to the patient, not to the previous professional.

Actual result

The reassignment goes through with no warning, and the history stops showing on the patient's record.

FailedLed to DEF-118
Defect report · DEF-118Severity Critical

Clinical history disappears from the record when the psychologist is reassigned

Module

Patient management

Priority

High

Environment

Android 13 · build 1.4.2 · QA environment

Steps to reproduce

  1. 01Sign in as an administrator.
  2. 02Open a patient with a history of at least two recorded sessions.
  3. 03Reassign the patient to another psychologist and confirm.
  4. 04Return to the patient's record and open the history tab.

Expected

The history belongs to the patient and stays visible after the reassignment.

Actual

The tab comes up empty. The records are still in the database, but the query filters them by the current professional instead of by the patient.

Impact

The incoming professional treats the patient with no clinical background. In a mental health context that is risk to the patient, not an interface annoyance.

Attached evidence

Screen recording of the reproduction, a capture of the empty record, and a SQL query showing the rows are still there.

Experience

  1. Feb 2024 — Present

    Ongoing

    Junior Developer and IT Support

    Carga Fácil GHH

    • Developing and maintaining web applications with .NET and C#.
    • Leading the SEO structure and the design of the company website.
    • Providing IT support and resolving hardware and software incidents for internal teams.
    • .NET
    • C#
    • SEO
    • Web design
    • IT support
  2. Apr 2024 — Jan 2025

    QA Engineer and Mobile Developer

    Focused Project

    • Contributing to a cross-platform support system for ADHD patients, psychologists and psychiatrists (Flutter mobile + web).
    • Writing and executing functional test cases and regression suites for the patient and clinical staff modules.
    • Reporting and tracking defects end to end in Azure DevOps.
    • Taking part in sprint planning and in QA sign-off before each release.
    • Manual QA
    • Azure DevOps
    • Flutter
    • Regression
  3. Ongoing

    Ongoing

    Systems, Web and Brand Lead

    La Infantería Motorsport

    • Building and maintaining the team's web platform on Next.js and Supabase: public site plus an authenticated admin panel.
    • Backing the site with 288 automated vitest tests across three suites: unit, smoke against a running instance, and security.
    • Testing the permission model negatively: that the public key cannot write to any table or upload to Storage, and that the data is left intact after the attempt.
    • Administering the shop's systems and directing brand identity, online presence and results documentation.
    • Providing technical support for the setup of the shop's Mustang chassis.
    • Next.js
    • Supabase
    • vitest
    • Security testing
    • RLS
    • Brand

Cases

Work where I applied QA and development end to end.

Featured

botqa

Author — open source

End-to-end testing engine for WhatsApp customer-service bots. A local model talks to the bot posing as a real customer, and a second model then grades the conversation against a checklist. It started as a way to test the bot at the company I work for, and I released it as a generic tool.

75tests · open source

Show details and evidence
  • 01Testing a conversational bot by hand doesn't scale, and automating it with text assertions doesn't work either: the correct answer is never literally the same. The way out was to have one model play the customer and another the grader.
  • 02Scenarios are JSON files with a persona, a goal and a checklist, so adding a test case doesn't require touching code.
  • 03The business context is parameterized: the same engine works for a pizzeria, a clinic or a shop.
  • 04Everything runs on local models in Ollama, so no conversation ever leaves the machine.
  • 05It produces an HTML report per run with each criterion met or missed, its evidence, and the full transcript. It includes a load-testing mode with photos and voice notes.
A botqa report showing a test scenario with six graded criteria, three met and three missed, each with its evidence.
Fig. 3Report from a run against a sample business: the incomplete-data scenario exposes three real bot failures, each with the evidence behind it.
  • Node.js
  • Ollama
  • E2E Testing
  • LLM as a judge
  • WhatsApp
  • Open Source
View project ↗

In development

Delta

Developer — personal project

Telemetry analysis platform for sim racing: it turns a session's raw data into concrete answers about where time is lost and which setup change wins it back.

100tests · in development

Show details and evidence
  • 01FastAPI backend with PostgreSQL and asynchronous processing on Celery and Redis, all orchestrated with Docker Compose.
  • 02Custom parsers for telemetry and setup files, normalizing track names against an internal database.
  • 03Session analysis and lap-to-lap comparison, supported by the Anthropic API to interpret the results.
  • 04Next.js frontend with user accounts and separate roles for driver, engineer and administrator.
  • 05Backed by a suite of 100 automated pytest tests over the parsers and the analysis engine.
Telemetry traces of a lap in Delta: speed curve with throttle and brake channels along the circuit.
Fig. 4Traces of a lap at Suzuka: speed on top, throttle and brake below. Every late or early braking point shows at the same place on the track.
Telemetry report generated by Delta, with session data, best lap, circuit information and sector analysis.
Fig. 5Session report: car and track data, best lap, reference record, and the sector analysis that interprets the numbers.
  • FastAPI
  • PostgreSQL
  • Celery
  • Next.js
  • Docker
  • pytest
  • Telemetry
View project ↗

Featured

Focused

Mobile Developer and QA

ADHD support platform connecting patients, psychologists and psychiatrists in a single mobile and web experience. Final degree project.

Show details and evidence
  • 01Cross-platform system built with Flutter for mobile, with a web counterpart.
  • 02Writing functional test cases for the patient and clinical staff flows.
  • 03Running regression suites before each release, tracking defects in Azure DevOps.
  • 04Being also the developer of the mobile module, I closed the loop between finding a defect and understanding its root cause.
  • Flutter
  • Dart
  • Manual QA
  • Azure DevOps
  • Healthcare

In production

Kepubli

Author and maintainer

Multi-user Telegram bot running in production with real users. It automates the full e-ink reading pipeline: per-user series tracking, conversion to optimized KEPUB and direct delivery to the reader.

1,013tests · in production

Show details and evidence
  • 01Multi-user architecture: each person keeps their own library and their own notifications.
  • 02Conversion and image-optimization pipeline designed around the limits of electronic paper.
  • 03Deployed with Docker on Franky, my own server, and backed by 1013 automated pytest tests over the engine that downloads and converts.
  • 04It started from a personal problem and ended up a public product with its own landing page.
  • Python
  • Telegram Bot API
  • Docker
  • pytest
  • Automation
View project ↗

Featured

La Infantería Motorsport

Development, QA and administration

Web platform for the team and the shop: public site plus an authenticated admin panel on Next.js and Supabase. It's the project where my QA work shows best, because the permission model isn't documented — it's verified by tests.

288tests · RLS on 9 tables

Show details and evidence
  • 01Public site and admin panel separated by route, with authenticated access and the panel excluded from search engines.
  • 02Nine PostgreSQL tables with RLS enabled on all of them: the public key only reads what is published.
  • 03288 automated vitest tests across three suites: 206 unit, 33 smoke against a running instance, and 49 security.
  • 04An ISTQB audit of the site itself produced nine defects, fixed and closed with their regression tests.
  • 05The security suite tests negatively: that the public key cannot write to any table, cannot upload to or list Storage, and that the data is left intact after the attempt.
  • 06Content-Security-Policy with a nonce, asserted by a test instead of trusting it stays in place.
  • Next.js
  • Supabase
  • PostgreSQL
  • vitest
  • Security testing
  • RLS
  • CSP

In production

Franky

Author and administrator

My home server, running in production the services I use every day: the Kepubli bot, Home Assistant, a personal voice assistant and a web panel to administer it all. I treat it as a system with real users, even if the only user is me.

243tests · in production

Show details and evidence
  • 01A Dell OptiPlex running Debian, with five Docker containers and the remaining services under systemd. It is protected with fail2ban, and the admin panel is only reachable over Tailscale.
  • 02Tara, a personal assistant on Hermes: reminders by time and by place, email alerts, local transcription of voice notes and home automations. It is backed by 205 pytest tests.
  • 03A web panel to administer the server, designed with security as a requirement: typed actions instead of a free shell, two-step confirmation with an expiring token, and an audit log of every action.
  • 04The panel accepts natural-language commands, but the model only proposes an action from the catalog; it never runs free text. Its 38 tests cover that contract.
  • 05Secrets don't live in the repositories: they sit in restricted-permission files outside version control.
  • Python
  • Docker
  • systemd
  • Home Assistant
  • pytest
  • Security
  • Self-hosting

In production

Franky

Author and administrator

My home server, running in production the services I use every day: the Kepubli bot, Home Assistant, a personal voice assistant and a web panel to administer it all. I treat it as a system with real users, even if the only user is me.

Show details and evidence
  • 01A Dell OptiPlex running Debian, with five Docker containers and the remaining services under systemd. It is protected with fail2ban, and the admin panel is only reachable over Tailscale.
  • 02Tara, a personal assistant on Hermes: reminders by time and by place, email alerts, local transcription of voice notes and home automations. It is backed by 205 pytest tests.
  • 03A web panel to administer the server, designed with security as a requirement: typed actions instead of a free shell, two-step confirmation with an expiring token, and an audit log of every action.
  • 04The panel accepts natural-language commands, but the model only proposes an action from the catalog; it never runs free text. Its 38 tests cover that contract.
  • 05Secrets don't live in the repositories: they sit in restricted-permission files outside version control.
  • Python
  • Docker
  • systemd
  • Home Assistant
  • pytest
  • Security
  • Self-hosting

Credentials

Education

B.Sc. in Software Engineering

Magna Cum Laude

INTEC — Instituto Tecnológico de Santo Domingo

2020 — 2025

Certifications

  • ISTQB Foundation Level

    In progress · 2026

Languages

  • Spanish

    Native

  • English

    B1/B2 — Professional written communication

Outside the code

This is where the habit of measuring everything comes from. It isn't filler: it's the same method applied to other things.

Oliver Infante reviewing telemetry data on a laptop, sitting inside the race car in the paddock.
Fig. 2Reading telemetry between passes: the data decides the next adjustment, not intuition. · Photo: Davide Morillo
Black Ford Mustang doing the burnout before a quarter-mile pass, with a wet track and tire smoke.
Fig. 7Burnout before the pass: heating the tire is part of the procedure, not showmanship. · Photo: Davide Morillo

Drag racing

Quarter mile with telemetry and advanced mechanical setups. I work with HP Tuners and bootmod3 on a 2018 Ford Mustang and a BMW M4 G82.

  • HP Tuners
  • bootmod3
  • Telemetry
  • Launch control

Sim racing

Home simulator with Moza R9 direct-drive hardware and custom wheels. I compete in iRacing, Assetto Corsa and RaceRoom.

  • iRacing
  • Assetto Corsa
  • RaceRoom
  • Moza R9

Hardware and homelab

Building PCs with liquid cooling and inverted cases, and Franky, my home server, running my own services.

  • Custom loop
  • Linux
  • Docker
  • Self-hosting

Reading and music

Manga on Kindle and Kobo. In the background, heavy rock, metal and J-rock — and reggaeton when the moment calls for it.

  • Manga
  • E-ink
  • Metal
  • J-rock

Contact

I'm open to opportunities in QA, testing and automation. If you have a role or a project in mind, write to me.

Write to me
GitHub
@Inf015