Software Developer: Role Profile, KPIs and Interview Questions
Find a software developer role profile, key performance indicators (KPIs) and hiring materials. Use them to agree on business outcomes and assess how independently a candidate can work.
Job profiles, hiring, onboarding and reviews are in PapaHR. Free for up to 25 employees.
- Take the profile below or build your own with the builder.
- In PapaHR the profile turns into a job ad, an onboarding plan and probation goals.
- After 90 days, review the person against the same KPIs and competencies.
Job profile
Why the role exists
Build and maintain software that helps customers and reduces manual work for the business.
Result in a year
Agreed changes are working for users, critical scenarios have automated tests, and another developer can understand the code and continue the work.
Place in the structure
- Reports toEngineering Manager; in a small team, the project's technical lead.
- Direct reportsNone
- Works withProduct manager — user value and acceptance criteria, Project manager — deadlines, dependencies and task priorities, Software tester — test scenarios and reproducing defects, Designer — interface behaviour and unclear states, Customer support — user problems after release, Information technology (IT) specialist — access and development environment
Key result areas
- Users receive the agreed changes — Development plan completionExample: 100% of the agreed plan completed.
- Completed work passes acceptance without rework — First-pass acceptance rateExample: 100% of tasks accepted at their first review.
- Automated tests protect important scenarios — Automated testing plan completionExample: 100% of planned scenarios protected by working tests.
- Defects are fixed within agreed deadlines — On-time defect resolutionExample: 100% of defects due for resolution fixed on time.
- The team can maintain released changes — Release documentation readinessExample: 100% of planned documentation ready for release.
Requirements
Experience: Independent changes to a live product, matching the role's seniority.
Formal: Ability to explain your code and decisions; relevant degree optional.
Should know
- The team's programming language and libraries
- Data storage and integrity checks
- Version control and collaborative development
- Automated software testing methods
- Error handling, access permissions and protecting secrets
- Build, release and rollback procedures
Should be able to
- Read existing code before changing behaviour
- Reproduce defects and verify their causes
- Write tests for important scenarios and constraints
- Explain technical decisions in language the business understands
- Estimate work with unknowns and dependencies
- Hand over changes with testing and maintenance instructions
Competencies at three levels
Understanding the problem
Prevents time being spent on features that do not solve users' problems.
- Restates the task and clarifies unclear requirements before starting.basic
- Agrees scenarios, constraints and completion criteria before estimating delivery.solid
- Identifies unnecessary work and proposes a simpler route to the required outcome.strong
Clear, maintainable code
Reduces the cost of future changes and reliance on one person.
- Follows the project structure and addresses code review feedback.basic
- Separates component responsibilities and explains design choices.solid
- Simplifies complex areas gradually while preserving working product behaviour.strong
Quality and testing
Protects users from broken functionality and reduces repeated fixes.
- Checks the main scenario and adds tests with guidance.basic
- Independently checks boundaries, invalid data and related scenarios.solid
- Chooses tests by failure impact and addresses causes of recurring incidents.strong
Finding defect causes
Helps restore the product without speculative changes or recurring failures.
- Collects failure conditions and reproduces the problem in a safe environment.basic
- Tests hypotheses using evidence and verifies the fix by retesting.solid
- Isolates failures across components and proposes ways to prevent recurrence.strong
Ownership of delivery
Makes delivery dates clearer and carries changes through to a working release.
- Reports blockers and checks completion against the task's acceptance criteria.basic
- Includes testing and release in estimates and flags delays early.solid
- Agrees scope reductions when risks arise and verifies results after release.strong
Collaboration
Enables constructive technical discussions and code handovers without losing knowledge.
- Explains their code and asks colleagues specific questions.basic
- Gives useful feedback and discusses solutions without personal criticism.solid
- Helps the team agree on solutions and shares knowledge through joint work.strong
Build the profile for your company
Tick what this person does at your company. On the right is the ready profile: copy it or open it in PapaHR.
Build and maintain software that helps customers and reduces manual work for the business.
Duties- Clarify user needs and acceptance criteria before writing code
- Break changes into small, testable tasks
- Estimate delivery dates and flag delay risks early
- Write clear code using the team's chosen technologies
- Check normal scenarios, errors and edge cases
- Cover important logic with automated tests
- Review colleagues' changes and address feedback on your code
- Prepare releases and a way to restore the previous version
- Find the causes of failures and fix defects
- Document setup, limitations and maintenance of changed components
- Integrate external services and handle connection failures
- Migrate data between versions and verify its integrity
- Improve slow operations after measuring their causes
- Set up automated checks before release
- Join an agreed on-call rota for product incidents
- Coach junior developers through shared tasks
- Assess technical constraints of new product ideas
Software developer KPIs
- Development plan completion — Accepted planned tasks / agreed planned tasks × 100%. Mistake: Treating unequal tasks equally; hiding delays through retrospective plan changes.weight 30% · month
- First-pass acceptance rate — Tasks accepted without rework / tasks first reviewed × 100%. Mistake: Excluding rejected tasks; accepting code without checking acceptance criteria.weight 25% · month
- Automated testing plan completion — Planned scenarios with working tests / planned scenarios × 100%. Mistake: Increasing test counts without checking important scenarios and invalid inputs.weight 20% · month
- On-time defect resolution — Defects fixed on time / defects due for resolution × 100%. Mistake: Counting unverified fixes; leave the measure uncalculated when no defects are due.weight 15% · month
- Release documentation readiness — Release-ready documents / documents in release plan × 100%. Mistake: Counting documentation that does not let a colleague run or test the change.weight 10% · month
Work out the KPI bonus
Enter how much of each target was met, in percent, and the bonus at 100%. You can change the weights.
The weights are an example. They should add up to 100%.
Interview questions
Run the interview and get the result
Score each answer from 1 to 5 and the total is worked out by competency. Keep this page open on your phone during the interview.
Understanding the problem
✓ Listen for: Specific questions, agreed scenarios, personal actions and a verified outcome.
⚑ Red flag: Started coding without clarification, then blamed the requester.
✓ Listen for: Understood the need, compared options, agreed a simpler approach and checked its value.
⚑ Red flag: Removed required behaviour without consulting the task owner.
Clear, maintainable code
✓ Listen for: Investigated dependencies, limited changes, added checks and explained the result.
⚑ Red flag: Rewrote a large section without checking dependencies.
✓ Listen for: Acknowledges a specific problem, explains the fix and its effect on colleagues.
⚑ Red flag: Cannot identify a poor decision of their own.
Quality and testing
✓ Listen for: Identifies the missed scenario, the fix and a test detecting the original defect.
⚑ Red flag: Considers testing solely the tester's responsibility.
✓ Listen for: Prioritised critical scenarios, tested errors and communicated remaining risks.
⚑ Red flag: Only tested the successful scenario and told nobody.
Finding defect causes
✓ Listen for: Reproduction, observations, systematic hypothesis testing and verification of the fix.
⚑ Red flag: Changed several things at once without knowing what helped.
✓ Listen for: Checked environment and inputs, collected logs and investigated differences.
⚑ Red flag: Closed the report because it worked on their machine.
Ownership of delivery
✓ Listen for: Early warning, clear cause, revised plan and an agreed result.
⚑ Red flag: Only reported the delay after missing the deadline.
✓ Listen for: Release criteria, rollback method, operational checks and coordination with support.
⚑ Red flag: Considers work complete as soon as code is handed over.
Collaboration
✓ Listen for: Discussed consequences, used evidence and recorded the agreement.
⚑ Red flag: Used seniority to force agreement or criticised colleagues personally.
✓ Listen for: Explained the structure, documented setup and checked the colleague could make a change.
⚑ Red flag: Sent a code link and considered the handover complete.
Weak:
Test task
Reserve stock without partial deductions · 2 hours
Write a small function in a language agreed with the candidate. Inputs are stock levels and order lines containing a product code and quantity. Combine duplicate product lines. Quantities must be positive integers, and products must exist. If stock is sufficient, return updated stock levels. On any error, return a clear reason without changing the inputs. No database or interface is needed. Add automated tests, setup instructions and a short explanation of your decisions. Demonstrate a successful order, duplicate lines, an unknown product, invalid quantities and insufficient stock. Note any limitations if you run out of time. Use sample data only.
How to assess it
- All requirements met; duplicate product lines combined
- An error in one line prevents all stock deductions
- Input data remains unchanged regardless of the result
- Tests cover successful orders, errors and boundary values
- Clear code without unnecessary components or dependencies
- Instructions allow execution; limitations are stated clearly
Ready job ad
Software Developer at [company name]
We build [product] for [users]. We need a developer to own [area of responsibility].
What you will do
- Develop [product components] using [language and technologies]
- Agree feature behaviour with [product owner]
- Write automated tests for important logic
- Review colleagues' code and act on feedback
- Fix defects and verify behaviour after release
- Maintain setup instructions and change documentation
What we need
- Development experience in [language] at [seniority level]
- Ability to understand existing code
- Experience collaborating through version control
- Ability to write tests and investigate defects
- Willingness to discuss deadlines, constraints and user value
What we offer
- Salary: $[salary], [review arrangements]
- Hours: [schedule], working arrangement: [format]
- Location: [city]
- Team: [team structure], reporting to: [manager's role]
- Equipment and access: [provision arrangements]
- Learning and feedback: [format and frequency]
In PapaHR this text becomes a job opening with a careers page and a candidate pipeline.
90-day onboarding plan
Before day one
- Send joining schedule and team contactsHR
- Prepare equipment and access with appropriate permissionsIT
- Choose a small first task with acceptance criteriaManager
- Check project setup instructions for the new starterMentor
Day one
- Demonstrate the product and main user actionsManager
- Explain secret storage and access request proceduresIT
- Run the project and automated checks in the development environmentNew hire
- Explain code review and release proceduresMentor
First week
- Complete the first task and add a verification checkNew hire
- Review the first change and explain feedbackMentor
- Demonstrate error logs and restoring the previous versionMentor
- Agree probation period goals and assessment methodsManager
30 days
- Release a small change under the mentor's supervisionNew hire
- Investigate a defect from reproduction to verified fixNew hire
- Discuss estimate accuracy and reasons for delaysManager
- Check access and team support are sufficientHR
60 days
- Independently clarify and complete a task of agreed complexityNew hire
- Add tests for risky scenarios in the changeNew hire
- Assess the usefulness of the new starter's code review feedbackMentor
- Compare results with probation period goalsManager
90 days
- Present released changes and evidence that they workNew hire
- Have another developer run the component using the new starter's instructionsMentor
- Assess independence, quality and delivery against the agreed planManager
- Discuss probation period outcomes and further developmentManager
Probation period goals
- Learn the workflow from project setup to releaseBy day 30, runs the project independently; a change is released with the mentor and verified.
- Independently carry agreed tasks through to acceptanceBy day 90, the agreed plan is complete; every task meets its acceptance criteria.
- Protect important changed scenarios with automated testsBy day 60, tests cover every agreed scenario and detect a deliberately introduced defect.
- Hand over maintenance knowledge for a changed componentBy day 90, a colleague runs the component and verifies a change using the prepared instructions.
Career path
Completes small tasks with clear requirements and regular guidance from a mentor.
To move up: Clarify and complete routine tasks independently, write tests and address review feedback.
Owns the complete change: clarification, code, testing, release and maintenance.
To move up: Resolve ambiguous tasks, identify dependencies and help colleagues improve their solutions.
Designs complex changes, reduces technical risk and develops other engineers.
To move up: For management, develop team planning, feedback and delegation skills.
Owns team outcomes, people development and a reliable release process.
To move up: Expand responsibility for technical direction as the business and team grow.
Questions for a 1:1 meeting
- Which current task still has an unclear user outcome?
- Which dependency could delay delivery, and how can I help?
- Where do we most often rework code after acceptance, and why?
- Which part of the product feels riskiest to change without more checks?
- Which manual release step takes the most time?
- Which code review comments keep recurring, and what would help?
- What maintenance knowledge about the component currently lives only with you?
- Which task would you like next to develop your independence?
Mistakes in hiring and managing
- Hiring from a technology checklist without discussing the candidate's decisions.
Better: Examine a specific change: problem, code, checks, constraints and outcome. - Measuring productivity by lines of code or small tasks closed.
Better: Assess accepted changes, work complexity and quality after release. - Changing requirements while keeping the original deadline without discussion.
Better: Reagree scope, deadline and priority; keep a history of plan changes. - Making the tester solely responsible for the developer's defects.
Better: Include developer checks and automated tests in task completion criteria. - Making one strong developer the sole owner of code and releases.
Better: Use peer reviews, document setup and regularly share component maintenance.
What a bad hire costs: Software developer
The same calculation as in PapaHR «HR in money»: the cost of hiring plus the salary for the months the new hire worked at half capacity.
In the first months a new hire delivers about half the result, so the company pays the other half of the salary for learning. In PapaHR the calculation uses your real leavers.
Questions and answers
What is the difference between a software developer and a programmer?
Job adverts often use these titles for the same role. Define whether the person will only write code or also clarify needs, test and release changes. State this in the role profile and advert.
How can a non-technical manager assess a software developer?
Ask about a past task: what was needed, what the candidate personally did and how they checked the outcome. Have an experienced developer assess and discuss the technical solution. Agree assessment criteria before interviewing.
Which performance measures work for software developers?
Start with agreed plan completion, acceptance and checks of important scenarios. Account for task complexity, new requirements and external delays. Lines of code do not show the value of a change.
Does a software developer need a technical degree?
The role requires understanding code, finding defects and releasing working changes. A degree alone does not demonstrate these abilities. Assess skills through tasks relevant to your product.
Can one developer handle an entire product?
First define the development, support and release workload. If one person handles everything, arrange code review and a way to hand over maintenance. Otherwise, leave or departure can stop product changes.
Hire, onboard and review in one system
PapaHR is free for up to 25 employees: job profiles, openings, onboarding, goals, 1:1 meetings and reviews.