Every SME that commissions a custom system eventually asks the same question. The build is done, the change requests keep coming, and paying an outside team per request starts to feel like renting something you should own. So you price a developer at RM6,000 a month, maybe RM7,000, and it looks cheaper than the retainer. It usually is not, and the reason has almost nothing to do with the salary.
This guide prices both options honestly for a Malaysian SME. It is the developer version of the argument, not the designer version — our comparison of an in-house designer against a web design company covers visual work, where the deliverable is finished and stays finished. Code is different: it keeps needing someone, forever. ZenWeb sees both sides, because we take over systems from departing in-house developers and hand systems back to newly hired ones.
The video below sets out the general trade-off before we put Malaysian numbers on it.
1. The Question Is System Size, Not Hourly Rate
Quick Answer: In-house developers vs outsourcing is settled by two numbers: how big the system is, and how often it changes. A system that needs fewer than roughly 60 developer-days a year cannot keep one person busy, so hiring buys idle capacity. Above that, the maths turns.
Most comparisons open with hourly rates — an in-house developer at RM40 an hour against an agency at RM150. That framing loses money, because it assumes both options deliver the same thing. You pay an employee for availability; you pay a web development agency for finished work. Availability you cannot fill is money spent on nothing.
Two questions decide it before any cost is compared:
- How many developer-days does your roadmap genuinely need each year? Count real, funded work — not features you might want someday. Under about 60 days, no full-time hire can be justified.
- How many separate skills does the system touch? Front end, back end, database, payments, DevOps, security. One person covers two or three of these well, not six.
SMEs get the second question wrong far more often than the first. A customer portal with FPX payments, a mobile view and an accounting sync is four specialisms, and the developer you hire will be strong in one of them. That is not a hiring failure. It is what one person is.
Key takeaway: Size the roadmap in developer-days and count the specialisms before you compare any price. Those two numbers decide the answer; the rates only confirm it.
Not sure how big your roadmap really is?
We size a year of changes in developer-days before anyone talks about hiring or retainers.
See how our web development team scopes work →2. What One In-House Developer Really Costs in Malaysia
Quick Answer: Budget 27–39% on top of the base salary. A RM6,500 mid-level developer costs about RM8,620 a month once employer EPF, SOCSO, EIS, licences, hardware and amortised hiring are added. The gap is widest at junior level, where fixed costs sit on a small salary.
Employer EPF is 13% of wages at RM5,000 and below, and 12% above that, per the EPF's mandatory contribution schedule. SOCSO and EIS employer shares are capped, since PERKESO lifted the contribution wage ceiling from RM5,000 to RM6,000 in October 2024. Then come the things nobody puts in the offer letter: IDE and repository licences, a design tool seat, a staging server, a laptop, and the recruitment fee spread across the first year.
| Seniority band | Base salary | Loaded cost | Loaded total | On top of base |
|---|---|---|---|---|
| Junior (0–2 years) | RM3,500 | RM4,870 | +39% | |
| Mid-level (3–5 years) | RM6,500 | RM8,620 | +33% | |
| Senior (6–9 years) | RM11,000 | RM14,210 | +29% | |
| Technical lead (10+ years) | RM16,000 | RM20,270 | +27% |

Bars are scaled to the highest loaded total. Modelled scenario built on statutory EPF and PERKESO rates plus salary and tooling bands observed in ZenWeb client hiring, Malaysia, 2024–2026. Licence.
Read the last column first. The junior hire carries the heaviest loading, because a laptop, a licence seat and a recruitment fee cost the same whoever sits behind them. That inverts what owners assume when they hire junior to save money. You save on salary, pay a bigger premium on everything else, and get the band that needs the most supervision.
Three costs sit outside the table. Bonus and annual increment vary too much to model. So does the management time of whoever reviews the work, and if nobody in your company can review code, that time lands on you. Our guide to working with designers and developers covers how much of your week that takes. The third only applies once you cross ten Malaysian employees, when HRD Corp registration becomes compulsory at a 1% levy on monthly wages.
Key takeaway: Multiply any developer salary by roughly 1.3 before comparing it with a retainer. At junior level use 1.4 — the fixed costs do not shrink with the salary.
3. The Single-Developer Risk Nobody Puts in the Budget
Quick Answer: One developer means one point of failure. Leave, illness and resignation all stop the system dead, and the most expensive outcome is quiet: a build only that person can deploy. That is the real cost difference between in-house developers vs outsourcing, and it never appears in the salary comparison.
This is the part SMEs discover late. A solo developer is not 80% of a team — they are one calendar with one skill set, and every gap in either becomes your gap. Below is what we see across the systems we inherit.

