Hiring guide · Custom Software

Hire Application Security Engineers: Rates, Vetting and Engagement Models

The short answer

For contract work, expect roughly $30 to $65 per hour in South and Southeast Asia, $50 to $95 in Eastern Europe and Latin America, and $110 to $200 for an independent senior in the US, Canada or the UK, with boutique security firms billing $200 to $350 per hour for the same hours. Unless you ship daily, hold regulated data and already have someone internally who owns the software development lifecycle, do not open a full-time role first. Start with a scoped threat model and code review on your highest risk service, then embed an application security engineer through staff augmentation with real merge rights, so the findings turn into merged pull requests instead of a PDF nobody reads.

What an application security engineer actually does, and where this hire goes wrong

A Series A fintech asked us to look at their code after they had already spent four months and a hundred thousand dollars on security. They had hired someone with "security engineer" on the CV. He was excellent at what he actually knew: he rolled out endpoint protection, tightened the VPN, ran Nessus across the VPC, and produced a 62 page report full of TLS cipher suite findings and a jQuery version bump. Meanwhile the endpoint at /api/v2/accounts/{id}/statements read the account ID straight from the URL and never checked it against the tenant on the session. Any customer could pull any other customer's bank statements by changing one integer. No scanner in the world was going to find that, because to a scanner it is a 200 response with valid JSON.

That endpoint is the job. An application security engineer finds and fixes the bugs that only make sense if you understand what your code is supposed to do. Broken object level authorization. A JWT verification path that trusts the alg header. A tenant filter missing from one of nine Prisma queries. A signed URL that never expires. A webhook handler that trusts the payload because it came over HTTPS. A password reset token generated with Math.random().

The day to day is more engineering than hacking. Threat modeling a new payments flow before it gets built. Reviewing pull requests that touch auth, file upload, or anything that takes a user supplied URL. Writing custom Semgrep rules so the vulnerability class you keep reintroducing gets caught in CI instead of in a pentest six months later. Wiring dependency scanning and secret scanning into the pipeline without the team disabling it in week two. Building a request level test suite that fires every endpoint with two different tenants' tokens and fails the build when the wrong one gets a 200. Triaging bug bounty reports so your engineers only see the real ones.

The hiring mistake is almost always a category error. "Security" covers four different jobs that share a word and share nothing else. Infrastructure and cloud security engineers care about IAM policies, S3 buckets, Kubernetes admission control. SOC and detection engineers care about logs and alerts. GRC people care about SOC 2 controls, policies and evidence. Application security engineers care about your code, in your language, in your framework. Hire the wrong one of the four and you get competent work on a problem you did not have.

Engagement models: in-house, freelancer, agency, staff augmentation

In-house full-time. Right when you have roughly fifteen or more engineers merging every day, you handle money or health data, and someone needs to own the secure development lifecycle permanently. The honest trade-offs: the candidate pool is thin and slow, good ones get bored inside a year if the work is all questionnaires, and one person cannot cover application security, cloud posture and compliance no matter what the job description says. A solo application security hire in a team that does not want to be reviewed becomes an expensive ticket filer.

Freelancer or independent consultant. Right for point in time work with a hard edge: a pentest before an enterprise contract, a threat model for a new architecture, a focused review of the payments service. The best independents are genuinely better than most firms because they are usually specialists who found real CVEs. The trade-off is continuity and output shape. You get a report. Reports do not merge. Unless you scope remediation explicitly, you are buying a list of problems, and your team still has to fix them while shipping the roadmap.

Agency or boutique security firm. Right when procurement wants a letterheaded report and an attestation you can hand a customer, and right when you want findings plus fixes rather than findings alone. Trade-offs are cost per hour and people rotation. The senior who scoped the engagement is not always the one testing. Ask who is on the keyboard and ask to meet them.

Staff augmentation. Right for a three to twelve month need where the work is continuous but does not justify a permanent headcount: hardening before a Series B diligence, an authorization rewrite, standing up a security review process that survives after they leave. Trade-off: an embedded engineer without merge rights and without an internal owner turns into a very expensive commenter. Give them a repo, a CI account and a named counterpart on your team, or do not bother.

