Optiyol · route optimisation for logistics fleets
2023–present
Since 2023 I have worked mostly on two large Django REST services, one for planning and one for execution. Planning holds vehicles, carriers, orders, shifts and the constraint model a solver runs against. What the solver produces then lands on the execution side, which owns the routes, the orders moving along them, the approvals they need and the driver payments that follow. The two talk over Kafka. Both run on Kubernetes on AWS and carry thousands of users between them.
Most of the hard problems are ones the optimisation creates. A plan meets a day that does not cooperate and has to change, and that one change then has to come out consistent across every service it touches. Pricing happens after the fact, once a route has run, and the rules differ from one company to the next.
Huawei · developer platforms
2021–2023
The platform was internal to Huawei and its users were the company's own engineers, thousands of them across several R&D organisations. I joined in April 2021 as a Python developer and designed the service layer in Django REST Framework and FastAPI. MongoDB, MySQL and Redis were underneath it, holding up under production load. In June 2022 I became technical lead for a team of fifteen and stayed in that role until February 2023, running architecture decisions, code review, mentoring and release management.
We wrote and reviewed the Vue.js components ourselves. A feature that needed a small piece of frontend would otherwise have waited in another group's queue, and there was enough Vue.js in the team to avoid that. The same platform shipped to customised on-premise clusters and to Huawei Cloud. Every one of those was configured a little differently, so a change had to hold up in all of them. I ran cross-team integration, and we caught production issues before the engineers using the platform hit them.
Dizayn VIP · executive vehicles
2020–2021
Darvis was an assistant that ran on the vehicle's own hardware. It held the dialogue, answered questions, kept reminders and drove the interface that was built into the car. I wrote the NLU and the application modules in Python and C++, on an object-oriented architecture. The hardware was limited. There was a latency budget to hold, and since cars lose their connection the behaviour had to keep working offline.
The dialogue management flow and the question answering component were the two pieces I designed for Turkish. Turkish went no further than that; the reminders and the built-in interface were not language work. Darvis shipped into executive vehicles in a programme backed by the Republic of Türkiye.
Ortadoğu Savunma Teknolojileri · defence systems
2019–2020
The software was a hardware-in-the-loop simulator for defence platforms. Real hardware gets wired into a bench and run against a model of the world, so it meets the situations it was built for without any of them being real. I wrote the mathematical models and the control modules in C and C++. The test side was Python. The operator interfaces were Qt, for whoever was watching the bench while a run went on.
The delivery process was regulated. Every requirement had a test traced to it and every change was written down, with the documentation produced in line with MIL-STD. Changing one model meant updating the test that covered it, and then whatever documents named either. I ran the verification and the testing myself.