2017 to now · montevideo, uruguay · remote · utc-3

Nine years, seven companies.

I have been writing production software for nine years. Its users happened to be engineering teams.

download the résumé (pdf) → linkedin → mateo.a.briosso@gmail.com

Mateo Briosso, software engineer, Montevideo.

what this history actually is

A test automation framework is an application.

It has an architecture, a concurrency model, a deployment target, and a pipeline that runs it. It talks to real systems over real networks, on hardware you do not control, in parallel, and it has to be right. When it is wrong, people stop trusting it, and a suite nobody trusts gets skipped and then deleted. Writing one is easy. Writing one a team still runs two years later is the job.

That is what the nine years below are. Seven companies, five languages, four browser and device stacks. Frameworks built from scratch four times, one migration led, two engineers mentored.


the short version

All of it, at a glance.

yearscompanyrole
2024 — now A US insurance company QA Engineer
2024 OrangeLoops QA Lead
2022 — 2023 DataArt Test Automation Engineer
2021 — 2022 Altimetrik Specialist QA Automation
2019 — 2021 Globant Test Automation Engineer
2019 Oktana QE Automation
2017 — 2018 Abstracta QE Automation

the long version

Every role, in full.

jun 2024 — now 2 yr 2 mo

A US insurance company

qa engineer · mooresville, us · remote from montevideo

Two automation frameworks in JavaScript, one on Cypress and one on Playwright, covering web, mobile and API. I also led the move off the team's Ruby and Capybara suite onto them, and wired both into CI/CD so they run as part of the build rather than as something someone remembers to kick off.

the hard part

A framework migration never gets a quiet quarter. The Ruby suite has to keep passing while the JavaScript one grows underneath it, and at the end the team has to prefer the new one, which is a different problem from the new one being better. Two frameworks instead of one is also a choice you have to keep earning: Cypress and Playwright are good at different things, and the cost of that decision is paid in maintenance every week.

  • javascript
  • cypress
  • playwright
  • ci/cd
  • web
  • mobile
  • api
jan — jun 2024 6 mo

OrangeLoops

qa lead · montevideo, uruguay

A mobile automation framework in Java on TestNG and Appium. It ran the same suite four ways: Android emulators, iOS simulators, real handsets on a desk, and BrowserStack device farms. It pulled the device console log into the test output, so a red test arrived with the evidence attached. I also led two junior QA engineers and reviewed their work.

the hard part

Mobile is four environments wearing one costume. An emulator, a physical phone and a farm device fail in different ways at different speeds, and a suite that is only green on one of them is not a suite. Getting the console log into the report is the difference between "the checkout test failed" and "the checkout test failed because the token refresh 401'd", and only one of those gets fixed the same day.

  • java
  • testng
  • appium
  • android
  • ios
  • browserstack
  • emulators and real devices
feb 2022 — aug 2023 1 yr 7 mo

DataArt

test automation engineer · montevideo, uruguay

A Selenium suite in Java on TestNG, structured with Page Object and Page Factory, with the WebDriver instance held in a ThreadLocal so the whole thing runs in parallel. Separately, I automated asset validation in Python for work that had been a manual check.

the hard part

Parallelism is where a test suite goes flaky, and shared driver state is usually why. Giving each thread its own driver through ThreadLocal fixes the mechanism, but the discipline is keeping every fixture, every wait and every piece of test data thread-safe afterwards, forever, including in code written by people who were not in the room when you chose the pattern. A flaky suite trains a team to ignore red, and once that happens the suite has negative value.

  • java
  • selenium webdriver
  • testng
  • threadlocal
  • page object and page factory
  • maven
  • git
  • python
  • jira
mar 2021 — jan 2022 11 mo

Altimetrik

specialist qa automation · montevideo, uruguay

A UI automation framework from an empty repository, in JavaScript and TypeScript on Selenium WebDriver, with Cucumber-js and Jest, running against a Salesforce API. I owned the delivery too: deployment to Azure Blob storage and the Azure DevOps pipeline that ran it.

