Hi Dan, I think you're unto something special cosmic pawprint. Unfortuately I could not bid on upwork due to my connect points being exhausted, so I have resolved to taking this approach and I hope you get to see it.
I may not be in Europe/Americas but I strongly believe I am the perfect fit to build up Furreal Paws.
My name is Sam Ayo, I'm an AI/ML engineer and a senior Software engineer with experience across many domains/industries and stacks.
-
Confirmation that you’ve reviewed my GitHub repo Well, I'm making a PR right now, lol. Anyway, run_pet_report.py I like it but rule number 1: load all imports at top of the scripts. Also, get_all_placeholders_from_prompts_definitions, it will be difficult to test this function because it does not follow single-responsibility principle.
-
What’s done well? The repo shows some good thought process especially for a non-pro programmer. 😁
-
What would you improve first? The structure. I'll restructure the code to follow a clean/onion architecture, that way it can scale and survive under growing user base.
-
A short timeline for delivering a working version. 2weeks: 3days to restructure, 7days to improve upon.
-
After reviewing my GitHub repo, what’s your honest impression of the current setup? What would you keep, and what would you rebuild from scratch? I think it meets ideation but can not serve customers as a product ideally.
6.How will you make sure the system handles any pet gracefully (parrots, snakes, horses, cats, etc.) and always produces something relevant and funny instead of failing? The database needs to continue growing and a for every new pet that's unaccounted for, we will log the user's submission and notify them immediately our system caters for it.
-
I’ve started using JSONs for astrology. How will you design JSON datasets for archetypes and numerology, and ensure the AI uses them accurately without hallucinating? I’d mirror the same modular JSON pattern you’re already using for Sun, Moon, Mercury, and Venus each built around: a unique section_id, a header_template, a set of ai_prompt_parts containing structured sub-blocks (like sparky_intro, astrological_heart, etc.) and lightweight metadata for tone tiering and style control. For archetypes and numerology, I’d expand this into data-first, prompt-second JSON schemas — meaning the JSON itself becomes both a knowledge base and a prompt template.
-
From a design perspective, how would you make the final report visually beautiful and engaging? Would you stick with PDF, generate a shareable image card too, or provide a web report link? Why? I'd go multi-format: PDF for download/email (classic, printable, great for keepsakes). Shareable image card (optimized 1:1 ratio) for virality, people love posting their “pet’s cosmic archetype” on socials. Web report (Nextjs frontend backed by FastAPI) for dynamic interaction animations, interactive numerology charts, and re-share options. The stack will auto-generate all three from one template using Jinja2 + WeasyPrint for PDFs and HTML-to-image libraries for cards. So: one source, three delightful outputs.
-
How will you ensure the system never fails to produce a report even if the AI times out or inputs are messy? Describe your fallback strategy. Three levels of insurance:
- Input Sanitizer: preprocess messy pet data using regex + schema validation (Pydantic) to standardize names and missing fields.
- Rule-based fallback generator: if AI fails, the system assembles a simple, template-based “personality sketch” using stored JSON data (so there’s always an output).
- Retry Queue with Graceful Degradation: failed AI calls are pushed to a Celery/RQ queue and retried asynchronously, while the user gets an immediate “basic version.” No report should ever fail — only improve after delivery.
- How can we test and verify accuracy and consistency over time (for astrology, archetypes, and numerology)? We'll build an evaluation suite:
- Unit Tests for JSON integrity (schema, completeness).
- Prompt Consistency Tests using a “reference set” of 100 known pet archetypes compare current outputs with prior stable versions using cosine similarity (embedding comparison).
- Human-in-the-loop QA where selected users rate humor + relevance.
- Store all generations in a versioned database (like Supabase or Mongo) to track drift over time and retrain if humor or tone degrade. Basically, continuous observability meets astrological QA. 😄
I hope you get to see this on-time. Looking forward to building this with you!