Frontend Engineer for USDC-Backed Crypto Card
Orçamento: $90.0 - $120.0
HOURLY / FULL_TIME
⭐ 0.00 (0)
United States
typescript, tailwind-css-framework, styled-components, react-js
Qualificações preferidas
- Experiência: Especialista
We are hiring a senior Frontend Engineer (React / TypeScript) for Quay ($QUAY) — a USDC-backed crypto card moving from MVP to production.
This is not a junior role, not a “build a landing page,” and not a “rewrite everything in Next.js in week one” gig. You will own the web client: keep the existing token dApp working, and add the card product UI.
ABOUT THE PRODUCT
Quay is a USDC-backed crypto card. Users will hold a spendable USD balance, pass KYC, receive a virtual card, and spend at merchants. $QUAY is the token. The blockchain is NOT the card ledger. Card spend, available balance, freeze, and authorization live in a Go API + PostgreSQL ledger. The React app talks to that API for card flows. Wallet connect stays for deposits and proving ownership.
First product milestone (everyone on this project is hired against this sentence):
a sandbox virtual card that can be frozen and that declines when available balance is insufficient.
WHAT EXISTS TODAY (you will inherit this)
A React 18 + TypeScript dApp (Create React App + react-app-rewired):
- Wallet connect (MetaMask / WalletConnect)
- Dashboard: locked / unlocked / total $QUAY, market stats
- Uniswap V3 swap ($QUAY + convenience fee)
- Provide liquidity (USDT–WETH, WETH–QUAY), stake / unstake, rewards
- Buy crypto via Transak
- Token vesting: schedules, claim, withdraw
- Legal pages (terms, privacy, cookies) and a first-visit disclaimer
Stack you will actually touch:
React 18, TypeScript, React Router 5, Tailwind CSS, styled-components, ethers 5, @usedapp/core, Web3Modal, WalletConnect, Uniswap V3 SDK/widgets, Transak, Axios, Jest (utils only today), Node 16 / CRA.
Known constraints (you may mention them; we already know them):
- Main screen is tab state, not real URLs
- WalletConnect v1 and Goerli are obsolete
- Some “hooks” are async functions, not React hooks
- Tests cover formatting/vesting utils, not UI or chain calls
- REACT_APP_* values are public — treat them that way
WHAT YOU WILL OWN
- Card product UI: KYC status, available balance, virtual card surface, freeze/unfreeze, transaction list
- Routing and information architecture: wallet-first surfaces (swap, LP, vest) vs session/API-first surfaces (KYC, card, txs)
- Auth UX: logged-out vs no-wallet vs KYC-pending vs KYC-rejected vs card-ready
- Loading, error, empty, and blocked states (wrong network, pending tx, frozen card, insufficient card balance, KYC rejected)
- Safe integration of an issuer widget for card reveal — our UI never collects PAN/CVV
- Talk to the Quay Go API for all card flows (mocked at first, real later)
- Keep swap / LP / vesting working while card routes land
- Senior judgment on what to migrate now (WC v1, routing, tests) vs what to leave until the card MVP exists
- Work with a Go backend engineer and a Solidity engineer; you do not replace them
HARD RULES (automatic no if you fight these)
- Never put issuer, KYC, or custody secrets in the React bundle
- Never add PAN/CVV fields, store card numbers, or log PII
- Card available balance is not on-chain and not a number you invent in localStorage
- Do not rebuild Uniswap
- Do not move the project to Solana
- Do not propose a full rewrite as week-one work unless you can justify it against the card milestone
MUST-HAVE EXPERIENCE
- Production React + TypeScript shipped to real users (not only tutorials / student apps / Figma-to-HTML)
- REST (or similar) API clients: auth session, loading/error, optimistic UI without double-submit
- Component architecture that can grow (routing, state, not a 3,000-line page)
- Clear written English (you will write a short design before a big UI change)
- Comfortable in an existing codebase (CRA, mixed Tailwind + styled-components) — you improve it, you do not sneer at it
NICE TO HAVE
- Wallet UX (MetaMask, WalletConnect, wrong-network, pending tx)
- Fintech / KYC / payments / card dashboards
- ethers.js or similar
- Accessibility (keyboard, labels, disabled states that explain why)
- Replacing CRA/Vite/Next only when it serves the milestone
- Tests for UI that talks to APIs (and optionally chain)
OUT OF SCOPE FOR THIS SEAT
- Solidity / protocol design
- Go ledger / issuer webhooks (you consume the API)
- Real issuer SDK or real KYC vendor in the take-home
- Visual branding overhaul before freeze/KYC states work
ENGAGEMENT
- Start: as soon as the right person is available
- Rate: typically $100–$120/hr depending on scope and seniority
- Full-time preferred; part-time welcome if you have other commitments
- Remote
- Next step after a strong proposal: a paid, timeboxed technical assessment (short design + a small mocked Card dashboard), then a 60–75 min walkthrough
HOW TO APPLY
Proposals that do not answer the questions below will be declined. Keep it short. Do not send a generic “I can develop React websites” pitch, a list of every UI library you have seen, or an AI wall of text.
Abrir na Upwork
AI proposal draft
Generate a short cover letter for this job. Edit before sending.
Sign in to generate an AI proposal draft.
Entrar