| Continuity event | Share affected | Median work frozen | Usual consequence |
|---|---|---|---|
| System only one person can deploy | 67% | Ongoing | Every release waits on one calendar |
| Annual leave during a live incident | 58% | 2 days | Orders or bookings lost while waiting |
| Developer resigns | 44% | 11 weeks | Roadmap stops until a replacement ramps up |
| Skill gap outside their stack | 39% | 6 weeks | Feature shelved or outsourced anyway |
| Extended medical or personal leave | 31% | 3 weeks | Deadlines move, nothing breaks |
Source: ZenWeb client sample, 500+ Malaysian SME accounts, 2024–2026, single-developer system takeovers. Licence.
The top row is the one to sit with. Two thirds of these systems reach a state where a single person is the only route to production. That is not sabotage. It is what happens when nobody else ever needs to deploy, and it is the state that makes the resignation row so expensive. It is also why source code ownership on a custom web app matters long before anyone leaves.
Outsourcing does not remove this risk. It moves it to a company with more than one person in it, which is a real difference, but only if the contract says so. Ask about named cover and handover terms the same way you would when vetting a web development team.
Key takeaway: A solo developer is a single point of failure by default. Whichever way you go, insist that two people can deploy your system.
4. What Outsourcing Buys, and What It Does Not
Quick Answer: Outsourcing buys breadth, cover and a start date. It does not buy business context. An outside team will never know your operations the way your own staff do, so somebody inside still has to decide what gets built and confirm it works.
Be precise about what transfers and what does not:
- Transfers well: specialist skills you need occasionally, holiday and sickness cover, code review by a second pair of eyes, and the ability to add capacity for one busy quarter without a headcount decision.
- Transfers badly: knowing which customers complain about which screen, why an odd discount rule exists, and which report the finance team actually opens. That knowledge stays with you.
The failure mode is predictable. An SME hands over both the building and the deciding, then finds the system drifting from how the business really runs. Every outsourced build needs an internal owner — one named person who answers questions in a day and signs off releases. Without them, even a good team builds the wrong thing on time. A written requirements document makes those decisions stick, and a process running from discovery to UAT gives the owner checkpoints to sign off against.
Location matters less than the contract. Whether the team sits in KL or three time zones away, what protects you is written scope, owned accounts and a repository in your name. Those are the terms our guide to checking a KL web development company sets out.
Key takeaway: Outsource the building, never the deciding. Name one internal owner before the first sprint, or the system will slowly stop matching the business.
Weighing a first developer hire against a retainer?
We will price both against your actual roadmap, with no pressure to pick the one we sell.
Compare custom web application costs in Malaysia →5. Annual Cost and Cover, Compared by System Size
Quick Answer: On a small system, outsourcing costs roughly half of a solo hire and covers more skills. On a large system the ranking flips, and the hybrid model — one owner inside, a retainer outside — usually beats both on cost per covered day.
The table below sets the three staffing models against three system sizes, using the loaded costs from Section 2. "Days with cover" means working days when somebody competent could respond, after leave and public holidays.
| System size | Staffing model | Annual people cost | Specialisms covered | Days with cover |
|---|---|---|---|---|
| Small Site, forms, one integration | Solo in-house junior | RM58,400 | 2 | 228 |
| Outsourced retainer | RM30,000 | 5 | 248 | |
| Hybrid | RM74,000 | 5 | 248 | |
| Medium Portal, payments, 2–4 integrations | Solo in-house mid-level | RM103,400 | 3 | 228 |
| Outsourced retainer | RM66,000 | 6 | 248 | |
| Hybrid | RM138,000 | 7 | 248 | |
| Large Multi-role system, 6+ integrations | Two in-house developers | RM274,000 | 5 | 248 |
| Outsourced retainer | RM150,000 | 7 | 248 | |
| Hybrid | RM220,000 | 8 | 248 |
Highlighted row is the best cost-to-cover fit at each system size. Modelled scenario using loaded salary costs from Section 2 and retainer bands quoted across ZenWeb client engagements, Malaysia, 2024–2026. Licence.

