Based in Ankara, Türkiye

Baran Doğanbaş

QA Engineer · test automation and requirements analysis

I test B2B SaaS at BeamSec, focusing on tenant isolation and role-based access for accounts synced from Active Directory and LDAP. I automate those checks with Playwright and TypeScript.

Experience

Professional experience

My QA roles and the work I did in each team.

Read the full résumé ↗
FEB 2025 – NOW
Ankara, Türkiye

BeamSec (Beam Teknoloji)

QA Tester
  • Reported 410+ defects and verified 370+ fixes.
  • Automated tenant-isolation and role-permission checks in Playwright (UI and API) and added them to release validation.
  • Root-caused failures from logs before filing: a report-generation crash traced to a null user field, a CI break traced to a JDK and library version mismatch.
  • Wrote development cards, functional requirements and acceptance criteria from product documents, so developers and QA worked from the same expected behavior.
2024 · Military service, Turkish Armed Forces
AUG 2023
– FEB 2024
Remote

Hypnotes

Test Automation Engineer

Built a Java / Rest Assured API framework and connected the Selenium regression suites to Jenkins, which took the regression cycle from days to hours. Built the Jira Xray dashboards used in release decisions.

APR – AUG 2023
Remote · USA · Contract

Hyrai

Software Test Engineer

Implemented a Java, Selenium and Cucumber framework around business rules. Contributed to requirements analysis early in the development lifecycle.

Earlier project · Library Test Automation, 2022–2023

Java BDD framework with Cucumber, Gherkin, Page Object Model and Maven. Covered UI and API flows with Rest Assured and Postman, plus SQL data validation managed through Jira / Xray.

Selected work

Work samples

A public framework built on the patterns I use at work, and work examples with product and client details removed.

Applied QA & analysis

BeamSec
Performance testing

Load testing before launch

The product expected 10,000–20,000 people to open the same public link at once.

JMeterLoad testing

What the test showed

In this test, some requests went unanswered above roughly 25,000 virtual users.

My work
I built a staged JMeter test up to 30,000 virtual users.
Outcome
I reported the findings to the team before the client launch.
AI workflow evaluation

Investigating agent failures

Context
An LLM agent that runs multi-step tasks was going in front of a client. Its answers read well, which made the wrong ones hard to spot.
My work
Ran a hallucination risk analysis on the conversation logs: checked each answer against the source data it should have been grounded in, and repeated the same prompts to see how consistent the agent stayed from run to run. Built a failure taxonomy from what came up, covering intent misclassification, context lost across turns, unsupported claims and risky actions taken on a wrong decision.
Result
Reported the failure patterns to developers ahead of the demo, grouped by cause and by how much risk each one carried.
Hallucination risk analysisGrounding checksPrompt consistencyFailure taxonomy
Business & functional analysis

From product docs to development cards

Context
Product documents described features in business terms and left edge cases open.
My work
Collected the open questions from the documents, clarified them with the product side, and wrote development cards with functional requirements and acceptance criteria.
Result
Developers and QA started from the same expected behavior, and open questions were settled before implementation instead of during testing.
Requirements analysisFunctional specificationsAcceptance criteria
Expertise

Technical & analytical expertise

What I use now, and what I used in earlier roles.

UI & API automation

Readable regression suites for user journeys and service behavior.

PlaywrightPostmanEarlier:SeleniumRest AssuredCucumberNewmanTestNG / JUnit

Performance & reliability

Workload design, bottleneck investigation and backend diagnostics.

JMeterGatlingDockerRabbitMQLinux

Identity & data integrity

Directory synchronization, authorization boundaries and persisted data.

AD / Azure ADLDAP / GPOPostgreSQLMongoDBEarlier:MySQL

AI workflow evaluation

Intent, context and multi-step reliability in agentic systems.

Hallucination risk analysisLLM output validationConversation-log analysisFailure taxonomy

Engineering foundations

Maintainable test code and repeatable execution across environments.

TypeScriptJavaScriptGitGitHub ActionsEarlier:JavaJenkins

Business analysis & test strategy

Product research, functional requirements, scenario design and defect ownership.

JiraRequirements analysisFunctional specificationsAcceptance criteriaTest planningEarlier:Xray
QA Practice

Bug Hunt Lab

There are six bugs in this signup form. Try the edge cases and see which ones you can reproduce. Your findings appear in the defect list as you go, and the test design behind each one is inside.

Defect lifecycle

From bug report to verified fix

Open the ticket or replay its path through QA. The first fix fails retest in this demo.

TO DO 1
BUG-0147 ↗

Retake deletes the learner's earlier quiz results

CriticalTo Do / Bug
IN PROGRESS 0
IN TEST 0
TO BE RELEASED 0

Open the ticket to read the reproduction steps and expected behavior.

An intentionally faulty form. All entries stay in this browser; no account is created.

Create account

✓ looks good
✓ looks valid
✓ ok
Whitespace Email format Double submit Error messages Date boundaries Consent

Observed defects

Defects found 0/6
HUNT-01Whitespace-only name passes as validMedium
HUNT-02Email validation passes invalid addressesHigh
HUNT-03Double-click creates duplicate submissionsHigh
HUNT-04Error message blames the wrong fieldHigh
HUNT-05Birth date accepts a future dateMedium
HUNT-06Account created without accepting Terms of ServiceHigh

All six found. Open the test design to see which technique catches each one.

Retake permanently deletes the learner's earlier course and quiz results

Rewritten from a real defect pattern. The product, data and ticket numbers are fictional.

Baran Doğanbaş

QA Engineer

Click anywhere or press Enter · Esc to skipTap anywhere to continue