/faq
Tell me about yourself
I'm a senior full-stack engineer who learns and remembers through problems, not textbooks.
I don't retain theory by reading it once — I retain systems by breaking them, fixing them, and living with the consequences in production. Once I've debugged something real, I remember it permanently.
Most of my work is taking messy, manual, or fragile systems and turning them into something reliable, automated, and boring to operate. I work end-to-end, take ownership, and optimise for outcomes over how elegant something looks on paper.
How do you actually learn and retain things?
Through real problems.
I don't memorise frameworks or patterns out of context. I learn by:
- Debugging failures
- Tracing state through a system
- Fixing production issues
- Seeing what breaks under load or change
Once I've solved a real problem, I remember:
- what went wrong
- why it failed
- how it should have been designed
That kind of memory sticks far better than abstract reading ever has.
What are you best at?
- Debugging complex, messy systems
- Seeing where state, data, or assumptions go wrong
- Fixing problems others have normalised
- Designing systems that survive real usage
- Reducing manual work through automation
- Making CMS and backend systems sane to work with
I'm especially strong when things aren't clean, documented, or well understood.
How do you approach problem-solving?
I build a mental model of the system as it actually behaves:
- Inputs
- Constraints
- State
- How state changes
- Where things can fail
Once that model is clear, solutions tend to become obvious.
I don't need perfect documentation — I need enough signal to trace reality.
What's your core tech stack?
Core
- Laravel
- Python
- TypeScript
- React / Next.js
AI & data
- LLMs (OpenAI, Anthropic)
- LangChain
- RAG pipelines
- Vector databases (Pinecone, Qdrant)
Infrastructure
- Supabase
- Docker
- CI/CD
- GitHub Actions
I'm not attached to tools. I'm attached to systems that work.
How do you use AI in production?
Carefully and intentionally.
I use AI where it:
- Removes manual work
- Helps with classification, retrieval, or summarisation
- Supports humans instead of replacing judgment
That usually means:
- RAG instead of free-form generation
- Clear boundaries and fallbacks
- Observable behaviour
- Costs and failure modes that are understood
If I can't explain what it's doing, it doesn't ship.
Do you build AI agents?
Sometimes — but only when they're constrained.
Most real systems work better with:
- Deterministic flows
- Explicit state
- AI used in narrow, well-defined steps
When I do build agent-like behaviour, it's:
- Interruptible
- Observable
- Scoped to a real task
- Designed to fail safely
How do you approach backend architecture?
I favour:
- Simple, boring designs
- Clear ownership
- Predictable failure modes
I don't chase novelty. I chase systems that:
- Are easy to debug
- Are hard to accidentally break
- Can be understood by the next person
If a system needs a diagram just to explain why it works, it's probably too complex.
Monoliths or microservices?
Monoliths by default.
I've seen too many teams add complexity before they have a real scaling problem. A well-structured monolith is usually faster to ship, easier to debug, and cheaper to run.
I reach for microservices only when reality forces the decision.
How do you test your work?
I test the parts that are expensive to get wrong.
That usually means:
- Core logic
- System boundaries
- Anything that's painful to debug in production
I care more about confidence than coverage percentages.
How do you handle legacy systems?
With respect.
Legacy systems usually exist because they once solved a real problem. I try to understand why before changing anything.
I prefer:
- Isolating risk
- Improving things incrementally
- Leaving systems better than I found them
How do you work day-to-day?
I work in tight feedback loops:
- Understand the real problem
- Observe how the system actually behaves
- Make the smallest change that meaningfully improves it
- Ship
- Learn from reality
I optimise for momentum and clarity, not perfection.
What does success look like in your first 30 days?
- I understand the system well enough to debug it confidently
- I've shipped at least one meaningful improvement
- I've identified risks others have learned to live with
- I'm trusted to work independently
What roles are you looking for?
- Backend-heavy or full-stack roles
- Teams shipping real products
- Environments where engineers own outcomes
- Permanent roles or long-term contracts
- Remote-first preferred
What kind of work do you avoid?
- Roles with no ownership
- AI work that exists only for demos or pitches
- Over-engineered systems without users
- Teams where production is rare or political
What motivates you?
- Solving real problems
- Debugging hard things
- Removing unnecessary complexity
- Shipping systems people rely on
I get energy from making things work properly.
Why should someone hire you?
Because I:
- Stay calm in messy systems
- Debug effectively when things go wrong
- Take ownership instead of deflecting
- Ship improvements, not just ideas
- Don't need hand-holding
I'm not the loudest engineer in the room — I'm the one you want when things break.
What's your availability?
Open to the right permanent role or long-term contract.
Not interested in short, low-ownership engagements.
What's your rate or salary range?
Shared privately once there's alignment on expectations and scope.
If price is the first conversation, we're probably not a fit.
Final note
If you value engineers who learn through reality, debug deeply, and ship systems that survive contact with users, we'll work well together.
How do I contact you?
Email: jake@nought.digital