The Little King's Gambit

Technology Product Platform Architecture

A Dad's Sunday

I'm spending my Sunday afternoon at my youngest's first chess tournament. It's a new situation for both of us. While I played in a couple of elementary school chess tournaments as a kid (any excuse to get out class), this is different. Not sure why I clarified that I was a kid during the elementary school tournaments. Admittedly, it would be really weird to enter as an adult. And already, I digress.

The kids here, like mine, want to spend four hours doing it. And it's weirdly more intense than I expected it to be. Not The Queen's Gambit intense, but chess is a game of thought, and there are probably thirty kids in here, all trying to beat their opponents and keep their emotions under control, and there is a lot of hard thinking going on. You can feel it in the musty air of the bridge club that it's being held in.

Chess

That said, I'm intentionally trying to avoid being the parent that is adding to the stress. While some of the other parents are hovering, watching and hanging on every move, I remember when I played more traditional athletics, and there was nothing that ratcheted up the intensity level and pressure like having my grandpa Gordy come watch, and nothing that made a loss hurt more than striking out or flubbing a routine ground ball in front of him. I want my kid to know that I support him and that I'm proud of him, but I figure I can tell him that, and he doesn't need me watching his every move in real-time adding to the pressure of his first tournament.

So, instead, I sit in the background and try not to appear like I'm paying too much attention. And I'm typing this in an effort to try and help that cause. He's moved on to the second round, so perhaps I should move on to the point of this post. Which, full disclosure, is actually just to preoccupy me.

Beta

We're finally launching (beta) later this month. Holy shit, it's been a long time coming. Way too long. A year longer than I'd hoped. And it pains me to even type that, but it's true. And I need to reflect on that. To figure out what I did wrong to cause it (a lot), and what I learned from it (even more).

I learned that I am a startup addict. This isn't my first startup, or my first product, and in all honesty, the opportunity I was gifted isn't a normal startup. I'm lucky (in some ways) to be associated with a parent company with deep pockets and deeper levels of patience. That's not always a blessing, mind you. It is a financial services firm, and it tends to function as such. They know they're great at institutional investing (it's been their bread and butter for decades), but they're not a software company, so as painful as I'm sure it is for them at times, they do a really impressive job of keeping us at arm's length.

And, realistically, if we weren't backed by a deep pocketed and patient parent company, we'd already be to market. Months ago. Because we'd have to be. We'd have made it by being too cowboy. By cutting too many corners. By making too many judgement calls in the heat of the moment, and inevitably, many of those would have turned out wrong. We'd have significantly more real-life data points (incredibly useful), but we'd have run the risk of gaining those data points against a subpar product. In New Zealand, that can be fatal; you only have five million people in total, so if we turned customers off with a shitty product, we probably wouldn't get a second chance.

I've learned a tonne. About myself. About others. About leadership. About management. About burnout. About letting my emotions get the better of me. About saying the wrong things at the worst times, and of saying the right things when I should have said nothing at all. About the weight of my words, and the ramifications they can have. And more than everything else, about how much more I need to learn.

But we got there. And we had to; this organization needed a win just to let out a collective sigh. To take stock and lick our wounds. To celebrate our successes. And as we shift from beach takers to beach holders (our greenfield development completes and we move to supporting and extending the solution), we get to take an opportunity to reset, and make sure we're focused on the right things: our customers, and our employees, and on our metal health, and making this the kind of company we all envisioned it to be. And on giving back to the community in which we work.

The Engineering teams are in a really great place. Not perfect (it never is), but high performing. I secured a Data Science and Engineering Manager that I'm really excited about, the Financial Engineering team is nailing it, and the "Full Stack" team is, too. The Managers in my organization have my full faith and trust, and those who they serve (their respective teams) are all outperforming what I could have hoped for at this point. The Seniors are gaining mastery and finding their voices, while less seasoned folks are well on their own journeys.

And we're innovating. We're truly pushing the envelope from a technology perspective. We took a serverless architecture to production. We're able to deploy and pivot and build fast. Solutions are often developed in hours or days, not weeks or months. We're starting to explore AutoML, we're getting deeper into experimentation. We're layering technology on top of customer support to automate the minutia with "weak AI". And that's without even mentioning the features we're planning on building out.

It's an exciting time, and I'm incredibly proud of the people that got us here. I wouldn't say that out loud, of course (I don't want them to think I've gotten soft), but this URL is a safe place. Nobody reads this drivel, luckily. Hell, I don't even proof read it. And as much as I'm proud, I'm twice as optimistic, about what is to come. In part because I don't know what that is; none of us do. And as self-admitted startup junkie, I wouldn't have it any other way.

Offspring just wrapped up the third round. He had that kid dead to rights and let her off with a weak stalemate. Put her in a position where she couldn't move any pieces, but wasn't in check. He's going to be thinking about that one later tonight. I have to say, I hope he is enjoying it. It's pretty cool. And it's really hard to pretend like I'm not paying attention.

Products and Platforms

I mentioned earlier that our parent company affords us certain luxuries (paychecks and patience), and I'll speak (out of turn) for them and say that they've probably learned as much about supporting a software FinTech for the first time as we've learned being their offshoot. And that's actually the point of this post (yep, finally getting to the point, almost 1300 words in; get off my back).

This whole thing started as an idea that was simple: build an investment app that leverages the strengths of our traditional/institutional parent company, does it digitally, reaches different demographics, and does something positive for our customers (specifically: helping them save money and gain financial literacy). Easy enough. The original plan was to hire a small handful of service providers (farm out the front end and the back-end, have another service provider manage the cloud infrastructure), and hire the bare minimum internal resources to herd the cats and be the face of the app. Good plan, except none of that worked out. At all.

