DUOLABS
Work

Overseas stock trading service

We handled feature development and maintenance for a brokerage's stock trading app that local investors overseas use to check quotes, place orders, manage holdings, and follow market news. If quotes and orders look out of sync, investors stop trusting the app, and if sign-in fails they cannot even start trading. We built a new sign-in flow using a code sent by text message and an address entry that follows the local administrative divisions, and tracked down and fixed defects that appeared when moving between live quotes, the watchlist, and order screens. We maintained it in the same period as the same firm's app for another country, separating fixes shared by both from handling needed only in this one.

Launch
2026
Client
Vietnam arm of a Korean securities firm
Type
Investing & Assets

01 / 04

A sign-in that shows the next step even when the code is late

Signing in to the stock trading app ends with entering a code received by text message. Every state a user actually meets, from requesting the code to entering, verifying, expiring, resending, and hitting the attempt limit, became its own step in the screen flow. The screen shows the time left and when a resend becomes possible, clears the entered code on resend, and blocks the same request from going out twice. Error messages and button states differ by situation, so even when the network drops or the server is slow, the user knows what to do next.

A sign-in that shows the next step even when the code is late
02 / 04

Address entry where choosing a region narrows the next list

Addresses where the trading app is used are organized into four administrative levels: province, city, district, and ward. Instead of typing an address as free text, the user picks it through dependent menus in which choosing a region lists only the areas beneath it. Changing a higher level clears any lower choice that no longer fits, so a combination that does not exist cannot remain. Local spellings of place names, the order of selection, and required fields were all adapted to the app's screens.

Address entry where choosing a region narrows the next list
03 / 04

A trading flow kept in sync as users move between screens

In the stock trading app, live quotes, the watchlist, entering an order, and switching order screens form one continuous flow. Investors place an order right where they are watching the quote, and orders for both cash and margin accounts go through the same app. We analyzed and fixed issues along that flow. The focus was on what directly decides whether investors trust the app: the timing of incoming quote updates, state that no longer matched after returning from another screen, and handling of error responses. On top of this flow sits an order screen where the trading mode changes without leaving the menu and entering a target amount fills in the quantity.

A trading flow kept in sync as users move between screens
04 / 04

Shared fixes and country-only handling, split while running two apps

Maintenance of the stock trading app ran in the same period as the same firm's investment app for another country. Comparing code and feature differences between the two, we separated fixes that went into both from handling needed only in this country's app. After each new requirement went in, we also checked that the existing sign-in, order, and quote flows were unaffected.

Shared fixes and country-only handling, split while running two apps

Highlights

01

SMS-code sign-in covering request, resend, and attempt limits

02

Local address entry that narrows down through province, city, district, and ward

03

Trading-screen maintenance that fixed state mismatches on quote updates and screen return

Insights

Read the blog