Hiring a software engineer when you're not technical yourself feels like one of those problems that requires a specialist. It doesn't. Thousands of founders do this every year without a recruiter, without an internal HR team, and without paying a $30,000 placement fee. You just need a clear process.
This guide walks you through exactly how to do it β from figuring out what you actually need, to extending an offer that doesn't embarrass you.
Start with the role, not the rΓ©sumΓ©
Before you post anything, get honest about what problem you're hiring to solve. "We need a software engineer" is not a job spec. It's a wish.
Ask yourself:
- What will this person own in the first 90 days?
- Is this primarily backend, frontend, or full-stack work?
- What does the existing codebase look like? (Language, frameworks, rough size)
- Are you looking for someone to build solo, or join an existing team?
- Is this a 40-hour/week role, or are you open to a contractor?
A founder building a React-based SaaS who needs someone to own the frontend has a completely different hire than a founder running a data pipeline who needs a Python engineer. These are not interchangeable roles, and a vague job post will attract vague candidates.
Define the stack upfront
List your actual tech stack in the job post. Founders sometimes hide this because they're embarrassed about legacy code or an unfashionable choice. Don't. Engineers want to know what they're walking into. Being upfront filters out people who would've bounced after week two anyway.
Example: "We're a small team running a Node.js API on AWS with a React frontend. The codebase is about three years old and reasonably well-documented. You'll be the second engineer."
That one paragraph does more filtering than a list of 20 requirements.
Write a job post that attracts the right people
Most engineering job posts are garbage. They list 15 required skills, ask for "10+ years of experience" for a role paying $90K, and describe the company in words that mean nothing ("fast-paced," "innovative," "dynamic").
A good engineering job post has five things:
- What the company does β one or two sentences, plain English
- What the engineer will actually build β specific, not abstract
- The stack β as described above
- Compensation range β yes, include it; you'll lose good candidates if you don't
- What you're NOT β size of team, stage of company, what this role isn't
Keep it under 600 words. Engineers are not impressed by long job posts. They're impressed by clarity.
If you're not sure where to start, you can use our free job description generator to build a solid draft based on role type, stack, and seniority β then edit it to match your voice.
Where to post
You don't need to be everywhere. For early-stage companies hiring one to three engineers a year, focus your energy on:
- LinkedIn Jobs β highest volume, worth the $200β400/month for a sponsored post if you're in a hurry
- Hacker News (Who's Hiring) β free, posted on the first of each month, surprisingly effective for technical roles
- We Work Remotely β $299 flat fee, good if the role is remote-first
- Your own network β underused by founders who feel awkward asking; just post on LinkedIn personally and be direct
Skip the big job boards like Indeed for software engineers. The signal-to-noise ratio is brutal.
Expect 2β4 weeks to build a reasonable pipeline for a mid-level role. Senior roles and niche stacks take longer.
Screening without a technical background
This is the part founders dread most. You don't know enough to evaluate a senior Rails engineer. Fair. Here's how to handle it.
Use a structured async screen first
Before any call, send every candidate a short written questionnaire (3β5 questions). This does three things: filters out people who don't read carefully, gives you something to compare across candidates, and saves everyone time.
Sample questions:
- Tell me about the last non-trivial feature you built end-to-end. What were the tricky parts?
- What's a technical decision you made that you'd make differently now?
- Walk me through how you'd approach debugging a production issue you've never seen before.
You don't need to be technical to read these answers. You're looking for specificity, self-awareness, and clear thinking.
Bring in a technical advisor for the deep screen
For the actual technical evaluation, find someone who can run a 45-minute technical conversation. This could be:
- A friend or former colleague who's an engineer
- A fractional CTO (many will do a one-off screen for $150β300)
- An advisor you've granted a small equity stake to
Don't use a take-home test as your only technical filter. They take hours of the candidate's time and the completion rate drops sharply at senior levels. Use a 45-minute live technical conversation instead β it's faster for everyone and tells you more.
If you insist on a take-home, keep it under two hours and pay for it. A $100β200 gift card for a multi-hour test is table stakes at this point.
What to look for
Beyond technical ability, you're evaluating for:
- Communication β Can they explain something complex simply? This matters enormously in a small team.
- Ownership mindset β Do they talk about what they did, or what the team did (in a way that obscures their role)?
- Scope comfort β A great engineer at a 500-person company can be a terrible fit at a 5-person startup because the ambiguity is paralyzing for them. Ask explicitly: "What does your ideal working environment look like?"
The offer
For a mid-level software engineer in the US in 2024, expect to pay $120,000β$160,000 base depending on location and stack. Senior engineers in competitive markets run $160,000β$200,000+. Remote-first roles have compressed geographic salary differences significantly.
If you're offering equity, be specific. "We offer competitive equity" tells candidates nothing. "We're offering 0.25% with a 4-year vest and 1-year cliff, currently valued at X" is a real offer.
Move fast once you've decided. Good engineers have short decision windows. If you wait two weeks to send an offer after the final interview, assume they've accepted something else.
Reference checks
Call at least two references, and ask for references who managed them, not just colleagues. Ask: "Would you hire this person again, and in what context would they be at their best?" The second part of that question tells you more than the first.
What this whole process should cost you
If you do this without a recruiter, your cost-per-hire for a software engineer should run $2,000β$5,000 in job board spend, screening time, and advisory fees. A retained recruiter will charge 20β25% of first-year salary β that's $25,000β$40,000 for a senior role. For one to two hires per year, the DIY process is almost always worth the effort.
Where Penroll fits
Penroll is built for exactly this kind of hire β founders running a structured process without a recruiter or HR team. It helps you build the job post, structure your screening questions, and track candidates without the overhead of an enterprise ATS. If you're hiring one to five people a year and want a process that doesn't fall apart between interviews, it's worth a look.