Fintech / Enterprise SaaS / Selected work

    A clearer path from application to decision.

    A shared workspace for lending operations, from reviewing applications to managing approvals.

    All work
    Client
    Vertebra Financial Services
    Our contribution
    Product engineering
    Focus
    Lending operations
    Vertebra lending operations dashboard
    Vertebra Financial Services / Product overviewView full image ↗

    One place to review an application

    Lending teams work across identity records, credit information, bank statements, and application history. The Vertebra interface brings these details into a shared underwriting workspace.

    The design gives officers a clear starting point: their assigned applications, the information needed for a review, and the next action available to them.

    Queues that reflect the work

    Unassigned applications, personal queues, and the master registry have distinct views. This separates individual work from the wider operation without requiring a different tool.

    The dashboard surfaces outstanding approvals and activity so a team can see where attention is needed.

    Building around approvals

    The interface supports a maker-checker workflow: actions that require another person's approval are presented as requests rather than immediate changes. Labels and available actions reflect the configured approval policy.

    React and TypeScript provide the interface foundation. TanStack Query manages server data, while Zod checks incoming data against expected structures.

    A closer look

    From the overview
    to the details.

    Engineering decisions

    Considered beneath
    the surface.

    01

    The Two-Key Rule

    A configurable 'Maker-Checker' workflow embedded into the hook layer, presenting configured actions for secondary approval.

    02

    Feature-Sliced Architecture

    A strict codebase hierarchy that isolates domain logic (Loans, KYC, Recovery) to keep responsibilities clear as the application grows.

    03

    Action-First UX

    Replacing passive data viewing with 'Action Queues' that direct officers immediately to urgent tasks.

    Explore an implementation detail — useMakerChecker.ts
    export const useMakerChecker = (actionKey: string, mutation: UseMutationResult) => {
      const { data: settings } = useGetApprovalSettings();
      
      const isApprovalRequired = useMemo(() => {
        return settings?.actions[actionKey]?.enabled ?? false;
      }, [settings, actionKey]);
    
      // Dynamically adapt UI text and logic based on global security policies
      const buttonText = isApprovalRequired ? "Submit for Approval" : "Execute Action";
      
      return { 
        execute: mutation.mutate, 
        isApprovalRequired, 
        buttonText 
      };
    }
    

    Another piece of work

    MicroFundry

    Explore the project

    A good place to begin

    What are you
    working on?

    A new idea, an existing product,
    or a problem worth solving.

    Let's talk