Note: this only reflects my personal work this month. Visit the BTC Map Blog for consolidated monthly reports.
Ansible
BTC Map servers are managed by different people and have no setup instructions, which makes it hard to maintain or reproduce our infrastructure. I’m trying to fix this with Ansible and have made some progress cleaning up and formalizing a few things on our main API server.
The most notable change is our API logging. We had a few discussions, and the consensus was that we should keep logs for only 30 days. Logs are valuable for debugging, but we don’t want our users to leave a permanent record, even if it’s just IP addresses and other non‑personally‑identifiable information.
Aside from privacy concerns, we don’t have much disk space, and keeping more data than necessary slows down our workflow. Now, 30‑day log retention is automated.
Observability
On the API side, I included top user agents in the daily infra report and added a few new analytical RPCs documenting the most useful queries.
I also started working on a general admin dashboard endpoint. It may become part of our website or live as a standalone service at dashboard.btcmap.org or something.
Android
The update checker logic was tangled up with the main UI controller, which made it hard to maintain and test. I pulled it into a standalone component and added a few tests.
I also tightened up back button and gesture handling and removed a couple of shared mutable state issues that occasionally caused some annoying bugs.
Future Plans
I don’t have any specific plans or hard commitments, but I will probably focus on these three areas:
- Dashboard endpoint + UI, to improve observability
- Refactoring and improving the place import pipeline to onboard new wallets and other merchant sources
- More infrastructure documentation and formalization to simplify maintenance and address the bus factor