Senior Rust Developer Role - Finhaven

I was part of the core API team that developed Finhaven Technology's "Financial Private Markets", a fintech product written in Rust.

Finhaven

Developing Finhaven's "Financial Private Markets" Platform

Finhaven Technology set out on a significant venture to create a capital raise platform with private trading support for secondary markets. The need for such a platform arose due to the increasing demand for a comprehensive solution that could seamlessly manage capital raise processes while ensuring efficient trading support for secondary markets.

To expedite the process and accurately identify business requirements, the company adopted the principles of Domain Driven Design and Event Sourcing. This approach provided an in-depth understanding of the domain, revealing the complexity in the heart of the business model. Moreover, Event Sourcing ensured that all changes to an application state were stored as a sequence of events, allowing the state of the business model to be recalculated and also provided extensive auditing capabilities.

The chosen development language for server-side APIs was Rust, while React was employed for the front-end framework. The selection of Rust stemmed from its promises of speed and memory safety without a garbage collector. Its ability to handle low-level tasks, such as maintaining a high performing system and managing concurrent processes, made it an ideal choice.

However, in 2018, when I began my tenure with the company, finding Rust expertise was a considerable challenge due to the nascent stage of the language's adoption in the industry. Consequently, our team needed to quickly ramp up our knowledge and proficiency in Rust to get things done efficiently.

Over time, despite the buildup of substantial technical debt, we successfully executed a significant code migration to the latest crates. This process was crucial to ensure the application was up-to-date and benefited from the latest features, security updates and performance enhancements offered by newer versions of the crates. The evolution of the platform served as a testament to our team's hard work and determination, contributing greatly to the company's mission of providing a robust and efficient capital raise platform.

Role and Responsibilities

In my role as a Senior Rust Developer at Finhaven Technology, I utilized my extensive software engineering experience along with my knowledge of RESTful API principles to shape and develop their product. Adhering to best practices in software design, I implemented Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), and Event Sourcing methodologies to build a complex domain model for the product. Complementing these techniques with Test-Driven Development (TDD) ensured a high-quality, robust, and efficient solution that aligned with the company's mission and vision. My responsibilities encompassed:

  • New Feature Development: Contributed to the development of new feature requests, specifically for the API services layer.
  • Code Review: Participated in reviewing pull requests to guarantee the code aligns with project requirements and adheres to best practices.
  • Lead Migration Efforts: Lead the upgrade effort from Actix-web 0.7 to the latest Actix-web 4.0 crates. Moved to using all asynchronous crates, for example migrating from Diesel to Sqlx.
  • Bug Fixes: Diagnosed and resolve bugs, ensuring the robust performance of the product.
  • Mentorship: Provided Rust and general web applications mentorship to the junior developers.

  • Linux environment using:
    • Rust
    • Actix-web
    • Sqlx/Diesel
    • PostgreSQL
    • Redis
    • GCP PubSub
    • React
    • Python
    • Docker
    • Kubernetes
    • Sentry
    • Hyperledger Fabric
    • NodeJs
    • Typescript