Financial Controller

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

TYPE OF WORK

Full Time

SALARY

$2000/month

HOURS PER WEEK

TBD

DATE UPDATED

Jan 16, 2026

JOB OVERVIEW

Mathspace is a global education SaaS company with operations across multiple countries. We’re looking for a very senior Financial Controller to become our internal finance “quarterback” — owning day-to-day controllership, keeping our external finance partners on track, and progressively bringing more finance capability in-house over time.

You’ll work closely with our external Virtual CFO (Australia) and our external tax accountants (Cyprus and USA), while reporting directly to the CEO and COO.

This role is ideal for someone who can be hands-on when needed, but primarily thrives in owning end-to-end coordination, building robust processes, and ensuring finance is always accurate, audit-ready, and decision-useful.

What you’ll do

- Lead the monthly close across entities/countries: journals, reconciliations, accruals, intercompany, review packs.
- Revenue recognition & SaaS accounting rigour
- Ensure accounting treatment is correct and scalable across regions and entities.
- Multi-entity forecasting, budgeting, and reporting
- Support forecasting and budgeting across multiple organisations in different countries.
- Improve financial models and reporting cadence so leadership can make confident decisions.
- Manage cross-border and cross-currency accounting, including FX treatment, revaluations, and intercompany eliminations.
- Ensure clean intercompany processes (charges, settlements, balances, reconciliations).
- Support and operationalize transfer pricing using Residual Profit Split (tracking inputs, documentation readiness, intercompany allocations).
- Own the internal finance checklist and timelines for external tax providers.
- Keep the Virtual CFO and external accountants aligned, accountable, and moving.
- Build a roadmap to pull more work in-house over time (process design, documentation, hiring/outsourcing decisions, tooling).

What we’re looking for

- Senior controllership experience in a multi-national SaaS environment covering at least one of Australia, US, or Europe.
- Deep understanding of full-cycle accounting (bookkeeping ? close ? reporting ? coordination with tax).
- Proven ability to manage multi-entity / multi-currency accounting in a scalable, controlled way.

Strong experience in:
- bookkeeping best practices
- revenue recognition best practices (SaaS)
- expense management / supplier payments / invoicing / payroll coordination
- forecasting, budgeting, and reporting across multiple entities and geographies
- cross-border & cross-currency accounting
- transfer pricing (Residual Profit Split)
- tax accounting (specialist in at least one jurisdiction)

Working style and strengths

- A “get it done” operator who can be hands-on, but prefers building systems so the work stays clean.
- Strong communicator who can translate finance complexity into clear CEO/COO-ready insights.
- Excellent attention to detail, high integrity, and a bias for strong internal controls.
- Comfortable owning timelines and driving external partners to completion.


What success looks like (first 90 days)
- Close is on time, numbers are trusted, and reporting is consistent.
- External partners (Virtual CFO + tax accountants) are running on a clear cadence with owners, deadlines, and zero ambiguity.
- Intercompany, FX, and multi-entity reporting are clean and repeatable.
- A clear “insource plan” is in motion: what we keep external vs. what we bring internal, and when.

Reports to: COO

Works closely with: External Virtual CFO (Australia), external tax accountants (Cyprus, USA)

How to apply

Send Your CV/LinkedIn and a short note answering:

- Which multi-national SaaS companies you’ve supported and which regions (AU/US/EU)
- Your deepest strengths across close, revenue recognition, cross-border/currency, and tax
- Your transfer pricing experience (specifically Residual Profit Split)

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0010
Controller Execution Time ( Jobseekers / Job )  0.0249
Total Execution Time  0.0264
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,515,400 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Financial-Controller-1555970
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0194 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1555970
 LIMIT 1 
0.0014   SELECT *
FROM `employers`
WHERE `employer_id` = 327527
 LIMIT 1 
0.0010   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1555970
AND `misc`.`idIS NULL 
0.0010   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-17',ej.date_added) duration_daysDATEDIFF('2026-04-17',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_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-04-17',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1555970' 
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1555970 
0.0012   UPDATE employer_jobs SET hit_counts '***Jan-16-2026=100***Jan-17-2026=10***Jan-18-2026=13***Jan-19-2026=22***Jan-20-2026=17***Jan-21-2026=7***Jan-22-2026=4***Jan-23-2026=7***Jan-24-2026=4***Jan-25-2026=4***Jan-26-2026=5***Jan-27-2026=4***Jan-28-2026=3***Jan-29-2026=2***Jan-31-2026=1***Feb-01-2026=6***Feb-02-2026=4***Feb-04-2026=3***Feb-05-2026=4***Feb-06-2026=4***Feb-07-2026=4***Feb-08-2026=10***Feb-09-2026=7***Feb-10-2026=3***Feb-12-2026=2***Feb-13-2026=2***Feb-14-2026=4***Feb-15-2026=2***Feb-16-2026=2***Feb-17-2026=2***Feb-18-2026=5***Feb-19-2026=4***Feb-20-2026=1***Feb-22-2026=3***Feb-24-2026=2***Feb-25-2026=2***Feb-27-2026=1***Feb-28-2026=6***Mar-01-2026=1***Mar-03-2026=3***Mar-04-2026=3***Mar-07-2026=1***Mar-09-2026=1***Mar-10-2026=2***Mar-11-2026=1***Mar-13-2026=1***Mar-15-2026=4***Mar-17-2026=1***Mar-21-2026=1***Mar-23-2026=2***Mar-25-2026=1***Mar-26-2026=3***Mar-28-2026=1***Apr-01-2026=1***Apr-02-2026=4***Apr-03-2026=1***Apr-06-2026=1***Apr-07-2026=1***Apr-08-2026=1***Apr-10-2026=5***Apr-11-2026=1***Apr-17-2026=2' WHERE job_id'1555970'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Jan-2026=203***Feb-2026=83***Mar-2026=26***Apr-2026=17' WHERE job_id'1555970'  
0.0014   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1555970' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1555970 
0.0102   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '327527'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)