Odoo 19 Community Edition Expert - Urgent Need

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

TYPE OF WORK

Gig

SALARY

Negotiable based on experience

HOURS PER WEEK

40

DATE UPDATED

Apr 26, 2026

JOB OVERVIEW

We are urgently hiring. Availability today would be great.

We are building AAMP — an Integrated Afterschool Academy Management Portal — on Odoo 19 Community Edition. The system manages the full operations of a coding and robotics academy: student enrollment, class scheduling, attendance/check-in, payments, camps, and staff workflows.
The core module (academy_base) is substantially complete. We need an experienced Odoo developer to help finalize, stabilize, and polish the system for production use.
This is a real, complex Odoo project — not a simple customization. You will be working inside a structured codebase with documented standards, code review workflows, and a changelog discipline.

What You Will Work On

Implementing approved findings from structured code reviews (security ACLs, ORM fixes, view corrections, controller hardening)
Writing and validating versioned migration scripts for schema changes
Fixing broken workflows identified during QA
Ensuring security coverage: ir.model.access.csv, record rules, group hierarchy
Writing or correcting QWeb templates and Odoo XML views
Updating documentation (CHANGELOG.md, MANUAL.md) as part of each implementation session
Running module upgrades in a Docker-based local environment and verifying clean upgrade paths


Required Skills

Odoo 19 (or strong Odoo 16/17 experience with willingness to confirm API differences)
Python 3 — clean ORM ---------- ---------- recordset semantics
Odoo XML: view inheritance via xpath, QWeb templates, ir.model.access.csv, security XML
HTTP ---------- with explicit auth, methods, csrf
PostgreSQL — understanding of how Odoo maps to the DB; ability to write idempotent migration SQL
Git — clean commits, no drive-by changes
Docker — able to run docker compose commands to upgrade and test the module locally


Nice to Have

Experience with Odoo Community specifically (not just Enterprise)
Familiarity with Odoo's security model: multi-company scoping, sudo() discipline, record rules
Experience writing Odoo migration scripts (pre-migrate.py / post-migrate.py)
Background in education, academy, or service-business ERP


How We Work
We use a structured workflow:

Code reviews produce findings with severity IDs (C#, H#, M#, L#)
An implementation plan is produced before any code is written
Each phase is implemented against the plan — no scope creep, no drive-by refactors
Every session that touches schema requires a backup before work begins
CHANGELOG.md and MANUAL.md are updated as part of every implementation session — not as a follow-up

If you prefer to "just code" without process discipline, this is not the right fit. If you appreciate working in a well-documented system with clear standards, you will feel at home here.

What We Are NOT Looking For

Odoo Enterprise-only developers (we run Community Edition only)
Developers who suggest unnecessary changes or rename working fields "for consistency"
Developers who hard-code database IDs or bypass the ORM with raw SQL in controllers
Developers who treat a long list of review findings as proof the system is broken


To Apply
Please include the following in your application:

Your Odoo version experience (list versions you have shipped production work on)
One example of a custom Odoo module you built or significantly contributed to — describe the models, what security you implemented, and any migration scripts you wrote
Your familiarity with Odoo Community vs Enterprise — be specific
Your availability (hours per week) and preferred working style (async vs scheduled calls)
Your rate (hourly or fixed per phase — both are open for discussion)

Applications without a specific Odoo project example will not be reviewed.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0507
Total Execution Time  0.0521
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,529,200 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Odoo-19-Community-Edition-Expert-Urgent-Need-1632677
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0411 seconds)  (Hide)
0.0009   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0010   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1632677
 LIMIT 1 
0.0022   SELECT *
FROM `employers`
WHERE `employer_id` = 331719
 LIMIT 1 
0.0051   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1632677
AND `misc`.`idIS NULL 
0.0011   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-07-16',ej.date_added) duration_daysDATEDIFF('2026-07-16',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-07-16',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1632677' 
0.0013   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1632677 
0.0013   UPDATE employer_jobs SET hit_counts '***Apr-26-2026=903***Apr-27-2026=54***Apr-28-2026=26***Apr-29-2026=13***Apr-30-2026=13***May-01-2026=6***May-02-2026=7***May-03-2026=7***May-04-2026=8***May-05-2026=5***May-06-2026=8***May-07-2026=4***May-08-2026=6***May-09-2026=2***May-10-2026=1***May-11-2026=2***May-12-2026=8***May-13-2026=2***May-14-2026=4***May-15-2026=4***May-16-2026=3***May-17-2026=2***May-19-2026=2***May-21-2026=7***May-22-2026=2***May-23-2026=2***May-24-2026=2***May-25-2026=5***May-26-2026=5***May-27-2026=4***May-28-2026=3***May-29-2026=2***May-30-2026=2***May-31-2026=1***Jun-01-2026=10***Jun-02-2026=4***Jun-03-2026=3***Jun-04-2026=2***Jun-05-2026=2***Jun-07-2026=1***Jun-08-2026=7***Jun-09-2026=1***Jun-10-2026=3***Jun-12-2026=1***Jun-14-2026=3***Jun-15-2026=4***Jun-16-2026=1***Jun-17-2026=1***Jun-18-2026=1***Jun-19-2026=1***Jun-20-2026=1***Jun-21-2026=1***Jun-22-2026=1***Jun-24-2026=1***Jun-25-2026=2***Jun-26-2026=1***Jun-27-2026=1***Jun-28-2026=1***Jun-29-2026=4***Jun-30-2026=1***Jul-01-2026=4***Jul-02-2026=2***Jul-03-2026=2***Jul-04-2026=2***Jul-06-2026=1***Jul-07-2026=2***Jul-09-2026=1***Jul-16-2026=1' WHERE job_id'1632677'  
0.0012   UPDATE employer_jobs SET monthly_hits '***Apr-2026=1008***May-2026=116***Jun-2026=59***Jul-2026=15' WHERE job_id'1632677'  
0.0024   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1632677' AND status LIKE 'sent%' ORDER BY id DESC  
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1632677 
0.0220   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '331719'
AND `date_added` >= '2022-06-08' 
0.0009   select from teasers 
0.0008   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)