Software Quality Specialist · Software Engineer · Tech Lead EDGE/UFAL, Instituto de Ciência e Tecnologia (Federal University of Alagoas) · VERTEX, Instituto de Ciência e Tecnologia · Maceió, AL, Brazil
Sixteen years in tech. I work in parallel as a Senior QA Analyst and as a Software Engineer / Tech Lead on R&D projects at EDGE/UFAL (Instituto de Ciência e Tecnologia, tied to the Federal University of Alagoas) and at VERTEX (Instituto de Ciência e Tecnologia). Postgraduate specialization in Software Testing from Universidade Cruzeiro do Sul (2023, 470h, GPA 8.40/10).
Backend is where I spend most of my time (Python, TypeScript/Node.js). I deliver the full cycle when the project needs it. My QA background is the ground my engineering stands on: the code I write is designed to be testable from the first commit.
Background covers national projects in Brazil and international projects, with teams across different countries and time zones.
- Languages: Python, TypeScript, JavaScript, Java
- Backend: Python (APIs, automation, data pipelines, applied AI), Node.js/TypeScript (REST APIs, microservices, integrations), Spring (Java)
- Frontend: React and Vue.js with TypeScript/JavaScript when the project needs it, without rework
- Databases: PostgreSQL, MySQL, SQLite
- RPA: Python for ERP/BPMS integration, data processing, corporate automation
- DevOps: Docker, GitHub Actions, GitLab CI, Jenkins
- Applied AI: LLM integration, dataset generation and evaluation pipelines (Revelo)
Tooling, grouped by type:
- E2E / UI: Cypress, Playwright, Selenium WebDriver, Robot Framework, Puppeteer, TestCafe, Protractor
- Mobile: Appium (Android and iOS)
- Unit and integration: Jest, Mocha, JUnit, PyTest
- API: Postman, REST Assured, SoapUI, Karate
- Performance (load and stress): JMeter
- Standards and process: ISO 9001, ISO 25010, ISTQB, IREB; Scrum, Kanban, SAFe
- LLM evaluation: critical review of generative AI outputs, training dataset validation (Revelo)
For me, quality starts before the first line of code:
- Requirements alignment. I read every user story with the same rigor as someone who will later have to prove the system does what the story promises. Acceptance criteria are a contract, not a checklist. If the ask is ambiguous, I stop and go back to the PO before writing code.
- Executable specification. BDD and ATDD put the test next to the rule. Gherkin scenarios, named edge-case data, negative flows covered in the same PR as the feature, not the one after.
- Development. Clean code is cheap maintenance. Short functions, names that explain intent, no hidden dependencies. Every commit runs the local tests before push. Every PR carries unit and integration coverage that justifies the changeset.
- CI. A pipeline with deterministic gates: lint, type-check, unit, integration, E2E, SAST, and dependency analysis. A failure in any one blocks the merge. A test that silently skips is a bug, not an exception.
- Release stabilization. Automated smoke against staging, risk-based regression, per-feature coverage metrics, and defect leakage rate as a KPI. The release becomes the natural result of every PR clearing the bar, not a separate event.
- Delivery. Observability that catches the defect before the user reports it. Structured logs, business metrics, alerts calibrated for a low false-positive rate.
This approach honors the eight pillars of ISO 25010 (functional suitability, performance efficiency, compatibility, usability, reliability, security, maintainability, portability) without treating quality as a cost. Done right, quality cuts cost: rework drops, time to market accelerates, stakeholder trust grows.


