Addressing practical business needs with bespoke software

Addressing practical business needs with bespoke software

01 November, 2023 3 min read
software, development, python

Coding is so approachable and accessible nowadays, that you don’t need to be a full-time software developer to compose something that creates value.

It’s been a bit longer than one year (months before ChatGPT dropped) since I cobbled together an offer-generation API with FastAPI for TECTRA Ltd that has reduced manual effort (and typos!) to the bare minimum, increasing our responsiveness to customer inquiries at the same time.

How approachable is coding? Very, assuming that one has solid domain knowledge.

A few hours of early-morning and late-evening work here and there in the 4 days between “initial commit” and “now works!”

commit log of my offer-generation API/webapp for TECTRA Ltd

Features at “launch”:

  • The “shopping cart” of the offer is represented as comma-separated strings that are easily parsed: [item code] | [!MPN] x[quantity] @[unit price]
  • The item descriptions are pulled from the ProductItems API
  • The company information is pulled from the VATcheck API , which pulls from GSIS (the Greek Secretariat for Information Systems)
  • The rest of the information is passed as query parameters to a GET endpoint, and this makes the API callable from LibreOffice with the WEBSERVICE() function
  • Thanks to Bootstrap 5 theming, the print-only view of the generated offer matches the company’s document template of 20+ years

syntax guidance for the Offer API’s input field

Beyond that…

  1. It only took a few more hours to embed a QR code with a ULID that leads to TECtrack (deployed at track.tectra.gr ), another service I developed for order tracking (see example ) that uses FastAPI in the frontend, Django Ninja and Django Admin for the business backend, and Yggdrasil for tunneling between them.

  2. It took barely a couple of hours to add populating an ODT template (including the QR code) using relatorio and make it downloadable with a FastAPI StreamingResponse .

Total right now: 785 LOC of Python 3 code that wouldn’t pass a “code review”.

Is my code covered by unit tests? No, because I don’t know how.

Dockerfile? No.

Scalable? No.

Free of bugs? Very probable; it’s been running without interruption since 2022-09-15.

Design patterns? No.

Look, if you want to get into coding to solve some actual (and relatively simple) business problems, don’t let elitist gatekeepers bamboozle you.

Just get into it.

How? Little by little, like anything else.

Skim a book, read some docs, chat with a friend who knows how, google for answers, ask ChatGPT (and be wary of the garbage it confidently spews), spend $10 on a Udemy course, follow people here on Linkedin, watch a YouTube vid, and so on.

☝️ Having said that….

Software development is not an easy endeavor!

However, not all software requires the 🫰 expensive and highfalutin hijinks that you read about from professional coders on LinkedIn.

So, dive into it, as a side/passion project.

Worst case: you get stuck, and end up with a much better understanding of the true complexity of the problem you need to solve. And then, wiser, you contact the professionals.