var me = new Engineer
{
Role = "Senior Software Developer",
Base = "Türkiye 🇹🇷",
Since = 2017,
Builds = ["Web", "Mobile", "APIs", "AI agents", "Open Source Core"],
Motto = "Ship it. Measure it. Keep it boring."
};- 🏗️ I design and ship end-to-end products: database schema → API → web panel → mobile app → deployment.
- 🤖 I build AI-assisted workflows — voice-to-action assistants, automated SEO/blog pipelines, LLM-powered reporting.
- 🔌 I connect modern apps to legacy systems (ERP / accounting software, MSSQL, e-invoice) without breaking the business.
- 📱 Lately: Next.js 15 + Prisma + PostgreSQL RLS on the web, React Native + Expo on mobile, .NET 8 on the backend.
- 🚀 Active Open Source Contributor fixing core edge-cases, type safety issues, and performance bottlenecks across the JS/TS & .NET ecosystems.
- 🧠 Agentic development — AI workflows with custom skills, subagents & hooks for planning, testing, and shipping.
- 🔌 MCP integrations — GitHub, Figma, browser automation and internal APIs exposed as agent tools.
- 🎙️ LLM in production — speech-to-text (Whisper) → structured extraction (Claude) → human approval queues.
- ⚡ Automation pipelines — scheduled AI jobs for content, SEO and daily digests.
I actively hunt down and fix edge cases, parser/AST issues, and type-system subtleties in the tools and runtimes powering modern software.
My Packages
- tr-toolkit: Turkish validation and locale helpers for TypeScript (npm)
Merged & Approved Highlights
- pinojs/pino#2549: prevent synchronous throw during async stream initialization (Approved by Pino creator / Node TSC member
@mcollina) - kunchenguid/gh-axi#259: respect user branch argument during checkout workflows (Reviewed & approved)
- quartznet/quartznet#4190: show an error for an invalid cron expression on save in the dashboard
- jstedfast/MailKit#2032: accept a proxy CONNECT response with no reason phrase
Active Contributions & Pull Requests
| Ecosystem / Organization | Key Pull Requests | Summary |
|---|---|---|
| TypeScript & Tooling | TypeStrong/typedoc#3158 · #3159 · #3160 dotansimha/graphql-code-generator#11112 terser/terser#1787 |
Fix variadic tuple elements (...T) incorrectly wrapped in ArrayType · Escape HTML in unloaded highlight language code blocks (XSS fix) · Normalize declaration map paths for Windows compatibilitySupport @deprecated and JSDoc on resolver argumentsPreserve lexical scope for async default parameter evaluation |
| TanStack | TanStack/table#6655 TanStack/router#8895 TanStack/router#8896 TanStack/router#8899 TanStack/router#8908 TanStack/form#2471 |
Preserve sort direction on multiple column multi-sort Robust SSR hydration and root navigation transition fixes Router error boundary bubbling & redirect cycle resolution Dynamic route parameter parsing and state memoization Form reset validation state synchronization |
| Meta | meta/lexical#9847 meta/lexical#9848 meta/lexical#9850 |
Fix selection collapse during composition event flush Avoid duplicate DOM observer events on nested root nodes Normalize inline math and table cell selection boundary |
| UnJS & Nitro | nitrojs/nitro#5058 nitrojs/nitro#5059 nitrojs/nitro#5060 nitrojs/nitro#5061 nitrojs/nitro#5063 nitrojs/nitro#5064 unjs/jiti#503 · #504 · #505 · #506 unjs/ofetch#649 unjs/unbuild#578 |
Dynamic preset routing, prerender error propagation, and asset bundling edge cases ESM/CJS interoperability fixes, TypeScript enum re-exports, transform cache isolation Stream response error handling in ofetchDeclaration emit path resolution in unbuild |
| React Native & Mobile | callstack/react-native-paper#5192 callstack/react-native-paper#5193 callstack/react-native-paper#5194 callstack/react-native-paper#5195 expo/expo#52601 reanimated#11097 |
Fix TextInput icon color theme inheritance Dialog backdrop tap gesture handling on Android BottomNavigation accessibility role and tab focus indicators Snackbar auto-dismiss timer cancellation on unmount Clamp frame freeze time at zero on Android |
| Node.js, Databases & Utils | ajv-validator/ajv#2701 pinojs/pino#2550 redis/ioredis#2283 hapijs/joi#3174 · #3175 lukeed/dequal#51 · polka#231 · uvu#265 forwardemail/superagent#1871 styled-components#5872 yargs#2625 · #2626 |
Prevent skipping contains when tuple array is shorter than itemsFlush pending buffer before process exit hook Auto-reconnect backoff handling with sentinel failover Fix deep schema validation with circular references Accurate Map/Set equality handling with duplicate item shapes Ensure correct content-type header casing on multipart retry Prevent memory leak on dynamic stylesheet detachment |
| .NET & Enterprise | dotnet/efcore#39491 · #39490 npgsql/npgsql#6738 · efcore.pg#4117 |
Static operand type comparison in query translation Flaky SaveChangesAsync concurrency test isolationCulture-invariant NpgsqlRange<T> formatting |
Backend
Frontend & Mobile
Data
DevOps & Tooling