Rates and what this actually costs

These are the ranges we see in Digital Heroes delivery work and in the offers our own candidates accept and turn down. Application security rates move sharply with region, seniority and whether the person can code or only test.

  • Contract, senior, code level. India and South or Southeast Asia: roughly $30 to $65 per hour. Eastern Europe and Latin America: roughly $50 to $95. Western Europe and the UK: roughly $90 to $160. US and Canada: roughly $110 to $200 for an independent, $200 to $350 through a boutique firm.
  • Fixed scope penetration test of one web application plus its API usually lands between $10,000 and $35,000 depending on endpoint count, roles and whether they get source access. Anyone quoting $3,000 is running a scanner and reformatting the output.
  • In-house base salary in the US: the offers we watch candidates accept sit around $130,000 to $170,000 at mid level and $170,000 to $230,000 at senior, higher in the Bay Area and New York, materially lower elsewhere.

Base salary is the smallest honest number in that list. Payroll taxes, health cover, equipment, paid time off and tooling reliably push the real cost well above base. In our own budgeting we plan 1.25x to 1.4x base as the loaded figure before anyone writes a line of code. If you use a contingency recruiter, expect to hand over a fifth to a quarter of first year base on top. Add time: two to four months to fill an application security role properly, because the good ones are not on job boards, and then four to eight weeks of ramp before they know your codebase well enough to tell a real finding from a theoretical one. Add tooling: a Burp Suite Professional seat is a rounding error, but static analysis and software composition platforms priced per developer are a real recurring line item, and cloud posture tools are another.

The practical read: a full-time application security hire is a six figure annual commitment that starts producing value in month three. A scoped engagement produces value in week two. Most companies under fifty engineers should do the second, twice, before considering the first.

How to vet an application security engineer

Skip the trivia. Anyone can define cross-site scripting. You are testing whether they can read code in your stack and reason about your business.

The signals that matter. Can they read your language fluently, not just recognize it. Do they go to the trust boundary first or to the TLS config first. Do they know what the fix is, not just what the bug is. Can they say "this is a low, ignore it" without ego. Have they ever shipped code.

Questions worth asking, with what a good answer sounds like.

  • "We verify JWTs with a shared library. Walk me through what happens if an attacker sends alg: none, and separately if they sign an HS256 token using our RS256 public key." A good answer covers algorithm confusion, pinning the expected algorithm, and validating iss, aud and key ID rather than trusting the header.
  • "We have a feature that fetches a user supplied URL for link previews. How do you stop server-side request forgery?" A weak answer is a regex blocklist of 169.254.169.254. A good answer is an allowlist, resolving the host yourself, checking the resolved IP against private ranges, pinning that IP for the actual request to survive DNS rebinding, and no redirects.
  • "Our React app keeps the session token in localStorage. Argue both sides against httpOnly cookies plus a CSRF defense." You want nuance and awareness of SameSite behavior, not a memorized rule.
  • Name your framework and make them answer inside it. On Django: where does the tenant check belong, and what does get_object_or_404 quietly let through. On Rails: what breaks when someone reaches for permit! on strong parameters. On Express with Prisma: how do you stop the ninth query from forgetting the tenant filter, and would you enforce it in middleware, in a repository layer, or with Postgres row-level security. On Spring: what does a misordered filter chain do to your method security annotations.
  • "There are 400 open dependency alerts on Monday morning. What do you do?" Good: reachability analysis, separate runtime from dev dependencies, fix the handful that are actually called, set a policy so the number stops growing. Bad: "triage all of them."
  • "Our API has about 200 endpoints and three roles. How do you test for broken object level authorization at that scale?" Good: automate it. Two tenants, two token sets, replay every request and diff the responses, assert 403. Bad: describing clicking through Burp Repeater by hand.
  • "Tell me about a finding you downgraded or got wrong." Silence here is a red flag on its own.

