Fleetbase
Becoming useful inside somebody else’s architecture
Entered an unfamiliar logistics OSS ecosystem and authored 46 pull requests—40 merged—across ten repositories, from SDK and release work to cross-repository product changes.
- Role
- Software Engineer
- Period
- December 2023–April 2024
- Status
- Engagement completed
- Ownership
- Professional work / open-source contribution
Overview
Personal projects let me choose the language, architecture, repository boundary, and definition of done. Fleetbase removed all four advantages.
I entered an open-source logistics platform spread across Laravel services, Ember applications, JavaScript/TypeScript SDKs, React Native mobile work, storefront products, and separate release paths. I did not have prior Ember experience.
The useful question was not how quickly I could learn Ember syntax. It was whether I could understand the system well enough for its maintainers to accept work across the boundaries they had already chosen.
My role
I contributed as a Software Engineer from December 2023 to April 2024. I did not create Fleetbase or own its full architecture.
The public boundary is unusually exact: GitHub records 46 pull requests authored by tortuvshin across ten Fleetbase repositories. Forty were merged; six closed without merge.
01 · By the numbers
Contribution numbers
- Authored pull requests
- 46
- Merged pull requests
- 40
- Closed without merge
- 6
- Repositories touched
- 10
- Largest PR groups
- storefront-app 10, navigator-app 7, storefront 7, core-api 6
- Additional repositories
- fleetbase-js, storefront-js, ember-core, fleetops, fleetbase, pallet
02
First, learn how the product travelled through repositories
My earliest pull requests were small and infrastructural: dependency and formatting cleanup in fleetbase-js, organization lookup, a package-publishing workflow, a release, and a Node adapter fix. The next work moved through storefront-js, the Navigator mobile application, and Storefront’s application architecture.
That sequence built a map:
- SDK packages defined contracts used by products;
- applications consumed those packages on different runtimes;
- Laravel services held domain behavior and validation;
- Ember packages supplied shared components and extension points;
- release automation determined whether a fix actually reached a user.
Without that map, a local fix could be correct in one repository and incomplete in the product.
03
A dashboard change crossed three layers
One February change is a clear example. A customizable widget-based dashboard required coordinated work in three repositories:
ember-coreadded widget registration behavior;core-apiadded dashboard and widget services;fleetbaseconnected the capability to the product.
The visible feature lived in the application, but its contract and persistence belonged elsewhere. Treating it as one frontend ticket would have left the system split across incompatible assumptions.
This was the practical value of learning the repository topology: knowing which part of the change should not be implemented in the file currently open.
04
Shared code needed a real home
Another group of March pull requests moved component-context utilities into ember-core, then removed duplicate local versions from FleetOps and Pallet.
The code change was modest. The architecture decision mattered more. Shared behavior belonged in the package that owned the convention, not copied into every application that happened to need it.
The same principle appeared in SDK typing, storefront rules, model reflection, package releases, Android fixes, customer/order views, permissions, and boot-screen behavior: follow the product behavior across repositories, then make the smallest coherent change at each boundary.
05
Accepted work was the test
In my own repository, I can merge my interpretation of the system. In external open source, the change must fit maintainers’ constraints, release direction, and review.
Forty merged pull requests show that the learning became useful to Fleetbase. The six unmerged requests are part of the record too. Contribution includes proposals that are superseded, rejected, or no longer worth the change they require.
That is a healthier feedback loop than measuring learning by the amount of code produced.
06 · Outcome
Result
The public record shows accepted work across SDKs, package publishing, Laravel domain code, Ember extension points, storefront products, React Native fixes, dashboard behavior, shared utilities, permissions, and releases during a four-month engagement.
It does not prove sole ownership of any Fleetbase product. It proves that I could enter an unfamiliar, multi-repository system and become useful across its actual boundaries.
07 · Reflection
What I learned
The fastest way to understand a foreign codebase is not to read every directory in order. Trace one real product behavior through every repository it touches, make one change small enough to review, and let the maintainers correct your model.
Breadth becomes credible only when the work lands.
Links
Next case study
Open Apps