I am Oksana Yeroshenko, an Odoo developer and ERP consultant. This page exists so you can tell in two minutes whether I cover your problem, instead of spending a call on “do you do this sort of thing?”.
Some background: before I moved into development I worked as a finance director, and I hold IFA certifications in financial management and internal audit. So on a project I am not only writing code — I know what has to come out in the balance sheet. That combination is rare: most technical contractors never read a trial balance, and most consultants never write a module.
Odoo implementation from scratch
Implementing Odoo ERP is not an installation. It is a decision about how your business will look inside the system: which warehouses, which journals, which chart of accounts, where CRM ends and manufacturing begins.

What it covers:
- process discovery and an “as-is → to-be” map;
- choosing the version and edition (Odoo Community or Enterprise, Odoo.sh or your own server);
- configuring the modules: CRM, Sales, Purchase, Inventory (WMS), Manufacturing (MRP), Accounting, Projects, HR, eCommerce;
- customisation for the parts of your process that do not exist in the standard product;
- migrating master data and balances;
- training your team and writing documentation.
I have worked with Odoo since version 13. Current projects run on Odoo 16, 17, 18 and 19, including upgrades from older releases.
Odoo module development and customisation
Standard Odoo covers roughly 80% of a company’s processes. The remaining 20% is what your customers actually pay you for — and that is where Odoo customisation belongs.
- custom Odoo module development (Python, XML, QWeb reports);
- extending standard behaviour: model inheritance, computed fields, constraints, automations;
- custom wizards and portals for customers and contractors;
- printed documents and reports: invoices, delivery notes, specifications, payslips;
- access rights, multi-company, multi-currency;
- moving Studio configuration into proper code.
I also run a technical audit of the project — when the system was built before me and it is unclear what to do with it next: extend or rewrite.
The most common findings concern code written without architectural planning. The classic one is connectors built on hooks: the hook does not fire for every event or every way of changing data, so the sync silently skips records and does not guarantee data completeness. Next to it you usually find duplicated code, several different methods doing the same thing, dead code nobody calls, and logic that is compatible neither with how Odoo works nor with the business process itself.
What exactly gets checked and what the report looks like — in a separate article: Technical audit of an Odoo project.
Odoo integrations with external services
This is my largest block of work: integrating Odoo with CRM, point-of-sale systems, banks, payment providers, HR, e-invoicing and customer verification — KeyCRM, OpenCart, Dotykačka, Payoneer, Splitit, Authorize.Net, Przelewy24, Fiserv, Sumsub, QuickBooks, KSeF, PeopleForce, Google Sheets, Roserocket.
Details on each one: Odoo integration with CRM, banks and payment systems. Part of my work is published openly: my modules on Odoo Apps.
Accounting and finance in Odoo
This is where most Odoo projects break quietly: the system “works”, and a year later the accountant cannot close the period.
- bank statements and automatic reconciliation: online feeds, statement import from files, matching rules, mass reconciliation;
- inventory valuation and cost of goods: FIFO, average and standard cost, stock valuation layers, Anglo-Saxon accounting and interim accounts;
- period close: lock dates, currency revaluation, clearing balances stuck on transit accounts;
- consignment stock, weighted goods, lots and serial numbers;
- management reporting: analytics, cost centres, custom financial reports;
- payroll and payouts: rate grids, bonuses, deductions, batch payments, ACH/NACHA, a payment-request portal.
If your balance does not add up and everyone tells you it is “just how Odoo works” — it almost never is, and I am good at finding the actual cause.
Migration to Odoo: from 1C, Excel, QuickBooks and other systems
- moving from 1C to Odoo, from Excel spreadsheets, QuickBooks or in-house systems;
- data migration: partners, products, stock, sales history, receivables and payables;
- Odoo version upgrades (for example 15 or 16 to 18 or 19) together with migrating custom modules;
- moving from Odoo Online to Odoo.sh or your own server — when you hit the limits of the cloud and need access to the code;
- moving a database between servers, from Odoo.sh to self-hosting and back.
Migration is always about data quality, never about the script. So I start with an inventory of what actually has to move: in nine cases out of ten, half the history should stay behind.
The step-by-step version — stages, reconciliation and the usual mistakes — is here: Migration to Odoo: how to move data from 1C, Excel and other systems.
Hosting, Odoo.sh, servers and DevOps
- deploying Odoo on VPS (Hostinger, Hetzner), Docker, Coolify, configuring nginx and SSL;
- backups: automated database and filestore backups pushed to Amazon S3 — and verifying that they actually restore;
- working with Odoo.sh: branches, staging, deployment, debugging failed builds;
- PostgreSQL: administration, indexes, slow-query analysis, maintaining large databases;
- cron jobs, queues, mail servers, external API access.
Performance tuning: when Odoo runs slowly
A service few people offer specifically. Odoo being slow is almost never about a weak server — it is about the code.

