Available for new projects · Remote

Idea to shipped. I run the whole distance.

Hand me your specifications and a deadline. One person, the whole stack — architecture, backend, frontend, the AI, and hosting set up for you — delivered as one working package, not a pile of parts.

13
Projects shipped
20+
Years indie
Rails 3 → 8
Rescued & upgraded
8+
Industries served
Rails + Vue/NuxtOne-person teamTürkiye · Netherlands · Thailand
What I do

Four ways I earn my keep on a team.

0 → 100

A team of one

You bring the idea and the deadline — I'm the rest of the team.

  • From your specs to a running product.
  • Architecture, backend, frontend, and AI where it earns its place.
  • Hosting set up and the whole thing handed over as one working package.
RailsNuxtPostgreSQLDigitalOceanAmazon SESAI / LLMs
APIs

API-first backends

Where most of my focus goes lately.

  • Business logic and workflows live in a clean API, separate from the visuals.
  • So I get to think about what the product does, not how it looks.
  • Web and mobile clients share one honest source of truth — encrypted where it counts.
RESTRails APIAuth
Rescue

Legacy rescue & upgrades

A lot of old Rails out there has nobody left who knows it.

  • I upgrade it and untangle needless micro-services.
  • Drop fragile dependencies and restore what broke.
  • Left clean and maintainable for the next developer.
Rails 3 → 8MigrationsRefactors
Detective

Architecture & troubleshooting

My favourite role — the detective.

  • Bugs, timeouts, a JIRA board nobody wants? I clear them one by one.
  • I find the real cause, not just the symptom.
  • And I'll tell you what you don't want to hear.
DebuggingPerformanceArchitecture
Selected work

Things I've shipped.

Twenty years of taking projects the rest of the distance — my own product, startup builds, and a lot of Rails brought back to life.

13 selected projects · 2003 — now
Now · my producttrywordy.com

Wordy

Rails 8 + Nuxt 4 · Claude · ElevenLabs

Designed and built end-to-end. Paste a batch of words and get clean cards — definitions, real examples, synonyms you'd actually use, and natural text-to-speech pronunciation. Rails 8 API with a Nuxt 4 frontend; definitions powered by Claude, text-to-speech audio by ElevenLabs. Proof of what 0-to-100 looks like when I run the whole thing.

Rails 8Nuxt 4PostgreSQLClaude APIElevenLabs TTS
Now · my productwww.yazbirdilekce.com

YazbirDilekçe

Rails · Claude · PDF export

An everyday problem turned into a product: Turkish bureaucracy expects a very specific tone and format that almost nobody learns properly. Users describe their situation in plain language — a consumer complaint, a resignation, a municipal issue — and get back a properly formatted official petition with the right address and institutional tone, ready to export as PDF. Claude does the language; the rest is mine.

RailsClaude APIPDF
Current
Canadian healthcare integrationFull-stack · Nuxt 3 + Rails 7 API

Building a Nuxt 3 client and a Rails 7 API that sit on top of an existing system used by Canadian healthcare organisations. Sensitive fields are encrypted in the browser with the user's private key and only ever leave it as ciphertext — the server stores and routes them but never sees plaintext. Operational data still flows normally where it doesn't need protecting, so the legacy stack underneath keeps working. Live with users; I'm on the small team driving it forward.

Nuxt 3Rails 7 APIClient-side encryptionHealthcare
Current
Toptal · Legacy Rails rescueModernisation · Rails & Ruby upgrade

A classic legacy-rescue: Heroku had retired the Ruby version this project ran on, the original team had moved on, and the codebase wasn't deployable any more. I brought Rails and Ruby up to current, pulled unnecessary micro-services back into the monolith where they belonged, and dropped the fragile third-party dependencies that were doing more harm than good. Left it deployable, readable, and maintainable for whoever comes next.

RailsRuby upgradeHerokuMicro-servicesRefactors
Recent
Razor ScootersRails 3 → 6 upgrade · internal apps

Razor's content and document workflows ran on internal Rails apps stuck on version 3. I took them to Rails 6, rebuilt the PDF document pipeline with Prawn, modernised the background-job layer and added the notifications that should have been there all along, and refreshed the UI with Bulma. The result is a stack the next developer can actually open, read, and ship from.

Visit www.razor.com
Rails 3 → 6PrawnBackground jobsBulma
Recent
Surface StudioLegacy Rails maintenance

Came on board to maintain an existing Rails application. The work was specific and useful: refresh how PDF invoices were generated, update their Elasticsearch plugin to behave the way they expected, and build an anomaly alert system so the owners knew when something was off before a customer told them.

Visit www.surfacestudio.com
RailsPDFElasticsearchAlerting
Recent
Toptal · US education platformRails 3.2 → 5 upgrade · custom workflows

