This commit is contained in:
counterweight 2025-06-15 20:05:07 +02:00
parent bf1f7340fb
commit 0ebf0ad8b5
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
3 changed files with 131 additions and 0 deletions

View file

@ -0,0 +1,9 @@
# Event Sourcing Examples
https://github.com/eugene-khyst/postgresql-event-sourcing
A very thorough example and explainer on doing event sourcing with Java and Postgres.
https://github.com/tobyhede/postgresql-event-sourcing/
This one I like because it has very good examples on how to update snapshots on every new event.

View file

@ -0,0 +1,122 @@
# 2025-06-09 Galoy interview
On 2025-06-02 I interview briefly with Justin Carter (https://x.com/bodymindarts), CTO of Galoy (https://www.galoy.io/), for this vacancy (https://web.archive.org/web/20250602172751/https://bitcoinerjobs.com/job/1741056-data-scientist-core-banking-bitcoin-platform-galoy) that I found on bitcoinerjobs.com.
## Prep notes
### About me
My cover letter
```
Hi! I've seen your vacancy and it felt like it was written for me! I'll share a few bullets to go along with my CV hoping you find my profile was also made for this vacancy :) - I fell through the rabbit hole years ago. I can explain why there is no second best, why I only have one chair and how I came for the money and stayed for the revolution. For the past 3 years, I've been organizing my local Bitcoin meetup with a few fellow plebs. I've lost enough sats fiddling around with lightning to make me cry. I've used Blink to charge thousands of € in services provided to others. I have multiple copies of The Bitcoin Standard with the only goal of lending them out to eager minds. I daydream about the Sovereign Individual future playing out. In summary, I'm a Bitcoiner. - I've spent my whole career working in Data. I've worn multiple hats and I'm familiar with many tools, types of challenge, org settings. I've worked in large and boring (but professional) suit and tie corps. I've been in small, guerrilla startups. I think it's all relevant for what you look for in the vacancy. You can check more on my CV. - I like finance, I like accounting. I do my personal accounting with double-entry accounting since many years ago. I track and measure the performance of my investments properly. I'm excited about the way Bitcoin and a more modern financial industry can make finance great again for the common folk. I think that, thanks to Bitcoin, we have a shot at making finance a blooming, entrepreneurial and innovative industry like history has never seen, instead of bearing with the corrupt, parasitic oligarchies that have dragged us down for decades. - I've been tracking what you guys are doing for years time and I think it's great stuff. Blink has been a great wallet. Your open-source backends stimulate my daydreaming on a world with thousands of minibanks operating on ecash. I hope that piqued your interest. Looking forward to chatting with you.
```
My selling points:
* Savvy with the domain (even though no professional banking exp)
* I won't shy away from going down deep technical Bitcoin rabbitholes
* Happy to lead myself and to lead others. Can work with goals, no need to be handheld
* Have contributed to Open Source in the past (like Bisq)
* Used to run lightning.
* Familiar with ERPs. I can see corporate needs easily:
+ Bitcoin-native accounting
+ Permission management, approval chains
+ Order vs Settlement impedance, optimizing fees, timelyness
+ Special accounting needs (lost bitcoin, non-refunded funds, etc).
* I get Lana. I'm currently looking into Firefish to avoid capital gains tax.****
* Tech:
+ Familiar with dbt
+ Familiar with Postgres, Bigquery
+ Understand the relevance of event sourcing for financial apps, your challenges around transactions and consistency, needs to reproduce history and have auditing
+ Like to fuck around with Javascript apps
+ Haven't worked with meltano but I'm well familiar with similar EL tools
+ Haven't worked with Bigquery but yes with redshift, generally i'm used to the DWH life
What I think are your biggest challenges in your domain:
* Perfect auditability
+ Need to use immutability everywhere
+ Actions must be motivated ("money movement X was caused by command Y initiatied by actor Z with grant I")
* Impedance mismatch between accounting books and bitcoin/lightning state
+ Transactions to make inconsistencies impossible
+ Automated alerts to detect inconsistencies?
* Integrating with fiat core banking solutions
* Lightning
+ LSPs, balancing, liquidity
+ Routing and cost saving
* Ecash is probably very interesting and a foundational change to your domain, but perhaps you're just ignoring it because it doesn't fit with your current ideal customer profile? Or perhaps you're more dreamy than I think?
Your stack:
* Rust
* GraphQL for presentation
* PG for backend persistence
* BitcoinD
* LND
* React
* Kubernetes+Helm to manage services deployment and scaling, Terraform for infra
*
### My questions
General:
* What is your story within Galoy?
* You guys started with Blink, left that behind. Then Cala, Bria, now Lana. Stablesats along the way. Could you shed some light on what is a true priority right now?
People/Team:
* I am familiar with you, Andrew, Nicolas, Sebastien and Jose. Who's in the core app team.
* You're an extremely distributed team, right? Where's everyone?
* How do you work?
+ Who envisions product? How do you prioritise?
+ What are your rituals, comms strategies, documentation, etc.
+ Are you currently operating this stack for anyone? If so, do you have a dedicated ops team? Would you offer that service?
* How do you relate with the "data area"? How close or separate are those?
* Any recent fuckups/successess
Data stack:
* Why meltano and why dbt?
* How do you guys build and maintain data contracts?
* Your testing in the core app seems dramatically strong. Are you following something similar in the data side?
* Besides reporting for the current salvadorian bank, what scopes do you have in the roadmap for the data area?
* What are your expectations for this vacancy?
Stuff I've seen in the repos:
* Cala
+ Cala's code has USD and BTC as currency units. I'm surprised you didn't use Sats, and perhaps also Cents a-la Stripe.
+ eventually_consistent field in the `cala_accounts` table. Wut?
+ Event sourcing, cool
* Bria
+ Cala vs SQLX, I don't get it. Is Bria also storing accounting primitives?
* Lana
+ I found this very cute python scripts to "export" reports. That's where you realised you needed dbt?
* How much money have you lost in production?
* Do you (Galoy team) run a production instance for your own usage?
Tech:
Vacancy:
* What's the story around it? What are the needs?
* Replacing Sebastien or José? Or expanding the team?
* Data Scientist vs Data Engineer?
* What bits of my profile do you see fitting/not fitting.
Things I've deduced:
* You've scored Lana with one of the big banks in El Salvador (Agrícola, Cuscatlán, Credomatic, Davivienda, Hipotecario) and are now rushing to catter them? You're also integrating with the government supervisor (SSF).
* You use Metlano and dbt in Lana to make reports based of the backend, which you hold in BigQuery.
* You have a big focus on Lana right now.
* You're very excited about regulatory changes in the US
Crazy ideas from me:
* lightning is very stocastic and will need a lot of data driven mgmt
+ Peer selection and channel mgmt
+ fee setting
+ participation in liquidity markets
* million ecash banks
* wallets as trust intermediaries, always looking for the right custodian
* ecash exchanges, trust markets
* automated mint discoverability
### Interview notes
...