Tag: CI/CD

  • Inside the Engine Room: How I Drive Scalable Analytics APIs, Reliability, and Performance

    Inside the Engine Room: How I Drive Scalable Analytics APIs, Reliability, and Performance

    I build and scale analytics platforms with a product mindset, and the work starts with the "middleware and compute systems that power analytics at scale." In platforms like Amplitude analytics and other unified analytics platform architectures, that foundation is what makes everything else possible.

    Day to day, I oversee the "APIs behind charts, cohorts, and metrics—driving performance, reliability, and platform scalability." When those APIs are fast and resilient, every product team—from growth to customer success—can trust the insights they use to ship, learn, and iterate.

    From an engineering leadership standpoint, I partner closely with SRE to define SLOs and error budgets, wire CI/CD pipelines for safe deploys, and track DORA metrics so we improve speed without compromising quality. This combination reduces incident management toil and shortens MTTR while keeping data freshness and query latency within strict thresholds.

    From a product management leadership lens, the goal is clarity: crisp APIs, predictable contracts, and transparent stakeholder management across data, engineering, and GTM teams. That alignment empowers product teams with reliable cohorts and metrics, accelerates experimentation, and de-risks roadmaps.

    If you’re scaling analytics, invest first in the platform layer: middleware and compute, schema governance, caching strategies, and cost-aware compute. Do that well, and the visible experience—charts, cohorts, and metrics—feels effortless, even as you grow to serve billions of events with confidence.


    Inspired by this post on Amplitude – Best Practices.


    Book a consult png image
  • AI-Ready Data Governance: A Practical Trust Framework

    AI-Ready Data Governance: A Practical Trust Framework

    You are ready to move an AI capability from pilot to production. The demo performs well, but the release review exposes harder questions: Which data produced this answer? Was the system allowed to use it? What happens when the data becomes stale, its meaning changes, or a customer challenges the result?

    If you cannot answer those questions quickly, you do not have an AI model problem yet. You have a trust-chain problem. The practical goal of AI-ready governance is to make every important input identifiable, interpretable, permitted, observable, and recoverable without turning each release into a committee project.

    Trust is a chain, not a model score

    A strong evaluation score can tell you how a system behaved against a defined set of cases. It cannot prove that production data was collected lawfully, interpreted consistently, retrieved with the right permissions, or handled according to retention rules. Those are separate conditions, and a trustworthy AI product needs all of them.

    My working definition is simple: trust is the justified ability to rely on an AI system for a defined use case and level of consequence. It is not a general property that a model earns once. Change the data, user, purpose, or action, and you need to validate the chain again.

    Use four questions to expose where that chain is weak:

    1. What did the system use? You should be able to trace the relevant inputs, transformations, retrieval results, and freshness state.
    2. What did the data mean? Business definitions, schemas, labels, and event taxonomies should be consistent enough that producers and consumers interpret the signal the same way.
    3. Was this use allowed? Data classification, consent, retention, purpose, and user permissions should travel with the data rather than disappear at the model boundary.
    4. Can you prove the controls worked? Automated checks, policy decisions, exceptions, human reviews, and operational events should leave evidence suitable for investigation and audit.

    A no to any one of these questions is a specific failure, not a vague lack of AI readiness. That distinction matters because the remedies differ. Missing or duplicate records require data-quality work. Conflicting definitions require semantic ownership. An unauthorized retrieval requires access-policy work. A grounded answer that still violates a product rule requires an output control. Retraining the model will not repair any of those failures.

    When an output is challenged, diagnose it in that order: authorization, retrieved context, source meaning and freshness, transformation logic, then model behavior. Starting with the model encourages expensive experimentation while the actual defect remains upstream.

    AI-ready does not mean making every table in the company pristine. It means the data used by a particular AI capability has an explicit purpose, accountable ownership, reliable semantics, enforceable policy, and enough lineage to reconstruct what happened. Treating data as a product turns those requirements into an operating responsibility instead of an indefinite cleanup program.

    Build a minimum control plane around each data product

    Start with the data products that feed production AI use cases. A data product may be an event stream, a document corpus, a labeled outcome set, or a derived feature set. For each one, create a contract that answers the questions a producer, consumer, reviewer, and incident responder will actually ask.

    • Purpose: the decision, experience, or workflow the data is intended to support.
    • Accountability: a data owner responsible for meaning and policy, plus an AI use-case owner responsible for how the product relies on it.
    • Semantics: field definitions, schema, taxonomy, labels, deduplication rules, and known limitations.
    • Quality: the agreed expectations for completeness, validity, uniqueness, and freshness, including what happens when an expectation is missed.
    • Lineage: where the data originated, which transformations changed it, and which indexes, features, or contexts consume it.
    • Policy: sensitivity classification, permitted purposes, access conditions, consent state, retention, masking, and deletion behavior.
    • Evidence: the tests, logs, approvals, exceptions, and monitoring signals that demonstrate the contract is operating.

    A quality SLA is only useful when it has a measurable condition and a failure response. Do not write that data should be timely. Define the freshness expectation appropriate to the use case, identify who receives the alert, and specify whether the AI product should continue, degrade, abstain, or escalate when the expectation is breached. The appropriate threshold will differ between use cases, so the contract should carry it rather than burying it in general policy.

    The next step is to enforce the contract at the moments when risk enters the system:

    • At change time, run schema and data-contract checks in CI/CD. Pair tracking or taxonomy changes with code review so a renamed event or field cannot silently alter downstream behavior.
    • At access time, apply least-privilege permissions through role- or attribute-based controls. Carry consent and purpose metadata into the decision, and apply masking or exclusion before sensitive values reach an index, training set, or prompt.
    • At request time, filter retrieval using the requesting identity and use case. Record which eligible inputs informed the response and which policy decisions were applied.
    • At output time, check for PII exposure, policy violations, unsafe actions, and adversarial behavior. Add human review where the consequence warrants judgment.
    • At incident time, preserve a usable audit trail and invoke a defined response playbook with an owner, containment path, and recovery decision.

    This is what it means to make approval workflows guardrails rather than gates. Schema checks, data contracts, least-privilege access, consent metadata, and policy-as-code can run inside the delivery workflow. A review board should handle material ambiguity and exceptions, not manually repeat checks that software can perform consistently.

    Do not apply one approval path to every AI change. Classify changes by data sensitivity, consequence, autonomy, reversibility, and external exposure. A low-consequence internal feature using non-sensitive data may be eligible for self-service release when its automated controls pass. A customer-facing capability using sensitive context needs designated review. A high-stakes or difficult-to-reverse action should retain meaningful human control.

    Human-in-the-loop is not satisfied by placing a person at the end of the workflow. The reviewer needs the relevant context, source trace, risk flags, and authority to stop or change the action. Otherwise, the human is only absorbing accountability from a system they cannot evaluate.

    Consent, lawful basis, retention, and regulatory duties depend on jurisdiction and the precise use of the data. Treat those as decisions to make with qualified privacy or legal counsel, then translate the decisions into technical rules. An architecture checklist is not a legal determination, and silently guessing can create customer and regulatory exposure.

    Govern the full path from ingestion to feedback

    Many AI governance programs focus on model output because that is what users see. The more persistent risks often begin earlier, when data is collected for one purpose, transformed without visible lineage, indexed under broader permissions, or reused as feedback without a deliberate policy decision. You need controls across the complete path.

    Ingestion and preparation

    Every input should arrive with enough metadata to determine its origin, owner, meaning, sensitivity, permitted use, retention rule, and freshness. If those attributes are unknown, label the gap rather than allowing an implicit assumption to harden into production behavior.

    Do not assume that permission to analyze data also grants permission to train on it, place it in a retrieval index, or expose it to another user through generated text. Evaluate each purpose explicitly. Apply deterministic masking and exclusions before the data crosses into a system where removal becomes harder to verify.

    Data labeling deserves product-level attention. A label should have a documented definition, creation method, owner, and review path. If two teams use the same label to mean different outcomes, the model receives a conflict that infrastructure cannot resolve. If the definition changes, treat that change like an API change: identify consumers, test the impact, and preserve the lineage.

    Retrieval and response

    A retrieval-first architecture can improve grounding only when retrieval itself is governed. At query time, determine the requesting identity, account context, permitted purpose, and eligible sources before assembling model context. Do not retrieve broadly and hope the prompt tells the model what to ignore.

    Keep the context window relevant as well as permitted. Irrelevant, conflicting, or stale material can obscure the signal even when every document is technically accessible. Context management should therefore enforce both policy and quality: authorized does not automatically mean useful.

    The system also needs an explicit failure behavior. When retrieval returns insufficient, conflicting, stale, or unauthorized material, decide whether the product should abstain, ask for clarification, use a constrained fallback, or route the case to a person. A fluent answer is not an acceptable default when the evidence is inadequate.

    For a material production interaction, retain enough evidence to reconstruct the event:

    • The requesting actor or account context, represented in a privacy-conscious way.
    • The use case and relevant system configuration.
    • The retrieved inputs and their lineage or version identifiers.
    • The access, consent, retention, and policy decisions applied.
    • The output risk flags and any automated intervention.
    • The human decision or override when review was required.
    • The time of the event and the retention class governing the evidence.

    Audit data needs governance too. Prompt and response logs can contain the same sensitive information you are trying to control. Collect the minimum evidence required for the stated purpose, mask where possible, restrict access, and apply an explicit retention rule. Logging everything forever is not traceability; it is an unmanaged secondary dataset.

    Feedback and continuous improvement

    User interactions, corrections, and business outcomes can improve an AI product, but they should not flow automatically into evaluation or training. First decide what the feedback represents, whether it is permitted for that purpose, how it will be labeled, and how long it should be retained.

    Build evaluation cases from approved examples and segment results by the use case and risk that matter. A single average can hide a severe failure in a sensitive path. Pair model evaluations with source-quality checks, retrieval traces, policy results, human-review outcomes, and data-drift monitoring. That lets you distinguish a model regression from a context, permission, or data-contract regression.

    Continuous monitoring, audit logs, PII checks, adversarial testing, drift detection, and incident playbooks make governance part of normal operations. The essential move is closing the loop: a failed case should lead to the layer that owns the defect, a corrective change, and a test that prevents the same failure from returning unnoticed.

    Measure whether governance is earning trust

    A dashboard labeled governance health is not useful unless each metric supports a decision. Start with measures that reveal coverage, control performance, delivery friction, and product consequences. Define each numerator, denominator, owner, and escalation condition so the number cannot drift into decorative reporting.

    • Coverage: the share of production AI use cases with a named owner, current data contract, documented lineage, policy classification, and risk-based release path.
    • Data reliability: schema-check pass rate, freshness-SLA compliance, duplicate or missing-data failures, and restoration time after a breach.
    • Access and privacy: blocked unauthorized attempts, open policy exceptions, consent or retention violations, PII risk flags, and time to resolve each class of issue.
    • Traceability: the share of reviewed outputs for which the team can reconstruct the relevant inputs, transformations, policy decisions, and reviewer actions.
    • Evaluation: pass rates by use case and risk class, with failures attributed to data, retrieval, policy, model, or workflow layers.
    • Delivery: lead time from a production-ready change to release, manual-review waiting time, and rework caused by late data or policy discovery.
    • Consequences: incident frequency and severity, repeated failure modes, customer disputes, support escalations, and the product outcome the AI capability is meant to improve.

    Read these measures in pairs. Faster release time with a growing backlog of unreviewed exceptions is not healthy acceleration. A high number of blocked access attempts may indicate that controls are working, that clients are misconfigured, or that an attempted abuse pattern is increasing. A rising evaluation score alongside worsening traceability means you know more about test performance but less about production accountability.

    Do not collapse the dashboard into one trust score. A composite number hides which control failed and encourages teams to optimize the arithmetic. Executives can use a compact status view, but product, data, security, and privacy owners need the underlying measures and exception details.

    Each material release should also produce an evidence packet containing the current data contract, automated test results, evaluation results, applicable approvals or exceptions, monitoring configuration, and incident owner. This does not need to become a large document. It needs to be complete enough that a reviewer can reproduce the release decision without relying on memory.

    Finally, connect governance to outcomes rather than celebrating control activity. The relevant question is not how many reviews occurred. It is whether teams can ship responsibly with less rework, whether incidents and repeat failures decline, whether challenged outputs can be explained, and whether the intended product outcome improves without transferring hidden risk to the customer.

    A 30-60-90 day path from policy to operating system

    You do not need to finish an enterprise-wide catalog before improving one production path. Use a high-value AI capability as a vertical slice while the broader inventory progresses. That forces the governance design to survive real delivery constraints and produces reusable patterns for the next use case.

    Days 1-30: expose the current state

    • Inventory production AI use cases and the systems, datasets, indexes, outputs, and feedback loops they depend on.
    • Map one priority flow from collection through transformation, retrieval, generation, action, and feedback.
    • Assign accountable data and use-case owners. Record unknown ownership as a risk, not as a shared responsibility.
    • Classify PII and other sensitive data, then document the current consent, purpose, lawful-basis, and retention decisions with the appropriate specialists.
    • Define the first quality SLAs and failure behaviors for the inputs that can materially change the product result.
    • Publish a concise operating policy that product managers, engineers, analysts, security partners, and reviewers can use during normal delivery.

    The exit test is evidence, not document completion. For the priority use case, you should be able to name the owners, draw the data path, identify sensitive inputs, show the current permissions, and list the unresolved gaps that could block or constrain release.

    Days 31-60: turn decisions into controls

    • Standardize the metadata required for ownership, lineage, classification, consent, retention, quality, and permitted use.
    • Implement fine-grained access controls and propagate the requesting identity into retrieval.
    • Add consent-aware tracking, masking, and exclusions at the earliest enforceable point in the flow.
    • Wire schema checks, data-contract tests, PII checks, and policy checks into CI/CD and runtime monitoring.
    • Establish risk-based release paths so low-risk compliant changes can move without waiting for a general committee.
    • Create the first governance dashboard using access attempts, exceptions, quality failures, risk flags, trace coverage, and delivery time.

    The exit test is an end-to-end trace. Select a production interaction and reconstruct what the system used, what each important field meant, why access was allowed, which checks ran, and how an owner would respond if the result were challenged.

    Days 61-90: close the learning and accountability loop

    • Connect governance measures to outcomes such as release cycle time, avoidable rework, incident severity, repeat failures, and a defined customer-trust signal.
    • Add human review to high-consequence paths and give reviewers the context and authority required to make a real decision.
    • Run the incident playbook against a realistic failure and repair gaps in ownership, evidence, containment, or recovery.
    • Review exceptions for recurring patterns. Automate repeatable decisions and escalate unresolved policy ambiguity to the accountable owner.
    • Train product and engineering teams on the operating rules, then use a community of practice to share decisions and reusable controls.
    • Review one release using the complete evidence packet and remove any step that produces ceremony without decision value.

    The exit test is repeatability. A second team should be able to adopt the contracts, controls, evidence requirements, and escalation paths without inventing a separate governance system.

    Key takeaways

    • Define trust for a specific use case and consequence; do not treat it as a permanent property of a model.
    • Trace four things for every material output: inputs, meaning, permission, and control evidence.
    • Put governance into data contracts, CI/CD, access decisions, retrieval, monitoring, and incident response.
    • Use risk-based release paths so routine compliant changes move quickly while sensitive or high-consequence decisions receive judgment.
    • Measure coverage, control performance, delivery friction, and product consequences separately rather than hiding them in one score.
    • Use the first 90 days to prove one end-to-end operating path, then reuse it across additional AI products.

    At your next AI roadmap review, choose one production use case and ask the four trust-chain questions. Turn every missing answer into a named contract, control, owner, or test before expanding the capability’s reach. That is the point at which governance stops being overhead and starts making responsible delivery repeatable.

    References

  • AI Won’t Replace Engineers—Engineers Using AI Will: A Practical Playbook for Your Next Move

    AI Won’t Replace Engineers—Engineers Using AI Will: A Practical Playbook for Your Next Move

    Will AI replace software engineers or reshape their roles? Explore risks, opportunities, and alternative career paths in tech.

    I’m often asked whether AI will make software engineers obsolete. My short answer: AI is already automating tasks, not eliminating the role. The engineers who learn to orchestrate models, systems, and stakeholders will create more value—not less. The real shift is from keystrokes to judgment, from writing code to designing socio-technical systems that deliver outcomes.

    Today’s gen ai assistants—think Claude Code and ChatGPT connector—excel at unit test scaffolding, boilerplate generation, refactoring, docstrings, and code search. When integrated into CI/CD, they can open draft pull requests, annotate diffs, and propose fixes. This lifts developer productivity and frees time for higher-leverage work: problem framing, architecture decisions, and customer discovery.

    What changes in the role? We spend more cycles on product discovery, privacy-by-design, and AI Strategy, and fewer on repetitive implementation. We design agentic AI workflows that combine retrieval, tools, and guardrails; we evaluate trade-offs that blend performance, cost, and safety; and we partner with empowered product teams to ship the smallest valuable slice, learn, and iterate.

    Measure what matters. If AI is working, DORA metrics should improve: higher deployment frequency, shorter lead time for changes, stable change failure rate, and faster MTTR. Pair that with outcomes vs output OKRs to avoid gaming the system—shaving seconds off a build is meaningless if it doesn’t move activation, retention, or revenue. A unified analytics platform can help connect engineering signals to business impact.

    Risk is real—and manageable. AI risk management and data governance are now core competencies, not afterthoughts. Protect IP with robust access controls, context window management, and red-teaming. In production, instrument threat detection and response to catch prompt injection, data leakage, and model drift. Treat this like any other reliability discipline alongside SRE.

    If parts of coding get automated, where can great engineers thrive? Several high-impact paths are emerging: platform engineering for LLMs (tooling, evals, observability), SRE for AI-infused systems, developer evangelism and education, product management for AI-native experiences, security engineering focused on model and data threats, and forward deployed engineers who pair with customers to solve messy, real-world problems.

    How to upskill fast: build an AI product toolbox and ship small. Prototype gen ai features end-to-end—retrieval, function calling, human-in-the-loop QA—and connect them to your CRM integration or support stack. Use A/B testing with a clear minimum detectable effect (MDE) to validate impact. Leverage CustomGPT workflows for internal enablement and in-app guides or product tours to onboard users safely.

    Here’s a pragmatic 90-day plan. Week 0–2: audit your top 10 engineering tasks by time spent; identify 3 that are ripe for AI augmentation. Week 3–6: pilot inside CI/CD with explicit guardrails; track DORA metrics and developer sentiment. Week 7–10: productionize the wins; document runbooks; add incident management paths. Week 11–12: share learnings with product trios, refine your value proposition, and set next-quarter OKRs.

    AI won’t replace software engineers; engineers who master AI will outpace those who don’t. If we embrace the shift—toward systems thinking, responsible governance, and customer outcomes—we’ll build better products faster and open new, rewarding career paths. The opportunity is here and compounding.


    Inspired by this post on Product School.


    Book a consult png image