Skip to main content

SaaS Lending Software

557 words·3 mins
NICK
Author
NICK

Role: Automation QA
Domain: Fintech

                           - Stack -

Python3, Django3.2, PyUnit, Docker, PostgreSQL, Postman, Swagger

                      - Project Overview - 

Lending management solution software - is a project to automate each step of lending and to deliver end-to-end lending solutions for credit unions, financial institutions, and alternative lenders, featuring advanced automation for credit lifecycle management, instant credit decisions, and optimized risk management.

The end-to-end lending management solution streamlines the lending process by consolidating all lending functions into a single system. It enables financial companies to provide a seamless, digital, real-time experience for their customers and empowers financial institutions to offer credit products across various segments, including Retail and Commercial.

                       - Responsibilities - 

List of my responsibilities in a clear, task-oriented format:

  1. Testing Strategy and Planning:
  • Develop a comprehensive test plan outlining scope, objectives, resources, and schedule.
  • Establish test KPIs to measure test coverage, defect density, and test execution progress.
  1. Test Documentation:
  • Design positive, negative, and boundary test scenarios.
  • Document automated test cases with steps, expected results, and objectives.
  1. Test Preparation and Execution:
  • Prepare realistic test data for thorough scenario testing.
  • Write, maintain, and execute automated test scripts.
  1. Reporting and Communication:
  • Track and report test KPIs to ensure targets are met.
  • Document and report bugs.
  • Prepare detailed test result summaries and generate management-oriented test reports.

When the team has no other QA members, you can find yourself mentoring developers on testing practices, code quality, and automation techniques, laying the groundwork for future QA members.

                   - Challenges & Solutions -

The major challenge was to execute multi-layered testing—including Functional, Integration, and Use-Case based End-to-End testing—on a poorly designed, buggy monolithic project, to ensure the software met both functional and business requirements.

For this, refactoring had to be undertaken. A modular monolithic architecture with a layered structure enable intermodule communication through a centralized database. This approach allows for a clean separation of concerns while maintaining manageable complexity within a single, unified codebase.

If the team had more freedom and resources to go further, the architecture could evolve into a microservices-based design. This would feature modular services, such as Loan Origination Service, Credit Decisioning Service, Loan Management Service, Debt Collection Service, Loan Servicing Service, and Reporting and Analytics Service. Additionally, shared services would include user authentication and authorization, an event broker, distributed data management, a data and integration layer for API interactions and DTOs, and potentially even a machine learning for predictive models or decision engine for ruled-based decisioning.

                  - Reflections & Takeaways -
  1. Lessons Learned:
  • Being understaffed on a project can rapidly accelerate the development of both hard and soft skills, as you often find yourself simultaneously taking on roles like Head of QA, Manager, and DevOps. However, this intense workload can lead to burnout.
  • Working excessively makes little sense, especially when companies typically prioritize their interests over the well-being of employees.
  • If the founders themselves lack genuine passion for the product, even a competitive salary might not be enough to inspire engineers to fully commit to collaborative efforts.
  1. What Worked Well:
  • Using Domain-Driven Design (DDD) to structure a layered system.
  • Applying Test-Driven Development (TDD) during parts of the refactoring and backend testing.
  • A well-executed frontend layer, which made it possible for the founders to market and sell the product to clients in distant regions.
  1. What Could Be Improved:
  • Better planning and management, more efficient code, more robust testing and infrastructure.