Hands-on senior software engineer

I build systems that hold up.

I work in Python, data, and the details that make software dependable. For 12 years at MediaPredict, I helped lay the technical foundation and stayed hands-on as the platform grew.

Now I’m applying that production experience to AI-assisted systems and agentic software development, with the same care for architecture, debugging, and correctness.

In the AI era, implementation is getting cheaper; architecture is not.

Selected work / MediaPredict / 2014–2026

Built early. Evolved in production.

I joined MediaPredict early, working alongside the founders on major architectural decisions for a distributed market-research platform. I built its foundation and stayed involved in the code, data, releases, and production operations for the next 12 years.

7M+ respondent rows · 300K+ unique attributes

A data engine with operational guardrails

Built a soft-real-time ETL engine with dedicated workers, validation, monitoring, operational controls, and circular-reference detection. Distributed Celery processing also eliminated up to 100 queries from large demographic reports and cut dashboard task fan-out threefold.

Hundreds of research hours saved

From fragmented research data to reusable analysis

Unified survey, pair-off, open-ended, and prediction-market data in one analytics extension that automated analysis and reporting. Reusable study templates reduced market creation time to 20% of its original duration.

Data evolution & production reliability

Changing the system while keeping it dependable

Led the migration from PostgreSQL hstore data to standard BI columns, with background orchestration, operational controls, and extensive automated tests. Hardened Celery workers and event-driven pipelines with batching, secure delivery, and failure handling; used targeted tracing to investigate production behavior.

Principal Software Engineer (official title: CTO), 2021–2026.
Previously Senior Software Engineer and Engineering Team Lead. Alongside implementation, I set technical direction, mentored and hired engineers, reviewed code and designs, and worked directly with researchers and business stakeholders.

AI & engineering approach

Faster implementation. Deliberate design.

Good software needs structure, context, and a clear understanding of who will live with it after it ships. Clear boundaries and well-defined contracts let components evolve or be replaced without destabilizing the system. They also make AI more effective.

01

AI in product workflows

At MediaPredict, I expanded LLM-assisted research automation: API integration, prompt design, classification, validation, and human review. Data-quality controls were part of the work.

02

Agents in development

I introduced agentic development workflows and use AI agents for codebase investigation, implementation, and test/debug cycles, with iterative validation throughout.

03

Design systems that can evolve

Set clear boundaries and interfaces so components can change without destabilizing the whole system.

04

Responsibility stays with me

I retain responsibility for system design, assumptions, edge cases, security, and production correctness. Reviewing the implementation and testing its behavior remain engineering work.

Technology

Deep foundations. New tools.

My strongest production experience is in Python and distributed data systems. Recent backend and AI work extends that foundation into asynchronous services, embeddings, and semantic search.

Backend & product

Python, Django, Celery, APIs, background jobs, and system integration. React for product interfaces.

Data

PostgreSQL, ClickHouse, Redis, SQL, and analytics pipelines. PostgreSQL trigrams and RapidFuzz for fuzzy and similarity matching.

Production & quality

Cloud platforms, CI/CD, automated tests, refactoring, incident resolution, and release discipline. Monitoring with Coralogix, Sentry, and New Relic, including custom spans.

AI and Automation

LLM-assisted workflows, classification and validation, human-in-the-loop systems, embeddings and semantic search, AI-assisted development, and exploration of agentic tooling.

Recent backend & AI work

FastAPI & Pydantic — extending deep backend experience to asynchronous Python services.

pgvector & Sentence Transformers — applied to embeddings and semantic search.

Earlier foundations

Software with a physical world attached.

At Inwindow and UrbanDigitalMedia, I built remote monitoring and control software for distributed digital-signage installations. Python, Django, PostgreSQL, device drivers, and automated alerts gave operators visibility into equipment health and reduced site visits.

At Dr. Oetker, I designed a manufacturing execution system from scratch. At ABB, I developed distributed services and SCADA systems for traffic, energy, and building automation, where downtime had immediate operational consequences.

That earlier depth in C++, device protocols, and system integration still informs how I think about reliability: understand the operating environment, make failures visible, and build for the people who depend on the system.

Let’s talk

Hard problems. Hands-on work.

I’m looking for senior, staff, or principal engineering work where architecture and implementation belong together, with a growing focus on AI-assisted systems.