Software

Software engineering is where strategy, data, and product intuition become something practical that saves people real time.

Why this section exists: the highest-value build is often a focused tool with a clear job, not a bloated platform with every possible feature.

Our focus: identify the gap, ship the minimum useful product, then iterate through disciplined releases tied to user pain points.

Invoice_gen: from family pain-point to shipped desktop app

Built after seeing small businesses and sole traders in my family/friend network manually craft invoices and chase formatting every single week. The goal was simple: ship installable binaries so nobody needs to run Python scripts to invoice professionally.

Invoice_gen splash screen
× Close

Invoice_gen: from family pain-point to shipped desktop app

1. The market gap we actually saw

Hook: people around me were doing real client work but still producing invoices manually in docs/spreadsheets because mainstream accounting tools felt heavy, and script-based tools were inaccessible.

This was especially clear with sole traders and small family businesses: they needed a predictable, professional invoice workflow, but they were not going to set up a Python environment just to bill a client. That gap shaped the product decision.

2. Product and design choices

The design principle was straightforward: reduce effort on repeat tasks and make confidence the default.

  • Profile-first forms: provider, recipient, and payment details are reusable so frequent invoicing does not mean repetitive typing.
  • Practical date controls: relative and absolute invoice-date modes cover real billing habits.
  • Clean PDF output: sender/recipient, metadata, line items, totals, and payment details are consistently structured.
  • Local history actions: recent invoices can be opened, deleted, or removed from list directly in-app.
  • Desktop packaging: Windows, macOS, and Linux binaries remove the “can’t run scripts” barrier.

3. Engineering approach

Implementation stayed intentionally modular and maintainable: UI/workflow orchestration, PDF generation, and persistence layers are separated so updates can ship quickly without destabilising the whole app.

Release engineering is part of the product surface: people judge reliability by whether they can install, run, and produce an invoice immediately. That is why binary delivery and repeatable releases were treated as first-class requirements.

4. Outcomes and user value

The strongest early signal was repeat behaviour: users reused defaults, generated invoices faster, and stopped hand-editing templates every time. In other words, the app removed friction from a real weekly workflow.

5. Product walkthrough

To make the feature/design decisions concrete, here are views from the shipped build: generated invoice output, the main desktop workflow, the payment-profile submenu, and the optional donation QR flow.

  • Output view: generated invoice layout with sender/recipient blocks, metadata, line items, totals, and payment details.
  • Main app view: profile-driven form flow, defaults, invoice date controls, and recent-invoice history actions.
  • Payment submenu view: focused edit dialog for PayPal/bank details to reduce context switching during billing.
  • Donation view: optional QR support so users can contribute without impacting the core invoice workflow.
Generated invoice PDF preview from Invoice_gen
Generated invoice output with structured sender/recipient details, itemised lines, totals, and payment information.
Invoice_gen desktop application main workflow
Main workflow for creating an invoice, selecting dates, and managing history from a single screen.
Invoice_gen payment detail submenu dialog
Payment profile submenu for editing reusable PayPal and bank transfer details without leaving the flow.
Invoice_gen donation QR support screen
Optional donation QR path that supports maintenance while keeping the application free to use.

6. Donation model

Invoice_gen is free to use. There is an optional donation QR code in the app for people who want to support ongoing maintenance and improvements.

Optional support via an in-app donation QR keeps the tool free while funding iterative improvements.

7. Downloads (direct links)

8. Useful links