(Portfolio Update) Bitcoin IRA - Investing in cryptocurrencies using your retirement account
When I transitioned from my Financial Markets career to Frontend development, I expected to leave the world of finance behind. Yet, as it turned out, I could not escape that easily 🤔. My first three projects at STRV were all related to finance by pure coincidence. Besides Rich Uncles (opens in a new tab) (a REIT investment platform, renamed to Modiv) and Stride Health (opens in a new tab) (an insurance platform), I also worked on Bitcoin IRA (opens in a new tab), a platform that allows you to invest in cryptocurrencies using your retirement account.
Obviously, for each developer it is very helpful to understand the context of the client's business, because while developing new features you are able to predict possible edge cases and actually shift the client to the right direction by understanding both the business logic and possible hurdles in development. So all in all, it was a good way how to start my career at STRV.
At the time (August 2020), Bitcoin IRA already had a working web application in React, so it made sense to expand the offering for a mobile solution using React Native, allowing client's engineers to eventually pick up React Native and maintain both applications. At STRV, our team consisted of two React Native engineers, one PM, one QA and one designer, with backend provided by the client. Especially having own STRV designer is always a big win resulting in faster development thanks to a consistent design system and well structured Figma files. You can see the simple and clean designs in the official STRV case study here (opens in a new tab).
This was officially my first React Native project, therefore, as it used to be during my financial career, I just surrounded myself with various information sources to consume lots of React Native knowledge quickly (Youtube, Twitter, podcasts, Reddit, Github repos) and apply it to the project. Eventually after 3-4 months of development, my senior colleague moved to a different project and I was left to finish the project on my own. This was a great experience and source of many lessons I documented in my article about the transition from React to React Native. The biggest lesson was obviously successfully launching the application to production, which not every juniorish React Native developer gets to experience that early and learn all the ins and outs of Google and Apple store release management. Thanks to that I got rid of my remaining imposter syndrome and I was able to move on to more challenging projects.
Regarding the tech stack tidbits, it included Redux Toolkit combined with Redux Sagas for a better control of API requests and data flows, which is crucial for each financial application. Unfortunately, React Query was just becoming a thing and it was too risky to bet on it and as a newcomer to React Native I didn't have enough leverage to push for it. From a hindsight, it would make the development much easier and more maintainable. Especially polling for updated asset prices during a trading flow would be a piece of cake with React Query.
Similarly, forms are crucial for financial apps and Formik & Yup were the best to offer for form handling and validation at the time, but these projects became quite hard to maintain for the community with Github issues piling up, therefore I eventually refactored everything to more agile React Hook Form & Zod, which both have became my go-to and battle tested forms solution.
Finally, to boost security and improve user experience, among other measures, biometric authentication was implemented, which eventually made me to document it and share lessons in one my first public talks (opens in a new tab).
Checking the 4.5⭐️ rating on both AppStore and Play Store, I am very happy with the outcome of my first React Native project. Staying eventually alone on the project was a crucial test for myself and I am glad I was able to eventually release the project to the client's satisfaction. Also this was an era before Expo and EAS became our go-to at STRV, therefore I had an opportunity to get hands dirty with native code changes, React Native upgrades and certificates management - a valuable lesson some developers might not get to experience with Expo these days.© Aron BerezkinRSS