We step in when a system has outgrown its architecture.
Değişken Yazılım examines existing production software in depth, modernises it, extends it, tests it, and supports it for the long run. We have been building software for twenty years, most of that spent creating new systems in PHP, dotnet and TypeScript and keeping existing ones standing: unstable platforms, performance problems, monoliths that have stopped scaling, codebases where new features can no longer be added, and requirements that somehow never get met.
Services
What we do
We can work across the whole software development process, from end to end or at exactly the point where you need us.
- 01
Business analysis
We establish what the project is for, who it serves and what is currently going wrong. Before deciding what to build, we settle what is actually needed.
- 02
Architecture decisions
We identify the viable options for the project, research them and run the preliminary tests. The decision rests on measurements rather than assumptions.
- 03
Software development
Readable, maintainable code that follows the architecture we agreed on, written to carry the next few years of product change rather than just this release.
- 04
Integration
We connect your system to ERPs, CRMs, payment providers and third-party services, with a boundary in between so a change to someone else’s interface does not break your application.
- 05
Testing
Unit, integration, end-to-end, smoke and security tests, set up as blocking gates in CI. Untested code is code that is only assumed to work.
- 06
CI/CD
We turn releasing from a manual task into an automated, repeatable process. Every deployment passes a health check and the rollback path is defined in advance.
- 07
Maintenance and monitoring
We watch production through centralised logging, dashboards and alerts, so a problem is seen and acted on before your customers report it.
- 08
AI-assisted development
Agent and skill tooling that knows your codebase’s conventions, plus MCP servers giving assistants governed access to your systems. We are equally explicit about where the leverage stops.
- 09
Training
We train your team to run and extend what we hand over. On site or remote, pitched to the subject and to the level of the people in the room.
- 10
Consultancy
Across the whole software process, or only at the point where you need it. Sometimes the most useful answer is that nothing should be built.
Selected work
What we have done
There is no such thing as a big job or a small job here. Any work where we can make a real difference is the right work for us. The detail of each one is on the work page.
Enterprise retail e-commerce
Taking an enterprise commerce platform from 1,000 daily errors to double digits
A composable-commerce platform for a large optical retail chain was logging around a thousand errors a day, timing out on discounts and charging the wrong amounts. We worked the defect classes down in order.
~1,000 → double digitsError log entries per day
Read the case study →
Regulated consumer products · D2C
A regulated direct-to-consumer storefront, live and transacting in 45 days
We won the engagement on a commitment competitors would not make — a custom storefront taking live card payments within 45 days, under a 100% uptime guarantee. Both were met.
45 daysFrom zero to live card payments
Read the case study →
Lead-generation SaaS
Removing a SaaS platform's scalability ceiling
Ten concurrent users in the editor degraded the entire product to multi-minute waits. We isolated that workload first, then decomposed the rest — and the customer base grew sixfold without the architecture becoming the limit.
300 → ~2,000Customer accounts during the engagement
Read the case study →
Building automation · IoT
A building automation platform where a device contract is defined once
A KNX hardware manufacturer needed a software platform to control its own devices and any third-party KNX device. We defined the architecture and built the logic engine, the visual automation editor and the tablet client.
One contractNode schema shared by backend, admin panel and mobile
Read the case study →
Consumer mobile product
A digital invitation platform, from proof-of-concept skeleton to public release
An MVP-stage digital invitation product had a backend that existed only as a Laravel skeleton. We restructured it around DDD, built the API and the editor, and took it to public launch.
Public releaseFull agreed scope delivered
Read the case study →
Spare parts e-commerce
A faceted catalogue that stopped timing out
Tens of thousands of SKUs behind a five-facet filter that frequently timed out, and pages taking two to three minutes. We replaced the data model behind the filter and automated a multi-supplier import that had been days of manual work.
2–3 min → ~5sCatalogue page render time
Read the case study →
How we work
How we work
However heavy the job, we move it forward in three steps.
- 01
Review and report
We read the system from evidence: production logs, APM traces, the error profile, deployment history, the tests that exist and the ones that do not. You get a written report on the structural weaknesses and the risk, with the reasoning attached.
- 02
A prioritised implementation plan
Findings are ranked by blast radius and tractability, then turned into a plan that can run alongside your product roadmap. How much of it to do, and when, stays your call.
- 03
Build and deliver
Built the way it should be built, and handed over on the date we agreed. Static analysis, linting and tests as blocking CI gates, health-checked deployments, a defined rollback, and documentation written for whoever maintains it next.
Technology
Technology
Different languages, platforms, libraries. We use whichever options are right for the project — what we know best is not always the right answer.
Languages & frameworks
- PHP 8
- Laravel
- Symfony
- dotnet core
- C#
- TypeScript
- JavaScript (ES6+)
- Node.js
- Fastify
- Express
WordPress ecosystem
- WordPress
- WooCommerce
- BuddyPress
- custom plugins
- custom themes
- WP REST API
- headless WordPress
Frontend & mobile
- React
- Next.js
- Vue.js
- Redux Toolkit
- redux-saga
- React Flow
- TailwindCSS
- SCSS
- Vite
- Webpack
- React Native
- Expo
- SwiftUI
- Kotlin
Databases & cache
- MySQL
- MariaDB
- PostgreSQL
- MongoDB
- AWS RDS
- Redis
- AWS ElastiCache
- Eloquent
- Doctrine
Messaging & search
- RabbitMQ
- NATS
- Apache Kafka
- AWS SQS
- Elasticsearch
- Algolia
- Socket.IO
- Laravel Reverb
Testing & quality
- PHPUnit
- Jest
- PHPStan
- Larastan
- Laravel Pint
- PHPCS
- ESLint
- Prettier
- Husky
- TypeBox
- OpenAPI / Swagger
CI/CD & infrastructure
- Docker
- Docker Compose
- GitHub Actions
- GitLab CI
- Bitbucket Pipelines
- AWS EC2
- AWS S3
- Elastic Beanstalk
- Elastic Load Balancing
- Nginx
- Apache
Observability
- Elasticsearch
- Logstash
- Kibana
- Datadog
- New Relic
- Sentry
- Tideways
- health checks
- alerting