Revision: revised around a practical employer workflow, from a written brief and paid assessment to acceptance and usable handover.

Hiring a freelance software developer involves more than choosing a candidate. Define the work, establish how you will evaluate it, provide the decisions and access the developer needs, and agree what completion means. Those responsibilities remain with your business even when implementation is external.

This guide follows a fictional appointment-request dashboard through that process. It is a planning example, not a client case study or a claim that the sample application has been built. The aim is to make each decision reviewable before you commit to a larger piece of work.

Start with one task your business needs to complete

Imagine a small repair business receiving appointment requests through an existing website. Staff can read those requests, but have no consistent way to show which ones they have contacted. The proposed dashboard lists requests, filters them by status and lets authorized staff record a status change with its actor and time.

The first release does not schedule appointments automatically. Staff still agree availability with the customer through their existing process. Payment collection, calendar synchronization, automated messages and a customer login remain outside the scope. Marking a request “contacted” records an action; it does not send a message or confirm a booking.

Put that boundary in the brief, together with sample records, current software, access constraints, the decision owner and the expected handover. Describe what staff must accomplish before choosing a list of screens. If the workflow is unclear, commission a small discovery output before asking for a complete implementation estimate.

Decide who will direct and review the work

Name one person who can answer business questions, consolidate feedback and accept the result. Also identify who will review technical changes. A nontechnical owner can verify the staff workflow, but that does not replace a review of implementation and access controls.

Establish whether you are hiring someone to contribute under your technical lead or to deliver a defined outcome with review included. Our staff augmentation versus managed services guide explains the responsibility distinction. Hiring an individual does not by itself establish ongoing support or coverage when they are unavailable.

Shortlist against the brief

Our freelance developer platforms guide covers where to look. For this project, compare evidence of relevant application work, availability for your review process and the candidate's understanding of the proposed boundaries.

Ask candidates to explain their contribution to one comparable project: what they changed, what they inherited and how another person checked the result. Screenshots and client logos cannot establish individual responsibility. Accept authorized examples or redacted explanations; do not ask for a former customer's private code or records.

If the existing application uses PHP, the PHP hiring and sourcing guide helps match the role to the project, while our PHP developer assessment guide covers technical evaluation. Keep role-specific criteria separate from general confidence in a portfolio.

Use a paid assessment to resolve a specific uncertainty

A paid exercise can help when the relevant evidence is incomplete. Agree the payment, timebox, permitted assistance, deliverables and decision criteria before work begins. Use the developer assessment brief so each shortlisted candidate receives the same expectations and a written decision record.

For the dashboard example, supply a separate sample application with fictional requests and test identities. Ask the candidate to add one status-change action and explain how they checked it. Provide the starting environment and expected behavior so the exercise evaluates the intended work rather than unplanned setup effort.

Require a short change summary, the code diff, relevant checks and instructions for reviewing the result. Exclude production access, real customer information, external messages and unrelated redesign. The exercise is a proposed hiring assessment, not unpaid work for the live business.

Review whether the candidate clarifies ambiguous rules, respects the boundary and explains limitations. Ask them to account for missing or unauthorized records and a failed update. A small exercise provides limited evidence; it does not certify that someone can independently own every part of the eventual application.

Agree checkpoints with inspectable outputs

Use milestones that produce evidence you can review. A broad label such as “backend finished” does not show whether staff can complete the intended task. For this example, the following checkpoints connect work with an acceptance decision.

Suggested checkpoints for the fictional appointment-request dashboard
CheckpointEvidence suppliedEmployer's decision
Brief agreedWorkflow, exclusions, assumptions and sample records.Confirm what staff need and resolve open business rules.
Paid assessment reviewedA bounded change, review instructions and stated limitations.Decide whether the evidence supports the proposed role.
Working previewA usable request list and status-change journey with test data.Check the behavior and record specific corrections.
Release reviewRelevant test results, reviewed changes and deployment and recovery instructions.Accept the agreed requirements or identify the remaining defects.
HandoverSource, configuration notes, access inventory and operating instructions.Confirm another authorized person can maintain the result.

Agree how milestone completion relates to payment and review, including how incomplete items are recorded. Separate the candidate assessment from the later project engagement. Both parties should know which deliverable is currently being evaluated.

Make acceptance concrete

A sample requirement is: an authorized staff member can change request R-104 from “new” to “contacted,” and the dashboard records who changed it and when. A user without that permission cannot make the same change by opening a direct URL or sending the request manually.

Review the successful path and the exceptions. The status filter must show the updated result. A failed save must not falsely appear complete. The implementation should follow an agreed rule if two staff members update the same request. Define that rule before calling either behavior a defect.

Request written evidence against the agreed criteria and try the staff journey yourself. These are acceptance requirements for the example, not verified properties of an existing implementation. Keep an acceptance record identifying the version reviewed, unresolved defects and any explicitly deferred work.

Keep feedback and scope changes in writing

Agree a review cadence and response expectations that both sides can sustain. A concise written update can show what changed, link to the preview, identify a blocker and list the decisions needed. Record the outcome in the shared project space so progress does not depend on remembering a conversation.

Give feedback with a request identifier, steps, expected result and actual result. Consolidate conflicting comments before sending them. “Make it easier” is less actionable than identifying the task a staff member cannot complete.

If someone now wants calendar synchronization, record it as new scope. Ask for its dependencies, impact on existing work and revised estimate before authorizing implementation. Distinguish that request from correcting a status filter that fails an agreed requirement. Maintain a short decision log so the current scope is clear.

Keep accounts and working materials under business control

Establish where source code, documentation, domains and hosting accounts will live. Keep essential accounts under business control and grant named access needed for the work. A preview may need separate configuration from production; agree who can deploy and who approves the release.

Avoid sharing owner passwords or placing credentials in project notes and code. Review any request for broader access against the task. Clarify who manages secrets, backs up data and responds when something fails. These are operating responsibilities to assign, not benefits that arrive automatically with a developer hire.

Record rights to delivered work, third-party components and subscriptions that another maintainer will need. Repository access alone does not establish that every dependency is included or that someone else can run the application.

Finish with a handover someone can use

Receive the final source version, setup and deployment instructions, required configuration, relevant checks, known limitations and a list of outstanding work. The business owner also needs simple instructions for the staff workflow and a clear support route.

Have another authorized person use the instructions in a separate environment. Confirm they can start the application, exercise the dashboard and explain the release and recovery process. This rehearsal turns “documentation delivered” into evidence that the handover works.

Agree what support continues, how defects are reported and how future changes are commissioned. Review personal access and automation credentials separately when the engagement ends. Preserve the materials the business needs while removing permissions that no longer serve a task.

Our custom software development service starts with a written workflow and delivery scope. A brief containing sample data, exclusions and acceptance checks gives either a freelancer or a delivery team a concrete basis for a proposal.