The small-system row is the clearest. A solo junior costs nearly double the retainer, covers two specialisms instead of five, and still leaves you uncovered for twenty days a year. The hire wins there only if you value having someone at the next desk — a real preference, but it should be named as one rather than argued as economics.
The medium row is where owners argue, and rightly: the retainer is cheaper and broader, but a portal that changes weekly benefits from someone who lives in it. That is where the hybrid earns its premium. On large systems, two in-house developers still cover fewer specialisms than a retainer costing RM124,000 less. Our breakdowns of web app maintenance and SLA plans and website maintenance costs in Malaysia show what that retainer column actually pays for.
Key takeaway: Compare cost per covered day and specialisms, not headline salary. On small systems outsourcing wins outright; on medium and large ones the hybrid wins on both.
6. The Hybrid Model: One Owner Inside, a Retainer Outside
Quick Answer: The hybrid gives one internal person the context, priorities and account ownership, while an outside team supplies specialist build capacity and cover. Most Malaysian SMEs with a live custom system land here within two years, whichever option they started with.
The internal role is not always a developer. On many SMEs it is an operations manager who is technical enough to write a clear ticket and test a release. That person costs far less than a senior engineer and removes most of the context problem.
How to set up a hybrid development arrangement
- Name the internal owner. One person, in writing, who prioritises work, answers questions within a day and signs off releases. Give them the time, not just the title.
- Put every account in the company's name. Domain, hosting, repository, payment gateway and analytics, registered to company emails. This is the step that makes every later step reversible.
- Split the work by type, not by feature. Small changes and content go to whoever is faster; architecture, integrations and security go to the outside team. Splitting by feature creates two half-owners of one thing.
- Set a fortnightly release rhythm. A fixed date forces both sides to finish, and gives you something to open and check.
- Require two people who can deploy. Written deployment steps plus one live rehearsal per quarter. This is what removes the single point of failure.
- Review the split every six months. As the roadmap grows the internal share should grow with it. When it passes about 60%, hire your second person.

