Custom Business Software
Custom business systems for managing internal data and workflows
const invoices = await db.invoice.findMany({
where: { status: 'overdue' },
take: 25,
});
for (const invoice of invoices) {
await notifyClient(invoice.clientId);
}const invoices = await db.invoice.findMany({
where: { status: 'overdue' },
take: 25,
});
for (const invoice of invoices) {
await notifyClient(invoice.clientId);
}const invoices = await db.invoice.findMany({
where: { status: 'overdue' },
take: 25,
});
for (const invoice of invoices) {
await notifyClient(invoice.clientId);
}type SyncPayload = {
orderId: string;
items: LineItem[];
total: number;
};
export async function syncOrder(payload: SyncPayload) {
return api.post('/orders/sync', payload);
}type SyncPayload = {
orderId: string;
items: LineItem[];
total: number;
};
export async function syncOrder(payload: SyncPayload) {
return api.post('/orders/sync', payload);
}type SyncPayload = {
orderId: string;
items: LineItem[];
total: number;
};
export async function syncOrder(payload: SyncPayload) {
return api.post('/orders/sync', payload);
}SELECT account_id,
SUM(amount) AS revenue
FROM transactions
WHERE processed_at >= $1
GROUP BY account_id
ORDER BY revenue DESC
LIMIT 10;SELECT account_id,
SUM(amount) AS revenue
FROM transactions
WHERE processed_at >= $1
GROUP BY account_id
ORDER BY revenue DESC
LIMIT 10;SELECT account_id,
SUM(amount) AS revenue
FROM transactions
WHERE processed_at >= $1
GROUP BY account_id
ORDER BY revenue DESC
LIMIT 10;if (!session?.user) {
return NextResponse.json(
{ message: 'Unauthorized' },
{ status: 401 }
);
}
await audit.log('report:generate');if (!session?.user) {
return NextResponse.json(
{ message: 'Unauthorized' },
{ status: 401 }
);
}
await audit.log('report:generate');if (!session?.user) {
return NextResponse.json(
{ message: 'Unauthorized' },
{ status: 401 }
);
}
await audit.log('report:generate');const queue = new JobQueue({
concurrency: 4,
retry: { attempts: 3 },
});
queue.push(() => exportCsv(reportId));
queue.push(() => sendWebhook(event));const queue = new JobQueue({
concurrency: 4,
retry: { attempts: 3 },
});
queue.push(() => exportCsv(reportId));
queue.push(() => sendWebhook(event));const queue = new JobQueue({
concurrency: 4,
retry: { attempts: 3 },
});
queue.push(() => exportCsv(reportId));
queue.push(() => sendWebhook(event));function formatCurrency(amount: number) {
return new Intl.NumberFormat('en-AU', {
style: 'currency',
currency: 'AUD',
}).format(amount);
}function formatCurrency(amount: number) {
return new Intl.NumberFormat('en-AU', {
style: 'currency',
currency: 'AUD',
}).format(amount);
}function formatCurrency(amount: number) {
return new Intl.NumberFormat('en-AU', {
style: 'currency',
currency: 'AUD',
}).format(amount);
}docker compose up -d
services:
app:
image: robhd/app:latest
depends_on: [db, redis]
db:
image: postgres:16docker compose up -d
services:
app:
image: robhd/app:latest
depends_on: [db, redis]
db:
image: postgres:16docker compose up -d
services:
app:
image: robhd/app:latest
depends_on: [db, redis]
db:
image: postgres:16Business software built around the way you work.
If your business is relying on spreadsheets, repeated manual tasks, disconnected systems or other bottlenecks, I can build highly efficient customised systems that save time, reduce mistakes and make your business easier to run.
25+ Years Experience
Decades of web, software and IT experience across many industries.
Full-Stack Delivery
Project architecture, design, development, deployment & maintenance.
Direct Expert Contact
I fully own, manage & complete the work. No middlemen, No handoffs to junior or offshore developers. Complete direct accountability.
Project Types
Some examples of the types of software I can build for clients.
Custom business systems for managing internal data and workflows
AI tools & integration using cloud-based AI (ChatGPT, Claude, Gemini, CoPilot etc) or self-hosted private servers
Staff portals, intranets, document systems and internal knowledge bases
Booking, enquiry, quoting and job management systems
Systems for managing client leads, contacts, job candidates
Admin dashboards and back-office control panels
Invoicing, ecommerce, payment and accounting-related systems
Custom database design & reporting tools
Data imports, clean-up pipelines
Web scraping, browser automation and online data collection
Integrations between all types of software systems
I can build a wide variety of custom software, so if you don’t see your project type listed here, just ask!
Why Clients Use RobHD
I take time to understand your business, ask the right questions and communicate in plain English so we build exactly what you need.
Clean code, solid databases and sensible architectures that are secure, maintainable and built to grow with your business.
I do not disappear after launch. I provide ongoing support, updates and improvements as your business evolves.





SameBoat



Starr Exchange









SimpleDocs
Tim Griffiths
Critical Input
I’ve worked with Rob continuously since 2014, across multiple businesses and projects.
Over this time, he's handled the development and ongoing management of multiple websites, as well as our custom-built CRM and HR software systems.
Rob combines extensive technical capability with clearly communicated business-focused guidance, which isn’t always easy to find in one individual. This is why I continue to work with Rob, and recommend him to others.

Mat Lewis
Margin Media
I’ve worked with Rob on and off since 2009. He’s someone I bring in whenever a project needs specialist, custom development.
Rob developed our SameBoat startup, delivering complex functionality that required real technical depth. Rob is reliable, detail-focused, easy to work with, and always thinks beyond the brief to find the best solution.
I can confidently recommend Rob for any custom software or web development work where quality and expertise matter.

Dr Lesley Petersen
Petersen Consulting
Rob has built, hosted, and managed my websites & online store for several years, and the experience has been consistently positive.
He is responsive, clear in his communication, and always willing to help or offer practical advice when I have needed it.
What I appreciate most about Rob’s work is his reliability and attention to detail in all the support he provides me with.

Rolf Drohn
GruenerX
I needed to get a great website for my business up and running quickly. Working with Rob was refreshingly straightforward. He provided great advice specific to my business's needs.
The speed from inception to delivery was incredible. And it's great being able to just send updates through at any time, without having another system I need to manage myself.
Rob's rare mix of mature business-level advice, and technical expertise to own and deliver the work means he consistently gets it right the first time.
Clients Have Included