Way cooler shit happened, and is happening. I came on board in October 2019, and we made the decision to bring things in-house. We also decided to rebuild the plane in-flight. Well, probably a better analogy is that we were on a hangglider that had leapt off a cliff, and we decided to build a space shuttle in-flight. The plan, and partial implementation that I inherited was a monolith microservices backend, written in Ruby on Rails, running on containers on an AWS Fargate instance, essentially generating SQL for a Postgres RDBMS. I can tell you this: nothing about that last sentence makes me happy. It's difficult for me to get behind leveraging a RDBMS in today's day and age (especially positioned there architecturally). I'm not now, and have never been a Ruby on Rails guy. I have plenty of friends who are. And they all think I'm a dick about it (they're probably right), but it's just never been my jam. And I will always choose serverless and FaaS over microservices for applications like the FinTech mobile app that I'm talking about here.

Hangglider

But more importantly, and is often the case, the idea that was our starting point ended up being our North Star, and along our meandering journey to reach it, we created something different. Actually something in addition to the product itself, and that is a platform on which it runs. And that's FINALLY what I want to really want to explore here.

I have probably read Steve Yegge's 2011 internal Google+ memo a hundred times over the past decade, and I think it's more brilliant every time I do. And while there are aspects of Jeff Bezo's 2002 API Mandate that are a bit cringeworthy (mostly, the idea of coming into work one day and receiving it out of the blue, and specifically #6...fun culture), it's right, specifically if building a platform is your goal.

And it's become my goal for this organization. That isn't going to be easy, since we are still working towards releasing our product, and it's statistically a bahooliajillion times harder to retrofit platform when you start as a product (someone should check my math there), but it's where the big action is, and startup junkies are always looking to build the next big action.

As we're still in stealth mode (beta), I'll remain enigmatic about the details of the product we're building, and the architecture around the platform, too, but I will say that in order to deliver on the product (again, the mobile app), certain functionality needed to be built, including KYC (know your customer), which includes anti-money laundering (AML), compliance, integration with a custodian financial company, and an entire money flow for generating market buys and sells, a full build/integration with a Customer Relationship Management application, integration with monitoring, observability and alerting, OAuth, data archival, and an entire Data environment (including data science, data visualization, data management, experimentation via A/B/n testing, weak AI, and all the data engineering that supports and enables it), amongst other functionalities and capabilities. Full disclosure: the A/B implementation is a work in progress, but we're getting there.

My point is that we were wise (or perhaps lucky) enough to realize a vision before it presented itself clearly, which was that we needed all this stuff to support this product, but we also needed all this stuff to support any FinTech product, so we build it in a very modular fashion. But even with that knowledge and enough of an understanding of that vision, we were still building a product first, and thus, we've got some work ahead of us to adhere to the Bezos mandate.

And that's really where we're going to start to focus our time, in addition to building out new features and supporting the product. That's going to mean really disciplined testing, since the proverbial shuttle has now left the orbit, and some deep thinking about the right way to do this. I always tell people that code is never reusable until the first time it's reused, and while I support writing code for reusability, trying to abstract things too far is difficult to backtrack on, and often even more difficult to maintain and extend. But I don't actually see building a platform (or extending the platform behind the product for reuse) as the same as code reuse. Code reuse is often putting shared functionality into reusable libraries, for instance, and we've done that at the right level to support the product already. This is more about making sure that all of those modules I called out previously are separated at the right points (example: there are no backdoors where, for instance, between KYC and AML), and are connected in the right ways (including, but not limited to RESTful APIs, for example).

Shuttle

See, the thing is, we could theoretically white-label this platform, or extend it for other product offerings, or leverage certain components/modules of it to rapidly increase the rate of digital transformation for (our parent or other) organizations, or generally create a FinTech incubator (as much as I believe anytime someone uses the terms "incubator" or "lab" in conjunction with building out new technology ideas that they're generally full of shit). That said, I am convinced that where we find ourselves at this point in the history of the world, we have the closest thing ever to the keys to the nerd castle, at the intersection of cloud computing, serverless architectures, and function-as-a-service, so long as the platform is built with proper connectivity between them (see the Bezos mandate) and so long as the modules are applicable to the focuses of the incubator (e.g. a free picture sharing app doesn't have a lot of use for AML).

And that's where we find ourselves. At that intersection, and with this chance falling in our laps. The perfect moment in time: a parent company with financial means and patience, who is capable of understanding the vision (enough), a platform that is naturally applicable (from architectural and cost standpoints), that is cloud-native, and is already supporting a product. Now it's up to us to recognize the right way to modularize it, and make the various components into building blocks that can be easily "turned on and off" and integrated with disparate systems, and extended to be applicable to new ideas. What an opportunity...what a stroke of luck to be at this place at this point in time. And how lucky we are to have some control over what this could become.

Good timing; boy offspring has just wrapped up his eighth and final match of the tournament, so that's my cue to do the same. He missed out on winning his division by tie breaker points, so that's pretty cool (probably bittersweet for him. I suspect he may be a bit disappointed), so I'll commiserate with him and explain that in my first tournament, I took third place, so he's already doing better than I ever did. Little shit is most definitely smarter than his old man, and destined for far bigger things. Not sure that will help ease the chagrin, but perhaps some ice cream might. It never hurts.