Senior Full Stack Engineer (Node.js/TypeScript/React) - Remote

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

PHP 150,000.00

HOURS PER WEEK

40

DATE UPDATED

Oct 13, 2026

JOB OVERVIEW

ABOUT THE ROLE
We are building a new fintech product from the ground up for a US client: a cash-flow tool that helps small businesses understand what they can safely spend today. It brings together bank, accounting and card-settlement data into a few clear numbers and recommendations. The product is delivered two ways: embedded inside partner web portals, and as a standalone web app. You will join a small senior team (four full-stack engineers and one automation QA) that owns the build from foundation to launch.

WHAT YOU WILL DO
- Build features end to end across a Node.js + TypeScript API and a React + TypeScript web app, in vertical feature slices.
- Design PostgreSQL schemas and write explicit, reviewable SQL for financial calculations where correctness is non-negotiable.
- Integrate third-party financial APIs (open banking and accounting platforms) using OAuth 2.0, webhooks and scheduled syncs, with retries and idempotency.
- Build embeddable experiences for partner portals: iframe integration, web components with style isolation, and signed-token (JWT) single sign-on.
- Implement authentication, role-based access, subscription billing through a payment processor's hosted pages, and server-side plan entitlements.
- Work on AWS: containers, managed PostgreSQL, CDN, scheduled workflows and infrastructure as code.
- Write automated tests alongside your code and keep the CI pipeline green.
- Take part in sprint demos, code reviews and technical decisions with the team.

OUR STACK
- Backend: Node.js 24, TypeScript (strict), Fastify, Drizzle ORM, PostgreSQL 16, Zod
- Frontend: React, TypeScript, Vite, TanStack Router and Query, Tailwind CSS, shadcn/ui
- Cloud: AWS (ECS, RDS, S3, CloudFront, WAF, KMS, Step Functions, EventBridge), AWS CDK
- Auth: Clerk, JWT / JWKS
- Testing and delivery: Vitest, Playwright, Testcontainers, GitHub Actions, Docker

WHAT WE ARE LOOKING FOR
- 8+ years of professional software engineering, with strong experience across both backend and frontend.
- Strong TypeScript in production on Node.js and React.
- Solid PostgreSQL skills: schema design, indexing, transactions and query performance.
- Experience integrating third-party REST APIs with OAuth 2.0 and webhooks.
- Experience shipping on AWS, or a comparable cloud, with containers and CI/CD.
- Care for correctness, security and clean, maintainable code (DRY, SOLID, small focused modules).
- Clear written and spoken English, and comfort working directly with a client's product owner.
- Experienced AI Enabled Engineer that uses proper harnesses, agents and skills and Daily use of AI-assisted engineering tools (for example Claude Code), with the judgement to review and test their output. This is a must!!!

WE PREFER PEOPLE WITH
- Fintech experience: open banking, accounting (e.g., QuickBooks Online), payments or subscription billing.
- Building embeddable widgets or SDKs (web components, Shadow DOM, iframe + postMessage).
- Security practices for financial data: encryption, row-level security, OWASP ASVS.
- Accessibility (WCAG 2.1 AA) and frontend performance.

JOIN US!
- Be part of a mission-driven startup solving real financial problems
- Work with a passionate, collaborative team that values ownership and innovation
- Opportunities for growth and upskilling
- Opportunity to shape the future of our tech stack and product direction
- Competitive pay, internet allowance, 13th-mo pay, paid leaves

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0106
Total Execution Time  0.0120
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,502,040 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-Full-Stack-Engineer-NodejsTypeScriptReact-Remote-1748790
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0054 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1748790
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 1009715
 LIMIT 1 
0.0005   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1748790
AND `misc`.`id` IS NULL 
0.0005   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-21',ej.date_added) duration_days, DATEDIFF('2026-10-21',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_jobs ej WHERE e.employer_id = ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id = '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-10-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1748790' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1748790 
0.0008   UPDATE employer_jobs SET hit_counts = '***Oct-13-2026=746***Oct-14-2026=231***Oct-15-2026=100***Oct-16-2026=70***Oct-17-2026=56***Oct-18-2026=2***Oct-19-2026=3***Oct-20-2026=2***Oct-21-2026=3' WHERE job_id= '1748790'  
0.0007   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=1212' WHERE job_id= '1748790'  
0.0004   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1748790' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1748790 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '1009715'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0002   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)