What a good take-home looks like for this stack. Not a capture-the-flag box. Give them a small real repository, 400 to 800 lines in the framework you actually run, Express or Django or Rails or Spring, with three planted bugs across different classes: an authorization check missing from one route handler, a SQL injection through a raw ORM query, and one of server-side request forgery or unsafe deserialization. Time box it to three hours and pay for it. Ask for four things: a pull request that fixes all three, a test that proves exploitability before the fix, one Semgrep or CodeQL rule that catches the class going forward, and a severity ranking with a business justification.

What separates the good ones is where they put the fix. A weak candidate adds three if statements. A strong one notices the authorization check does not belong in the handler at all and moves it into shared middleware, a Rails before_action, a Django permission class or a Spring method security rule, then explains why the other route is now covered too. Their exploit test hits the HTTP layer with two tenant tokens, not a unit test of a helper function. Their severity ranking talks about who can see whose money, not CVSS vectors.

Portfolio review. Ask for disclosed HackerOne or Bugcrowd reports, CVEs with real writeups, published Semgrep rules, contributions to OWASP ASVS or the cheat sheets, conference talks, or pull requests to security libraries. Then have them walk you through their best finding and ask one question: what was the fix, and did it ship. Someone who only knows the finding is a finder. You are hiring an engineer.

Red flags

  • Every story starts with a tool. Burp Active Scan found it, Acunetix flagged it, Nessus reported it. Their value is proportional to a license you could buy yourself. Ask instead: "Find me a bug in this diff that no scanner would ever catch, and explain why the scanner misses it."
  • CVSS as the entire argument. They rank a 9.8 in a build-time dev dependency above a broken tenant check because the number is bigger. Ask instead: "Here are three findings. Rank them for our business and defend the order to our CEO."
  • Compliance wearing an engineering title. Fluent in SOC 2 controls, vendor questionnaires, policy templates and evidence collection. That is GRC and it is valuable, but it is not this role. Ask instead: "When did you last open a pull request that fixed a vulnerability, and what did it change?"
  • The report factory. Every engagement they describe ends in a document and nothing ends in a merge. Ask instead: "Roughly what share of your findings actually got fixed, and what did you do to raise that number?"
  • Pipeline maximalism. They want to fail every build on any medium severity finding, day one, with no baseline. Your team turns it off in two weeks and now you have less security than before. Ask instead: "How do you introduce Semgrep into a repo with 900 existing findings without the team disabling it?"

When to hire this role at all, and how we staff it

If you are under ten engineers with no regulated data, you do not need an application security engineer. You need a senior backend engineer who defaults to parameterized queries and centralized authorization, plus one scoped external review before the enterprise deal. If your actual problem is a customer security questionnaire and a SOC 2 audit, hire GRC or use a compliance platform. If your problem is public S3 buckets, over-permissive IAM roles and unrestricted security groups, hire a cloud security engineer. If your problem is that you ship weekly, you hold customer money or health records, and your team keeps reintroducing the same authorization bug in new endpoints, that is when this role earns its cost.

At Digital Heroes we start with a two to three week scoped engagement on the highest risk service: threat model, code review of the auth and money paths, and a prioritized backlog written as issues an engineer can pick up, not as a PDF. From there clients go one of two ways. Either our engineers implement the fixes alongside your team, or we embed an application security engineer into your sprints with merge rights and a named counterpart on your side, usually paired with a backend engineer from the same pod so the fixes actually ship. Everything lives in your repository and your CI from the first day: the rules, the tests, the report, the code. You own all of it, including after we leave, which is the only way any of it still works a year later.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. The 2024 DORA report found AI adoption significantly increases individual productivity, flow, and job satisfaction, but negatively impacts software delivery throughput and stability - a paradox leaders must manage with fundamentals like smaller batch sizes and robust testing. Source: DORA / Google Cloud (2024) →
  2. Median SaaS spend reached $9,455 per employee, and organizations leave an average of 36% of their SaaS licenses unused. Source: Zylo (2026) →
  3. In the Flexera 2025 State of ITAM report, respondents reported roughly 33% of SaaS spend is wasted, underscoring how paying for off-the-shelf seats and tiers that go unused erodes the supposed cost advantage of generic SaaS. Source: Flexera (2025) →
  4. McKinsey found that currently demonstrated technologies can fully automate about 42% of finance activities and mostly automate a further 19%, indicating roughly 60% of finance work is technically automatable. Source: McKinsey & Company (2018) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does it cost to hire an application security engineer?
