| layout | home |
|---|---|
| title | Welcome to my blog |
| subtitle | Notes from the backend, real-time data, and AI trenches |
Hi, I’m Grainier Perera—a principal software engineer, open-source contributor, and long-time tinkerer with backend systems.
Over the last decade I’ve built stream-processing runtimes (Siddhi, Apache StreamPipes), language features for Ballerina, and distributed analytics at Macrometa.
This blog is my public notebook: concise write-ups of the things I keep re-googling, debugging, or just
3DE0
find too interesting not to document.
- Real-time & streaming: Siddhi, Flink, CEP patterns, latency war stories.
- Backend architecture: Rust, Java, Python; microservices, observability, and reliability tricks.
- AI agents & GenAI: LangChain / CrewAI experiments, LLM-powered test automation, prompt engineering.
- Data engineering: ELT pipelines (Singer, Airbyte), data mesh musings, quality / contracts.
- Side quests: Anomaly detection (River HSTs), crypto market data hacks, and the occasional DevOps rant.
- Reference for future-me – If I forget why a design decision was made, there’s a post here.
- Give back – Most of my career was accelerated by open-source docs and blog posts. Time to reciprocate.
- Start conversations – Disagree? Have a better way? PRs and comments are welcome!
Apache StreamPipes PMC / Ballerina & Siddhi committer.
Find me on GitHub, LinkedIn, or drop a line at grainier@apache.org.
New posts appear below in reverse-chronological order. Happy reading!