Skip to content
View taskinbirtan's full-sized avatar
🎯
Focused
🎯
Focused

Block or report taskinbirtan

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
taskinbirtan/README.md

Hi, I'm Birtan 👋

bir-tan.com LinkedIn Spatie Contributor v7.3.0 @bir-tan/crisp-oquent on npm

Backend lead at T-Soft, an e-commerce SaaS platform based in Türkiye. I work primarily with Laravel/PHP across a multi-service architecture — including an OAuth2 identity provider built on Laravel Passport.

Computer Engineering, Çukurova University Çukurova University alum.

Currently focused on: API design, multi-tenant SaaS, OAuth2 / authentication infrastructure, and developer tooling — with a strong bias toward testable code, PHPUnit / Pest suites, and CI pipelines that catch regressions before customers do.


🌱 Featured Open Source Contribution

spatie/laravel-query-builder #1060 — Filter Groups (OR/AND conjunction). Released in v7.3.0 on May 2, 2026, as a first-time contribution to the package. Adds AllowedFilter::groupOr() and groupAnd() so you can compose filters with JSON:API-style "fancy filters" semantics — the SQL-precedence-safe way to express "search across name OR full_name" as a single shorthand parameter.

QueryBuilder::for(User::class)
    ->allowedFilters(
        AllowedFilter::groupOr('q', [
            AllowedFilter::partial('name'),
            AllowedFilter::partial('full_name'),
        ]),
    );
// GET /users?filter[q]=John  →  WHERE (name LIKE %John% OR full_name LIKE %John%)

🛠️ Things I've built

🧪 Testing & Quality

I treat tests as a first-class deliverable, not an afterthought. Day-to-day that means PHPUnit / Pest for PHP, Vitest for the TypeScript side, and a lot of opinions about meaningful coverage over coverage numbers. I lean on mutation testing to catch the assertions that look like they test something but don't, and I'd rather ship a thin slice with real tests than a fat slice without.

🧰 Tech I use most

PHP Laravel OAuth2 MySQL Redis Docker Vue TypeScript Pest Vitest

🌐 Elsewhere


In tests we trust. 🧪

Pinned Loading

  1. crisp-oquent crisp-oquent Public

    Typescript/Javascript; features mapping + model-builder like JSON API library, using fetch only.

    TypeScript 9

  2. ataturk ataturk Public

    Forked from gayret/ataturk

    Ulu Önder Mustafa Kemal Atatürk'ün hayatını görsel ve işitsel kaynaklarla anlatan web uygulama.

    TypeScript

  3. amazon.prime.x-ray.disabler amazon.prime.x-ray.disabler Public

    Amazon Prime X-Ray Disabler is designed with a single, clear purpose: to allow users to easily toggle the X-Ray feature on Amazon Prime Video on and off. This extension helps users to have a more f…

    HTML 2

  4. youtube.bottombar.disabler youtube.bottombar.disabler Public

    A Chrome extension to toggle the visibility of the bottom control bar on YouTube videos.

    JavaScript 1

  5. laravel-netgsm laravel-netgsm Public

    PHP 2