Contract rates we see run roughly $30 to $65 per hour in South and Southeast Asia, $50 to $95 in Eastern Europe and Latin America, $90 to $160 in Western Europe and the UK, and $110 to $200 for an independent senior in the US or Canada. Boutique security firms bill $200 to $350 per hour for the same work. A fixed scope penetration test of one web application and its API usually lands between $10,000 and $35,000. On the in-house side, the US offers we watch candidates accept sit around $130,000 to $230,000 depending on seniority and city, with loaded cost running meaningfully above that.
Freelancer or agency for an application security engineer?
Use a freelancer for point in time work with a hard edge: a threat model, a pentest before an enterprise deal, a focused review of one service. Use an agency when you need the findings fixed rather than just listed, when procurement wants a letterheaded report, or when the work runs longer than a few weeks. The honest difference is output shape: freelancers usually deliver a report, agencies can deliver merged pull requests. If nobody on your team has bandwidth to remediate, a report is money spent on a list of problems.
How do I test an application security engineer before hiring?
Give a paid three hour take-home on a small repository in your actual framework, with three planted bugs across different classes: a missing authorization check in a route handler, SQL injection through a raw ORM query, and server-side request forgery. Ask for a pull request that fixes them, a test that proves exploitability, a Semgrep rule that catches the class in CI, and a severity ranking justified in business terms. The signal is where they put the fix. A strong candidate moves the check into shared middleware, a Rails before_action or a Django permission class, and explains what else that covers.
How long does it take to hire an application security engineer?
A full-time hire realistically takes two to four months to fill, because strong application security engineers are rarely on job boards and the pool is thin. Then budget four to eight weeks of ramp before they can tell a real finding from a theoretical one in your codebase. A contractor or embedded engineer through staff augmentation can start in one to three weeks and produce a prioritized backlog in the second week. That gap is the main reason most companies under fifty engineers should not open the role first.
Onshore vs offshore rates for application security engineers?
The spread is wide: roughly $30 to $65 per hour in South and Southeast Asia versus $110 to $200 for an independent senior in the US or Canada, for genuinely comparable code level work. What you pay for onshore is usually timezone overlap, contract and liability comfort, and a name procurement recognizes on the report. What you risk offshore is uneven vetting, since the title is used loosely and many candidates are scanner operators. Vet on the take-home, not on the location.
Who owns the code, rules and reports from a security engagement?
You should own all of it: the report, the fixes, the custom Semgrep or CodeQL rules, and the authorization test suite. Put it in writing before work starts, and insist the work lives in your repository and your CI from day one rather than in a vendor portal. That is how Digital Heroes runs it, because the rules and tests are what keep the class of bug from coming back after the engagement ends. If a vendor keeps their tooling or rules proprietary, you are renting your own security posture.
What is the difference between an application security engineer and a penetration tester?
A penetration tester finds vulnerabilities and reports them. An application security engineer finds them, fixes them at the right layer, and changes the pipeline so they stop coming back. In practice the test is simple: ask a candidate to walk through their best finding, then ask what the fix was and whether it shipped. Testers are valuable for point in time assurance and for enterprise deals that require an external report, but they will not reduce the rate at which your team introduces new bugs.
Do I need a full-time application security engineer?
Probably not until you have around fifteen or more engineers merging daily, you handle money or health data, and someone internal will own the secure development lifecycle. Below that, a senior backend engineer with good secure defaults plus one or two scoped external reviews a year covers more ground for less money. The trigger for a real hire is repetition: if the same authorization or input handling bug keeps appearing in new endpoints, that pattern needs an owner, not another pentest.
What should a first application security engagement include?
Two to three weeks scoped to your highest risk service: a threat model of the architecture, a code review of the authentication, authorization and money paths, and a prioritized backlog written as issues your engineers can pick up. It should also leave behind at least one CI gate, such as custom static analysis rules for the bug classes actually found, and a request level test that fires endpoints with two tenants' tokens. If the deliverable is only a document, you bought a diagnosis without a prescription.
If we build for 20 users now, will the software cope with 500 later?
It should, without a rewrite, if it was built on a standard cloud stack; going from 20 to 500 users is mostly a hosting configuration change costing hundreds a month, not a second project. What actually breaks under growth is sloppier work: database queries never indexed for volume and features designed assuming one office's worth of data. Before signing, ask the vendor what happens to the system at ten times today's data, and listen for a specific answer.
Couldn't I just build my app in Bubble or another no-code tool instead of hiring an agency?
For validating an idea with real users, yes, and we tell clients that honestly. The walls come later: Bubble apps cannot be exported as code to run anywhere else, performance drops on complex data operations, and usage-based pricing climbs as you grow. A meaningful share of Digital Heroes custom builds are rebuilds of no-code MVPs that proved the business worked, which is the system operating as intended: validate cheap, then build the version that scales.
How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
We run everything on spreadsheets and Airtable. How do we know it's time for custom software?
The reliable signals are re-typing the same data into multiple tools, one employee acting as human middleware between systems, and errors appearing in handoffs between teams. Hard limits force the issue too: Airtable's Team plan caps at 50,000 records per base, and Business costs $45 per seat per month, so a 20-person team pays about $10,800 a year for a tool it has already outgrown. When workarounds consume more hours than the tools save, the spreadsheet era is over.
What does a $50,000 custom software budget actually buy?
One core workflow done properly: 10 to 15 screens, two or three user roles, a couple of integrations, an admin panel, and automated tests, delivered in roughly 12 to 14 weeks. What it does not buy is that workflow plus a mobile app plus AI features plus five more integrations. The discipline of picking the one workflow that matters is what separates $50,000 projects that ship from $50,000 projects that stall at 70% complete.
Is custom software more secure than off-the-shelf SaaS?
Neither is secure by default; security tracks the practices of whoever builds and operates the system, not the model. SaaS gives you the vendor's certifications and patching but puts your data in a shared multi-tenant platform on their terms, while custom gives you full control over data residency, access rules, and compliance requirements like HIPAA, with the responsibility sitting with you and your agency. Before hiring anyone for a system holding sensitive data, ask for their security checklist: encryption at rest and in transit, an OWASP Top 10 review, role-based access, and a penetration test before launch.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
Who owns the code when an agency builds my software?
You should, completely, through a written intellectual property assignment that transfers everything on final payment; without that clause, copyright stays with whoever wrote the code by default. Insist that the repository lives in your own GitHub organization from day one and that hosting, domains, and third-party accounts are registered to you. Also check for licenses to the agency's proprietary frameworks buried in the contract, because those can make switching vendors practically impossible even when you own your own code.
If an agency builds my software, who actually owns the code?
You should own everything, assigned in writing: the contract transfers full IP to you on final payment, the code lives in your GitHub organization, and hosting runs in cloud accounts you control. The red flag is a proposal that mentions the agency's proprietary platform or framework, which usually means you are renting, not buying. Digital Heroes structures every build this way precisely so a client can fire us and lose nothing but the relationship.
Our developer disappeared mid-project. Can another team pick up the code?
Yes, this is a routine engagement, provided the code exists somewhere you can access, so your first move is securing the repository, hosting, and domain credentials today. A takeover starts with a one to two week paid code audit that ends in one of three verdicts: continue the build, keep the design but rebuild the weak parts, or start over. Digital Heroes has inherited enough projects to say plainly that sometimes the rebuild is cheaper than the rescue, and an honest agency will tell you which one you have before taking your money.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?