A SaaS bridging US high-schools and universities so students can take courses early. I was brought in for a Rails 3.2 → 5 upgrade — meant to last a month. They liked the work and kept me on to build custom code for new clients whose needs didn't fit the platform's automation around sign-up, course registration, reporting and invoicing.

Rails 3.2 → 5WorkflowsCustom client code
Recent
Toptal · Frontend migrationRails & Vue

First the backend: Rails 3 to Rails 5 — upgrades like these are becoming my speciality. Then the frontend: moving from ExtJS to Vue with Vuetify, one component at a time, without breaking the screens still on the old framework.

Rails 3 → 5VueVuetifyMigration
Recent
AroundYou (via Toptal)Troubleshooting across micro-services

Several micro-services on different Rails and Postgres versions, with bugs and time-outs nobody had time to chase. I worked the JIRA board down ticket by ticket — SEO redirects, JavaScript calculation errors, server timeouts — fixed the APIs, and added a few new endpoints along the way.

RailsPostgreSQLAPIsDebugging
Earlier
Innovation Factory · KPMGSenior developer · base architecture

Hired as a senior developer to lay the foundation for the next version of the platform. I rebuilt the core on Trailblazer, ran React components as widgets across the UI, and added multi-tenancy so one codebase could serve clients like Heineken, Vodafone and PostNL from a single deploy. Underneath: Rails and PostgreSQL with AWS, S3, background workers and Elasticsearch. The company was later acquired by KPMG Netherlands.

Visit kpmg.com/nl
RailsTrailblazerReactMulti-tenancyPostgreSQLAWSElasticsearch
Earlier
FitmoAPI-first platform for trainers and mobile

A platform that connects personal trainers to their clients — sessions planned together, tracked over time, and accessed from either the web app or mobile. I built it as API-first from the start so the business logic stayed honest and shared, instead of getting smeared across two clients. Rails on Heroku, Backbone.js on the responsive frontend, Resque and Redis behind the scenes.

Visit fitmo.com
RailsBackbone.jsHerokuResqueRedisAPI-first
Earlier
Pierre Vacances · Center ParcsLead developer · booking integration

A migration project: Pierre & Vacances wanted to sell Center Parcs stays through their own booking flow, which meant a web service had to broker between the two systems reliably. I led the work on the test suite — Rails 3 with MySQL, plus SoapUI scripts for the integration cases — so the team had something to trust before each release.

Rails 3MySQLSoapUIWeb servicesTest suite
Earlier
VisiWeb · Bakker SpeesASP.NET full-stack

The client already sold a Windows application to his customers and didn't want the web version to break the habit. Built with ASP.NET (C#) against a web service his team maintained, so the same business logic backed both the desktop and the browser. Heavy XML/XSLT in the pipeline; ExtJS up front gave the UI its Windows-like feel. I worked on both VisiWeb 1.0 and 2.0.

Visit www.bakkerspees.nl
ASP.NETC#XML/XSLTExtJS
Toolbox

What I build with.

The stack I reach for. Backend is home; I cross the full stack when a project needs one person who can.

Ruby on RailsMaster
API developmentMaster
PostgreSQL & MySQLExpert
Vue.js / NuxtExpert
JavaScriptExpert
AI / LLM integrationExpert
AWS · S3 & SESExpert
DigitalOcean & DevOpsExpert
HTML5 / CSS3Expert
Material DesignExpert
ReactProficient
Ways to work

How we work together.

Two ways to engage, depending on where your project is. Both end with something real shipped — and we agree the terms before I start.

01Whole project

One price, zero to one hundred.

We agree the scope and a single price for the whole thing — designed, built, hosted and handed over as one working package. You know what you're getting, and what it costs, before a line of code.

  • Scope and price agreed up front
  • Built, hosted and delivered as one package
  • No hourly meter, no surprises
Fixed scope · one price · 0 → 100
02Short sprints

Or short, focused sprints.

Need a focused burst rather than the whole build? We work in short, time-boxed sprints — easy to start, easy to stop, with something shipped at the end of each one.

  • Time-boxed, a week or two at a time
  • Rescues, migrations, features, second opinions
  • Pause or extend whenever you need
Rolling · easy to start, easy to stop

Not sure which fits? Tell me about the project and I'll suggest the honest option — even if it's the smaller one.

About me

One person, whole project — or the fix when it breaks.

I'm happiest building what a client dreams up — turning an idea into something that ships. When things break, I like the second role too: tracking down what's really wrong makes me feel like a detective.

I do my best work on projects with passionate teams that meet daily and talk openly. My speciality is startups that want one technical person who speaks their language and isn't afraid to be honest with them.

I'm grateful that remote work lets me move between Türkiye, the Netherlands and Thailand — and still ship with teams anywhere.

Contact

Ready when you are.

Tell me about your project — what you're building, what's stuck, or what you want to take from zero to one hundred. I read every message and reply within a day.

Replies within ~1 business day.
or reach me directly