Agentic development · Real data · No black boxes
I build agentic systems and data tools for real problems. Clear, auditable, and made to last.
I don’t sell AI for its own sake. I use it when it genuinely reduces work, and choose a simpler solution when it doesn’t.
I choose the environment around the risk, data, and operation.
You choose.
I design each tool to run where it makes sense: on your machines, on managed servers, or in your own cloud.
I can run the solution locally, on private servers, or in the cloud. The architecture adapts to the project’s risk and constraints.
I build components that can be inspected, reviewed, and maintained. No hidden APIs or opaque models behind a promise you cannot verify.
Duplicate data? Reports that break on Mondays? Audits that take weeks? Each tool targets a specific problem.
No month-long implementations. Activate the product that solves it, connect to existing infrastructure, and it starts working.
What starts solving a single problem becomes the team's operational backbone. Monitoring, traceability and automatic documentation.
Each product I build targets a specific problem. It can be deployed independently and grow with the operation.
A review-first operating system for building with AI agents
An open-source workflow for turning ambiguous work into small, reviewable units. It keeps human judgment, evidence, and delivery gates in the loop instead of hiding them behind an agent swarm.
Tableau and Power BI migration toward portable, verifiable BI
An engineering project for importing BI assets, preserving their intent, and building a validation workflow for numerical, semantic, and visual fidelity. Tableau → Power BI is the MVP; DataVIZ aims at a neutral, portable web runtime.
Total visibility of data flows, risk auditing, and technical lineage
Comprehensive platform for Apache NiFi. Automates security backups, detects critical changes in SQL code, tracks field-level lineage, and sends impact alerts to Microsoft Teams.
Instant queries about policies and metadata
Conversational assistant specialized in internal data structures, business rules, and governance policies. Find definitions without checking outdated wikis.
Automatic technical documentation generation
Autonomous value-stream documentor. Scans DBs, ETLs, Power BI DAX, Schedulers, AWS, and NiFi clusters to generate accurate data dictionaries and lineage maps.
Accurate image to editable document conversion
OCR engine designed for translators. Respects original formatting and outputs clean Word (DOCX) files, ready for CAT tools and Translation Memories.
Local live Closed Captions for meetings and translations
Real-time CC generation for any video calling platform. Facilitates comprehension and simultaneous translation with no visible latency.
Automatic dashboard migration without manual rebuild
Converts Tableau workbooks into Power BI reports automatically. Parses calculated fields, relationships, and visual layouts via AST analysis, no manual re-creation needed.
Physical and mental wellness dashboard focused on sleep

Personal health platform that measures, visualizes, and gamifies sleep and wellness habits. Turns health data into actionable metrics to improve quality of life day by day.
AI is a tool, not a religion. I use it where it genuinely reduces work and discard it where a simpler solution does the same job. What matters: the product works, is understandable, and is maintainable.
I build tools for concrete problems: data organization, smart search, automated auditing, and measurable wellbeing.
I don’t sell AI just to inflate the bill. I don’t ship demos that only work on stage or add complexity where a simpler tool would be better.
This is what a governance audit looks like inside. No prompts, no middleware layers — direct logic on real data.
# governance/audit.py — No magic, just engineering
def audit_data_asset(asset_id: str, config: AuditConfig) -> AuditReport:
"""Complete technical audit. No prompts,
no wrappers. Real validation on real data.
"""
asset = catalog.get(asset_id)
checks = [
validate_schema(asset, config.expected_schema),Validates that data structure hasn’t changed
check_freshness(asset, max_staleness_hours=config.sla_hours),Detects stale data before it breaks reports
]
findings = [c for c in checks if c.severity != Severity.OK]Surfaces only what actually failed
return AuditReport(asset=asset, findings=findings)Explore the products, try the tools, or book a demo directly.