Step two is the one to do first even if you change nothing else. Owned accounts are what let you switch web developers without breaking your system. Their absence is why rescuing a stalled web development project so often begins with recovering access rather than writing code.
The same pattern holds outside development. It is the arrangement behind pairing an in-house marketer with an agency. It is also why the choice between a freelance developer and a software house gets easier once the internal owner exists.
Key takeaway: The hybrid works because it separates context from capacity. Own the accounts and the decisions; rent the specialist hands.
7. How Fast Each Option Delivers in Year One
Quick Answer: A new in-house hire delivers almost nothing for two months and finishes the year around 88% of the roadmap. An outsourced team starts in week two and finishes near 96%. The hire also needs about eleven weeks of recruitment before month one begins.
Speed is the argument owners forget until they are living it. The figures below track the same twelve-month roadmap under each model, from the day work is meant to start.
| Month from start | New in-house hire | Outsourced team | Hybrid |
|---|---|---|---|
| Month 1 | 0% | 3% | 2% |
| Month 2 | 2% | 9% | 7% |
| Month 3 | 6% | 17% | 14% |
| Month 4 | 12% | 26% | 24% |
| Month 6 | 28% | 45% | 45% |
| Month 8 | 46% | 63% | 66% |
| Month 10 | 66% | 80% | 85% |
| Month 12 | 88% | 96% | 100% |
Month 1 begins when work starts, excluding a median 11 weeks of recruitment for the in-house column. Source: ZenWeb client sample, 500+ Malaysian SME accounts, 2024–2026, first-year delivery tracking. Licence.
The first four months are the whole story. A new hire is learning your business, your codebase and your habits while the outsourced team is already shipping. That team is not smarter; it simply started with a working process. By month eight the hybrid overtakes both, because the internal owner has learned enough to remove the question-and-answer delay that slows a purely outsourced arrangement.
Add the recruitment period back and the gap widens. Eleven weeks of searching, interviewing and notice periods sits in front of the in-house column before month one starts. If your roadmap has a date attached — a campaign, a compliance deadline, a new branch — that alone can settle the decision.
Key takeaway: Hiring costs you roughly five months before the first meaningful release. If the roadmap has a date on it, outsource the first year and hire against a proven workload.
Need something live before you can hire?
We start in week two and hand over cleanly to your developer when you are ready to bring it in-house.
Talk to our Malaysian web development team →8. Choosing, and Making the Choice Reversible
Quick Answer: Outsource under 60 developer-days a year. Go hybrid between 60 and 180. Hire two people above 180, never one. Whichever you pick, own the accounts and the repository so you can change your mind in a month rather than a year.
Use roadmap size as the rule and change rate as the tie-breaker. A medium system that changes twice a year behaves like a small one; a small system that changes weekly behaves like a medium one.
The decision is also less permanent than it feels, provided you keep three things: domain and hosting in your company's name, the repository owned by you, and a requirements document that survives whoever is holding it. With those, switching direction costs a handover rather than a rebuild. Without them, the choice hardens into a dependency. That is the same trap behind restrictive agency contract terms.
The pattern repeats across every channel with the same shape and different numbers. Compare a Meta Ads agency against an in-house media buyer, or in-house SEO cost against an agency retainer, and volume decides in both. The broader in-house, agency or freelancer comparison covers marketing, and hiring marketing staff versus paying an agency runs the same loaded-cost maths on a marketing salary.
Still deciding whether you need a developer rather than a designer? Our web developer versus web designer guide draws that line, and Malaysian website developer rates and vetting covers what to pay either way. Our web development team in Malaysia works to all three models, so the recommendation depends on your roadmap rather than on what we would rather sell.
Not sure whether to hire or outsource?
Book a free 30-minute session. We will size your roadmap in developer-days, run the loaded-cost maths against a retainer, and tell you plainly which one fits — even when it is the hire.
Get my free staffing review →
9. Frequently Asked Questions
1. At what point should an SME hire its first in-house developer?
When the funded roadmap passes roughly 180 developer-days a year and stays there for two quarters. Below that you are buying idle capacity. Use a real backlog, not a wish list — count only work someone has already agreed to pay for. If two quarters of evidence say the workload is there, hire two people rather than one, or hire one and keep a retainer for cover.
2. Is an in-house developer cheaper than an agency retainer?
Rarely on small and medium systems. A mid-level developer costs about RM103,400 a year loaded, against roughly RM66,000 for a retainer covering the same system with more specialisms and no leave gaps. In-house wins on large systems that change constantly, where an outside team would bill more hours than a salary costs.
3. What is the biggest hidden cost of hiring a developer in Malaysia?
Ramp-up time, not statutory contributions. Employer EPF, SOCSO and EIS are predictable and add roughly a third to the base salary. The unbudgeted cost is the first four months, when a new hire delivers about 12% of the roadmap while being paid in full — plus the eleven weeks of recruitment before that.
4. Can we outsource development and still own the code?
Yes, and you should insist on it before work begins. Ownership is decided by the contract's IP and licence wording, not by who paid the invoice. Ask for the repository under your company account, written deployment steps and a named second person who can deploy. Get these at signing; they become negotiations once a project is under way.
5. What happens if our only developer resigns?
Expect around eleven weeks before a replacement is productive, and longer if nobody documented the system. Reduce that now: keep the repository and hosting in company accounts, require written deployment steps, and have someone outside the business rehearse a release once a quarter. A short retainer running alongside the hire converts a crisis into a handover.