the hard part

From scratch means every decision is yours, and the ones you skip become the thing the team works around for the next two years. Where a test finds its data. What a failure prints. Who is allowed to run the suite and against which environment. Where the report lands so that somebody reads it. There was no platform team to hand the pipeline to either, so the framework and the infrastructure it ran on were one piece of work.

  • selenium webdriver
  • javascript
  • typescript
  • cucumber-js
  • jest
  • testng
  • maven
  • azure devops
  • azure blob storage
  • salesforce api
apr 2019 — mar 2021 2 yr

Globant

test automation engineer · montevideo, uruguay

I designed and then maintained the team's automation framework for two years: TypeScript on Protractor and Jasmine, with Cucumber for the BDD layer, plus API coverage using Postman and Chai against an Express service, all running on Jenkins. I reviewed other engineers' code and was the person the dev team came to about automation.

the hard part

Two years on one framework is mostly maintenance, and maintenance is harder than the build. The application changes underneath you, the team turns over, and the suite either absorbs that or rots. Being the reference point is the other half: the framework is only as good as the worst test anyone is allowed to merge into it, which makes code review part of the architecture rather than a chore next to it.

  • typescript
  • protractor
  • jasmine
  • cucumber
  • bdd
  • postman
  • chai
  • express
  • npm
  • jenkins
  • bitbucket
jan — mar 2019 3 mo

Oktana

qe automation · montevideo, uruguay

A short engagement writing Selenium coverage in Java on TestNG, structured with Page Object.

  • java
  • selenium webdriver
  • testng
  • page object
oct 2017 — dec 2018 1 yr 3 mo

Abstracta

qe automation · montevideo, uruguay

My first job out of university. Selenium coverage in Java on TestNG with Page Object, working against MySQL for data setup and verification, on a team that worked test-first.

the hard part

Learning that the test is not the interesting part. Keeping the page structure out of the test is what lets the test survive a redesign, and writing the test before the code is what stops you from writing a test that only asserts what the code already does. I have used both since, everywhere.

  • java
  • selenium webdriver
  • testng
  • page object
  • mysql
  • tdd

education

BSc Computer Science.

2013 — 2017
BSc, Computer Science · Universidad ORT Uruguay, Montevideo
2010 — 2011
Associate degree, Computer Science · Universidad ORT Uruguay · final score 92/100

stack

What I build with.

languages
java · javascript · typescript · python · sql
web automation
playwright · cypress · selenium webdriver · protractor
mobile
appium · android and ios emulators · real devices · browserstack
api and data
postman · chai · express · mysql
runners and bdd
testng · jest · jasmine · cucumber · cucumber-js
ci/cd and build
github actions · jenkins · azure devops · azure blob storage · maven · npm · git · bitbucket
practice
framework architecture · page object and page factory · threadlocal · parallel execution · design patterns · exploratory testing · code review · mentoring
spoken
english · spanish

Working together

I contract with US clients through a Wyoming LLC and work from Montevideo on UTC-3, which overlaps most of a US Eastern or Central working day.

Mateo Briosso is a software engineer in Montevideo, Uruguay, working remotely and contracting with US clients through a Wyoming LLC. Since 2017 he has built test automation frameworks as production software across seven companies: a US insurance company (Cypress and Playwright in JavaScript, plus a Ruby and Capybara migration), OrangeLoops (Java, TestNG and Appium on emulators, real devices and BrowserStack, as QA Lead), DataArt (Selenium and Java with ThreadLocal parallel execution), Altimetrik (a UI framework built from scratch with Azure DevOps and Azure Blob deployment), Globant (Protractor, Jasmine, Cucumber and Jenkins, plus code review for peer engineers), Oktana, and Abstracta. He holds a BSc in Computer Science from Universidad ORT Uruguay (2013–2017).