
For the people who hire
Engineers here write what they built, what they decided and where they got stuck — every day. You read that before you know their name.
In the order a buyer actually reads.
Not ours — theirs. A founder who hires from here gave us the order, word for word: the working outcome first, the code next, the reasoning third. A log written for a role can be performed. A running thing cannot.
It eliminates double-booking race conditions and streamlines appointment scheduling and cancellations.
“Buki Provider Registry & Seam Architecture, 1. Loose Coupling: The Sync Engine does not directly depend on any accounting platform. 2. Easy Extensibility: We can easily add new accounting platforms without changing the main Sync Engine code. 3. Separation of Concerns: Each part has its own job. 4. Maintainability: If we change one provider, we don't need to change the others. 5. Testability: We can test each provider separately. 6. Reusability: We can use the same common interface for different providers. 7. Scalability: We can easily support more accounting platforms in the future 8. Fault Isolation: If one provider has a problem, it doesn't need to affect the other providers. Main Takeaway: The Provider Registry makes Buki easier to manage, update, test, and add new accounting platforms.”
We use loose coupling because it makes the application easier to manage, change, and grow without affecting other parts of the system.
Written 10 Nov 2026 · unedited
estimating a fair resale price for a used vehicle using historical data and machine learning.
“# Buki – Build Log | Day 4 **Objective:** Improve the Sage Accounting normalization layer and strengthen automated testing. ### 1. Work completed - Refined `src/data/canonical/sage/normalize.ts`. - Implemented Sage ledger account normalization with support for five canonical account types. - Removed automatic classification of unknown account types. - Implemented customer, supplier and combined contact classification. - Preserved missing optional fields instead of inserting artificial defaults. - Expanded invoice normalization to handle invoice types, lines, statuses, currency and financial amounts. - Reviewed bank transaction mapping and canonical ID consistency. - Expanded `normalize.test.ts` with account, contact and invoice test cases. ### 2. Verification results | Check | Result | |---|---| | Earlier Sage tests | 9/9 passed | | Expanded Sage tests | 13/14 passed | | Full test suite (earlier run) | 36/36 passed | | TypeScript typecheck | Passed | ### 3. Issue identified One expanded invoice test failed: - Expected status: `unpaid` - Actual status: `paid` - Affected test: `normalizes a sales invoice` The invoice status mapping requires correction and verification. ### 4. Learning and next steps - Improved understanding of data normalization and validation. - Practised handling optional fields and unknown classifications safely. - Expanded unit testing for financial records. - Investigate and fix invoice status mapping. - Complete bank transaction tests. - Verify Sage API field mappings against actual responses. - Continue towards Sage authentication and provider integration. **Overall status:** Account and contact normalization are implemented and tested. Invoice normalization is under development, with one outstanding test failure. Live Sage integration has not yet been completed.”
Written 9 Nov 2026 · unedited
Unlike traditional fake news classifiers that only predict whether a claim looks fake or real, TruthLens AI retrieves external evidence, ranks relevant articles
“I've been thinking about how we evaluate machine learning models. A high accuracy score looks good, but it doesn't always tell us whether a model is useful. Imagine a model that detects a disease. Missing a positive case and incorrectly flagging a healthy person don't have the same consequences. That's why I want to understand not just how to improve a model's score, but also how to choose the right metric for the problem. The question I'm exploring: Are we optimizing the model for a good score, or for the outcome we actually care about?”
Written 11 Oct 2026 · unedited
Four steps. No sales call.
You get access — free, and in under a minute.
You read 307 engineers with their names still hidden.
You post a role, and people raise a hand in writing.
You keep the read — the record stays, whether you hire now or in six months.
Read the pool tonight.
Free, and nothing here charges you. It is a hiring surface, so we ask for a work email — RK reads the list. Names stay hidden until you flag someone and RK makes the introduction by hand. Nobody is scored, ranked or sorted for you.