A telling case: a nightly reconciliation cron ran for 39 minutes. The cause was not data volume but volatile computed fields that dragged roughly 67,000 journal entries into being rewritten, plus a quadratic write override searching an unindexed field.
What I do: profiling, slow SQL analysis, indexes, optimising computed fields and cron jobs, cleaning up runaway technical tables.
Odoo support and maintenance
- fixing bugs and investigating incidents;
- ongoing improvements without opening a new project;
- taking over support after an implementation done by someone else;
- consulting for your in-house team — when you do have a developer but need someone who has already stepped on this particular rake.
Industries I work with
E-commerce and retail (multi-channel sales, warehouses, point of sale, marketplaces), hospitality and restaurants (delivery aggregators, fiscalisation), manufacturing and food (lots, shelf life, weighted goods, cost of goods), logistics and freight (TMS, dispatch, driver payouts), services and IT companies (projects, timesheets, contractors, mass payouts).
How I work
- Hourly (Time & Materials) — you pay for hours actually worked, not for a package half of which you do not need.
- A short consultation up front with a scope estimate.
- All code in git, handed over to you or your team whenever you want it.
- Remote, in a time zone that suits you. Communication in English or Ukrainian.
- Experience with localisation and accounting specifics: Ukraine, Poland, USA, Canada, Switzerland, Bulgaria, Estonia.
- Clients include companies in Switzerland, Germany and Canada.
How tasks are scheduled
A properly defined task goes into the queue and gets an estimated delivery date straight away, taking into account what is already in progress. That works for most ongoing changes and questions.
If you need guaranteed hours — for support or development at a predictable pace — they are paid in advance. Prepayment reserves my time for your tasks: they do not join the general queue but are handled within the block you bought.
Where to start
The cheapest way to find out what your task costs is to show me the process. Write what hurts: “we copy orders by hand”, “the cost of goods does not add up”, “Odoo is slow”, “we need KSeF”, “we want to move off 1C”. I will tell you whether it is my kind of work and roughly how many hours it takes.
If you are still choosing a contractor, it is worth reading what to ask and what guarantees to require first. Services and pricing are in the Shop section, technical case write-ups are in the blog.
Frequently asked questions
Do you work alone or is there a team?
I work independently as a consultant — you talk directly to the person writing the code. For large implementations I bring in contractors I have worked with before.
How much does an Odoo implementation cost?
It depends on how many processes are involved. A small business with core modules starts at a few dozen hours; a full implementation with customisation and integrations runs into hundreds of hours, split into stages.
Do you only do Odoo?
Yes — that is a deliberate specialisation: Odoo, PostgreSQL, Python, Linux.
Can I book just a consultation?
Yes, and it is often the most useful format: in an hour or two we go through the architecture and you know what to do next, even if your own team implements it.
Do you take over projects started by someone else?
Yes, with an audit at the start. That is a normal situation, not a reason to rewrite everything.
Odoo Services: Implementation, Development, Customisation, Migration and Support