View sivananda1995's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report sivananda1995

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sivananda1995/README.md
Sivananda Reddy Julakanti, AI/ML engineer: a neural network from ingest through features and training to serving

Profile viewsRepositoriesTests

I build tools around one question: what does this artefact structurally fail to tell you?


⏳ 8+

YEARS IN PRODUCTION

📦 8

ENGINEERED REPOS

🧪 1,807

TESTS, ALL PASSING

📐 39

DECISION RECORDS

🏆 2

CLOUD CERTIFICATIONS

A parity check cannot say which side is wrong. A Terraform plan cannot contain a loss its dependency graph has no edge for. A threshold on a small golden set cannot separate a regression from noise. A byte that has been sent cannot be recalled. Every repository on this profile supplies what the usual artefact cannot, and leads with the number it would rather not publish.


🧭 The Pivot Point

Three roles, and the shape of the move matters more than the dates.

2017 ──────────────► 2020 2022 ──────────► 2024 2024 ──────────► now
Wells Fargo, Data Engineer Adobe, ML Engineer Meta, AI/ML Engineer
ETL/ELT, Spark, Hadoop, feature pipelines, GenAI ranking and
Snowflake, cloud migration MLflow, productionising recommendation, RAG,
for risk and fraud analytics models behind FastAPI real-time inference
│ │ │
└── moved the data ─────────────┴── then moved the model ──────┴── now moves the decision

The pivot is not "data engineer becomes ML engineer". It is that each step kept the previous discipline instead of replacing it. The MS in Computer Science (2022) is the hinge: pipelines first, then models on top of pipelines, then generative systems that are only as trustworthy as the pipeline and the monitoring underneath them. That is why the repositories on this profile are about the plumbing of AI, not about model architectures: skew between training and serving, cost attribution per prompt version, what a guardrail lets through, what a plan actually destroys.


🔭 Current Focus

At Meta, now

  • LLM ranking and recommendation with RAG over vector stores
  • Real-time inference on Databricks, Spark and Delta Lake
  • MLOps with MLflow, Kubeflow and SageMaker: training, versioning, monitoring
  • Inference latency work: caching and model optimisation

In the open, now

  • llm-guardrail-proxy: what a guardrail lets through, measured
  • serving-skew-sentinel: arbitrating training and serving skew
  • mlplatform-iac-forge: blast radius of a Terraform apply
  • All eight repositories re-measure their own README numbers in CI

📊 Tech Stack, by Depth Rather Than by List

Levels are self-assessed against one test: could I debug it in production at 3am, or have I only shipped with it?

Python████████████████████Senior. 8 years, every repository on this profile
SQL███████████████████░Senior. Warehousing, as-of joins, query tuning
Apache Spark / PySpark██████████████████░░Senior. Event-log forensics, skew, shuffle behaviour
MLOps (MLflow, Kubeflow, SageMaker)█████████████████░░░Senior. Registry, monitoring, CI for models
Databricks / Delta Lake█████████████████░░░Senior. Feature store, transaction log internals
Kafka / streaming████████████████░░░░Advanced. Exactly-once, idempotency, watermarks
LLMs / RAG / prompt engineering████████████████░░░░Advanced. Retrieval evaluation, guardrails, cost
AWS (S3, Glue, EMR, Lambda)████████████████░░░░Advanced. Certified, plus IaC blast-radius work
Airflow / dbt███████████████░░░░░Advanced. Production orchestration and models
PyTorch / TensorFlow██████████████░░░░░░Intermediate. Fine-tuning and NLP workflows
Terraform / Kubernetes██████████████░░░░░░Intermediate. Deployed with both, audited both
Scala / Java██████████░░░░░░░░░░Intermediate. Read fluently, write when needed

🧱 Building Blocks

PythonApache SparkDatabricksDelta LakeApache KafkaSnowflake

MLflowPyTorchTensorFlowHugging Facescikit-learnDuckDB

AWSTerraformDockerKubernetesAirflowGitHub Actions


🗂️ The Eight

Each one exists because of something the usual artefact cannot tell you. The bold number is what it measured.

68 tests · 92% line

Diagnoses a Spark stage from the event log Spark already wrote, and separates key skew from stragglers, spill and too-few-tasks. Then benchmarks the fixes against each other: salting won 0 of 16 cells, broadcast 6.51x, salting 0.81x, slower than doing nothing.

74 tests · 90% line

Turns 123,417 LLM traces into an owned bill by team, feature and prompt version. 1.2% has no owner and is reported rather than spread. Finds a prompt version that tripled a team's input tokens two days after it shipped, at a robust z-score of 10.17 where a 3.5-sigma rule sees 2.90.

98 tests · 96% line

Exactly-once split into three promises that are checked separately, then proved by killing real processes mid-transaction: 24 of 24 converged from 24 kills and 72 restarts. The offset design everyone writes first leaves 193 rows wrong while reporting zero lag.

186 tests · 92% line

Blocks a pull request on a real retrieval regression and refuses to fire on noise, using a tolerance plus a 95% paired bootstrap. Catches a 6.8 point recall@5 drop; reports a borderline case as WARN because the interval contains zero.

266 tests · 95% line

Names which of 11 corruption modes a Delta table has rather than reporting that it differs, then bisects the transaction log to the commit that caused it. A naive float sum gives 27 different totals over 200 shuffles; fsum gives one.

219 tests · 96% line

Parity says the two paths differ and cannot say which is wrong, so this implements the declared feature semantics a third time and arbitrates: 16 of 16 causes named against 13 without it, with a side blamed on 12. Severity is measured in decisions changed, not mismatch counts.

190 tests · 97% line

Plan: 7 to destroy against 18,344,400 objects and items actually lost, 6 of them from resources the plan never mentions, because Terraform's graph has no edge from a KMS key to the data it protects. Plus a 28.7 minute window where the data is gone and there is nowhere to restore it to.

706 tests · 100% line + branch

Reports what the guardrail let through. 16 characters of a detected key reach the client at a lookback of zero. A false positive rate of zero over 34 samples caps precision at 1.34%, leaving 3 of 3 blocking actions unsupported by the evidence, and 24 letters switch a fail-open route off.


🎓 Credentials

AWS CertifiedDatabricks CertifiedMS Computer Science

🤝 Quick Connect

EmailLinkedIn



Open to roles where the hard part is a system that has to stay correct under failure, rather than a model that has to score well on a benchmark.


Popular repositories Loading

  1. Rag-regression-gate Rag-regression-gatePublic

    CI gate that blocks a pull request when RAG retrieval quality regresses and confirms when a change genuinely improved it, using a paired bootstrap so small-golden-set noise cannot cry wolf. Held-ou…

    Python

  2. llm-spend-attributor llm-spend-attributorPublic

    Attributes LLM token spend to teams, features and prompt versions from request traces, pricing each request at the rate in force when it was made. Finds a prompt version that tripled one team's tok…

    Python

  3. cdc-exactly-once cdc-exactly-oncePublic

    Change-data-capture applier that converges to exactly the rows the source log implies - under duplicate delivery, out-of-order delivery, and 24 processes killed mid-transaction. Contiguous low wate…

    Python

  4. spark-skew-doctor spark-skew-doctorPublic

    Diagnoses Spark data skew from the job's own event log - no cluster, no JVM - and tells key skew apart from a straggler by comparing task time against bytes read. Then measures the fixes against ea…

    Python

  5. lakehouse-reconciler lakehouse-reconcilerPublic

    Reconciles a Delta table against its source of truth across five levels, names the corruption mode out of 11 rather than reporting "these tables differ", and bisects the Delta log to the version th…

    Python

  6. serving-skew-sentinel serving-skew-sentinelPublic

    Arbitrates training and serving skew by implementing the declared feature semantics a third time, so a parity check that can only say "the two paths differ" becomes one that names the cause and bla…

    Python

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
View sivananda1995's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report sivananda1995

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sivananda1995/README.md
Sivananda Reddy Julakanti, AI/ML engineer: a neural network from ingest through features and training to serving

Profile viewsRepositoriesTests

I build tools around one question: what does this artefact structurally fail to tell you?


⏳ 8+

YEARS IN PRODUCTION

📦 8

ENGINEERED REPOS

🧪 1,807

TESTS, ALL PASSING

📐 39

DECISION RECORDS

🏆 2

CLOUD CERTIFICATIONS

A parity check cannot say which side is wrong. A Terraform plan cannot contain a loss its dependency graph has no edge for. A threshold on a small golden set cannot separate a regression from noise. A byte that has been sent cannot be recalled. Every repository on this profile supplies what the usual artefact cannot, and leads with the number it would rather not publish.


🧭 The Pivot Point

Three roles, and the shape of the move matters more than the dates.

2017 ──────────────► 2020 2022 ──────────► 2024 2024 ──────────► now
Wells Fargo, Data Engineer Adobe, ML Engineer Meta, AI/ML Engineer
ETL/ELT, Spark, Hadoop, feature pipelines, GenAI ranking and
Snowflake, cloud migration MLflow, productionising recommendation, RAG,
for risk and fraud analytics models behind FastAPI real-time inference
│ │ │
└── moved the data ─────────────┴── then moved the model ──────┴── now moves the decision

The pivot is not "data engineer becomes ML engineer". It is that each step kept the previous discipline instead of replacing it. The MS in Computer Science (2022) is the hinge: pipelines first, then models on top of pipelines, then generative systems that are only as trustworthy as the pipeline and the monitoring underneath them. That is why the repositories on this profile are about the plumbing of AI, not about model architectures: skew between training and serving, cost attribution per prompt version, what a guardrail lets through, what a plan actually destroys.


🔭 Current Focus

At Meta, now

  • LLM ranking and recommendation with RAG over vector stores
  • Real-time inference on Databricks, Spark and Delta Lake
  • MLOps with MLflow, Kubeflow and SageMaker: training, versioning, monitoring
  • Inference latency work: caching and model optimisation

In the open, now

  • llm-guardrail-proxy: what a guardrail lets through, measured
  • serving-skew-sentinel: arbitrating training and serving skew
  • mlplatform-iac-forge: blast radius of a Terraform apply
  • All eight repositories re-measure their own README numbers in CI

📊 Tech Stack, by Depth Rather Than by List

Levels are self-assessed against one test: could I debug it in production at 3am, or have I only shipped with it?

Python████████████████████Senior. 8 years, every repository on this profile
SQL███████████████████░Senior. Warehousing, as-of joins, query tuning
Apache Spark / PySpark██████████████████░░Senior. Event-log forensics, skew, shuffle behaviour
MLOps (MLflow, Kubeflow, SageMaker)█████████████████░░░Senior. Registry, monitoring, CI for models
Databricks / Delta Lake█████████████████░░░Senior. Feature store, transaction log internals
Kafka / streaming████████████████░░░░Advanced. Exactly-once, idempotency, watermarks
LLMs / RAG / prompt engineering████████████████░░░░Advanced. Retrieval evaluation, guardrails, cost
AWS (S3, Glue, EMR, Lambda)████████████████░░░░Advanced. Certified, plus IaC blast-radius work
Airflow / dbt███████████████░░░░░Advanced. Production orchestration and models
PyTorch / TensorFlow██████████████░░░░░░Intermediate. Fine-tuning and NLP workflows
Terraform / Kubernetes██████████████░░░░░░Intermediate. Deployed with both, audited both
Scala / Java██████████░░░░░░░░░░Intermediate. Read fluently, write when needed

🧱 Building Blocks

PythonApache SparkDatabricksDelta LakeApache KafkaSnowflake

MLflowPyTorchTensorFlowHugging Facescikit-learnDuckDB

AWSTerraformDockerKubernetesAirflowGitHub Actions


🗂️ The Eight

Each one exists because of something the usual artefact cannot tell you. The bold number is what it measured.

68 tests · 92% line

Diagnoses a Spark stage from the event log Spark already wrote, and separates key skew from stragglers, spill and too-few-tasks. Then benchmarks the fixes against each other: salting won 0 of 16 cells, broadcast 6.51x, salting 0.81x, slower than doing nothing.

74 tests · 90% line

Turns 123,417 LLM traces into an owned bill by team, feature and prompt version. 1.2% has no owner and is reported rather than spread. Finds a prompt version that tripled a team's input tokens two days after it shipped, at a robust z-score of 10.17 where a 3.5-sigma rule sees 2.90.

98 tests · 96% line

Exactly-once split into three promises that are checked separately, then proved by killing real processes mid-transaction: 24 of 24 converged from 24 kills and 72 restarts. The offset design everyone writes first leaves 193 rows wrong while reporting zero lag.

186 tests · 92% line

Blocks a pull request on a real retrieval regression and refuses to fire on noise, using a tolerance plus a 95% paired bootstrap. Catches a 6.8 point recall@5 drop; reports a borderline case as WARN because the interval contains zero.

266 tests · 95% line

Names which of 11 corruption modes a Delta table has rather than reporting that it differs, then bisects the transaction log to the commit that caused it. A naive float sum gives 27 different totals over 200 shuffles; fsum gives one.

219 tests · 96% line

Parity says the two paths differ and cannot say which is wrong, so this implements the declared feature semantics a third time and arbitrates: 16 of 16 causes named against 13 without it, with a side blamed on 12. Severity is measured in decisions changed, not mismatch counts.

190 tests · 97% line

Plan: 7 to destroy against 18,344,400 objects and items actually lost, 6 of them from resources the plan never mentions, because Terraform's graph has no edge from a KMS key to the data it protects. Plus a 28.7 minute window where the data is gone and there is nowhere to restore it to.

706 tests · 100% line + branch

Reports what the guardrail let through. 16 characters of a detected key reach the client at a lookback of zero. A false positive rate of zero over 34 samples caps precision at 1.34%, leaving 3 of 3 blocking actions unsupported by the evidence, and 24 letters switch a fail-open route off.


🎓 Credentials

AWS CertifiedDatabricks CertifiedMS Computer Science

🤝 Quick Connect

EmailLinkedIn



Open to roles where the hard part is a system that has to stay correct under failure, rather than a model that has to score well on a benchmark.


Popular repositories Loading

  1. Rag-regression-gate Rag-regression-gatePublic

    CI gate that blocks a pull request when RAG retrieval quality regresses and confirms when a change genuinely improved it, using a paired bootstrap so small-golden-set noise cannot cry wolf. Held-ou…

    Python

  2. llm-spend-attributor llm-spend-attributorPublic

    Attributes LLM token spend to teams, features and prompt versions from request traces, pricing each request at the rate in force when it was made. Finds a prompt version that tripled one team's tok…

    Python

  3. cdc-exactly-once cdc-exactly-oncePublic

    Change-data-capture applier that converges to exactly the rows the source log implies - under duplicate delivery, out-of-order delivery, and 24 processes killed mid-transaction. Contiguous low wate…

    Python

  4. spark-skew-doctor spark-skew-doctorPublic

    Diagnoses Spark data skew from the job's own event log - no cluster, no JVM - and tells key skew apart from a straggler by comparing task time against bytes read. Then measures the fixes against ea…

    Python

  5. lakehouse-reconciler lakehouse-reconcilerPublic

    Reconciles a Delta table against its source of truth across five levels, names the corruption mode out of 11 rather than reporting "these tables differ", and bisects the Delta log to the version th…

    Python

  6. serving-skew-sentinel serving-skew-sentinelPublic

    Arbitrates training and serving skew by implementing the declared feature semantics a third time, so a parity check that can only say "the two paths differ" becomes one that names the cause and bla…

    Python

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View sivananda1995's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report sivananda1995

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sivananda1995/README.md
Sivananda Reddy Julakanti, AI/ML engineer: a neural network from ingest through features and training to serving

Profile viewsRepositoriesTests

I build tools around one question: what does this artefact structurally fail to tell you?


⏳ 8+

YEARS IN PRODUCTION

📦 8

ENGINEERED REPOS

🧪 1,807

TESTS, ALL PASSING

📐 39

DECISION RECORDS

🏆 2

CLOUD CERTIFICATIONS

A parity check cannot say which side is wrong. A Terraform plan cannot contain a loss its dependency graph has no edge for. A threshold on a small golden set cannot separate a regression from noise. A byte that has been sent cannot be recalled. Every repository on this profile supplies what the usual artefact cannot, and leads with the number it would rather not publish.


🧭 The Pivot Point

Three roles, and the shape of the move matters more than the dates.

2017 ──────────────► 2020 2022 ──────────► 2024 2024 ──────────► now
Wells Fargo, Data Engineer Adobe, ML Engineer Meta, AI/ML Engineer
ETL/ELT, Spark, Hadoop, feature pipelines, GenAI ranking and
Snowflake, cloud migration MLflow, productionising recommendation, RAG,
for risk and fraud analytics models behind FastAPI real-time inference
│ │ │
└── moved the data ─────────────┴── then moved the model ──────┴── now moves the decision

The pivot is not "data engineer becomes ML engineer". It is that each step kept the previous discipline instead of replacing it. The MS in Computer Science (2022) is the hinge: pipelines first, then models on top of pipelines, then generative systems that are only as trustworthy as the pipeline and the monitoring underneath them. That is why the repositories on this profile are about the plumbing of AI, not about model architectures: skew between training and serving, cost attribution per prompt version, what a guardrail lets through, what a plan actually destroys.


🔭 Current Focus

At Meta, now

  • LLM ranking and recommendation with RAG over vector stores
  • Real-time inference on Databricks, Spark and Delta Lake
  • MLOps with MLflow, Kubeflow and SageMaker: training, versioning, monitoring
  • Inference latency work: caching and model optimisation

In the open, now

  • llm-guardrail-proxy: what a guardrail lets through, measured
  • serving-skew-sentinel: arbitrating training and serving skew
  • mlplatform-iac-forge: blast radius of a Terraform apply
  • All eight repositories re-measure their own README numbers in CI

📊 Tech Stack, by Depth Rather Than by List

Levels are self-assessed against one test: could I debug it in production at 3am, or have I only shipped with it?

Python████████████████████Senior. 8 years, every repository on this profile
SQL███████████████████░Senior. Warehousing, as-of joins, query tuning
Apache Spark / PySpark██████████████████░░Senior. Event-log forensics, skew, shuffle behaviour
MLOps (MLflow, Kubeflow, SageMaker)█████████████████░░░Senior. Registry, monitoring, CI for models
Databricks / Delta Lake█████████████████░░░Senior. Feature store, transaction log internals
Kafka / streaming████████████████░░░░Advanced. Exactly-once, idempotency, watermarks
LLMs / RAG / prompt engineering████████████████░░░░Advanced. Retrieval evaluation, guardrails, cost
AWS (S3, Glue, EMR, Lambda)████████████████░░░░Advanced. Certified, plus IaC blast-radius work
Airflow / dbt███████████████░░░░░Advanced. Production orchestration and models
PyTorch / TensorFlow██████████████░░░░░░Intermediate. Fine-tuning and NLP workflows
Terraform / Kubernetes██████████████░░░░░░Intermediate. Deployed with both, audited both
Scala / Java██████████░░░░░░░░░░Intermediate. Read fluently, write when needed

🧱 Building Blocks

PythonApache SparkDatabricksDelta LakeApache KafkaSnowflake

MLflowPyTorchTensorFlowHugging Facescikit-learnDuckDB

AWSTerraformDockerKubernetesAirflowGitHub Actions


🗂️ The Eight

Each one exists because of something the usual artefact cannot tell you. The bold number is what it measured.

68 tests · 92% line

Diagnoses a Spark stage from the event log Spark already wrote, and separates key skew from stragglers, spill and too-few-tasks. Then benchmarks the fixes against each other: salting won 0 of 16 cells, broadcast 6.51x, salting 0.81x, slower than doing nothing.

74 tests · 90% line

Turns 123,417 LLM traces into an owned bill by team, feature and prompt version. 1.2% has no owner and is reported rather than spread. Finds a prompt version that tripled a team's input tokens two days after it shipped, at a robust z-score of 10.17 where a 3.5-sigma rule sees 2.90.

98 tests · 96% line

Exactly-once split into three promises that are checked separately, then proved by killing real processes mid-transaction: 24 of 24 converged from 24 kills and 72 restarts. The offset design everyone writes first leaves 193 rows wrong while reporting zero lag.

186 tests · 92% line

Blocks a pull request on a real retrieval regression and refuses to fire on noise, using a tolerance plus a 95% paired bootstrap. Catches a 6.8 point recall@5 drop; reports a borderline case as WARN because the interval contains zero.

266 tests · 95% line

Names which of 11 corruption modes a Delta table has rather than reporting that it differs, then bisects the transaction log to the commit that caused it. A naive float sum gives 27 different totals over 200 shuffles; fsum gives one.

219 tests · 96% line

Parity says the two paths differ and cannot say which is wrong, so this implements the declared feature semantics a third time and arbitrates: 16 of 16 causes named against 13 without it, with a side blamed on 12. Severity is measured in decisions changed, not mismatch counts.

190 tests · 97% line

Plan: 7 to destroy against 18,344,400 objects and items actually lost, 6 of them from resources the plan never mentions, because Terraform's graph has no edge from a KMS key to the data it protects. Plus a 28.7 minute window where the data is gone and there is nowhere to restore it to.

706 tests · 100% line + branch

Reports what the guardrail let through. 16 characters of a detected key reach the client at a lookback of zero. A false positive rate of zero over 34 samples caps precision at 1.34%, leaving 3 of 3 blocking actions unsupported by the evidence, and 24 letters switch a fail-open route off.


🎓 Credentials

AWS CertifiedDatabricks CertifiedMS Computer Science

🤝 Quick Connect

EmailLinkedIn



Open to roles where the hard part is a system that has to stay correct under failure, rather than a model that has to score well on a benchmark.


Popular repositories Loading

  1. Rag-regression-gate Rag-regression-gatePublic

    CI gate that blocks a pull request when RAG retrieval quality regresses and confirms when a change genuinely improved it, using a paired bootstrap so small-golden-set noise cannot cry wolf. Held-ou…

    Python

  2. llm-spend-attributor llm-spend-attributorPublic

    Attributes LLM token spend to teams, features and prompt versions from request traces, pricing each request at the rate in force when it was made. Finds a prompt version that tripled one team's tok…

    Python

  3. cdc-exactly-once cdc-exactly-oncePublic

    Change-data-capture applier that converges to exactly the rows the source log implies - under duplicate delivery, out-of-order delivery, and 24 processes killed mid-transaction. Contiguous low wate…

    Python

  4. spark-skew-doctor spark-skew-doctorPublic

    Diagnoses Spark data skew from the job's own event log - no cluster, no JVM - and tells key skew apart from a straggler by comparing task time against bytes read. Then measures the fixes against ea…

    Python

  5. lakehouse-reconciler lakehouse-reconcilerPublic

    Reconciles a Delta table against its source of truth across five levels, names the corruption mode out of 11 rather than reporting "these tables differ", and bisects the Delta log to the version th…

    Python

  6. serving-skew-sentinel serving-skew-sentinelPublic

    Arbitrates training and serving skew by implementing the declared feature semantics a third time, so a parity check that can only say "the two paths differ" becomes one that names the cause and bla…

    Python

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View sivananda1995's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report sivananda1995

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sivananda1995/README.md
Sivananda Reddy Julakanti, AI/ML engineer: a neural network from ingest through features and training to serving

Profile viewsRepositoriesTests

I build tools around one question: what does this artefact structurally fail to tell you?


⏳ 8+

YEARS IN PRODUCTION

📦 8

ENGINEERED REPOS

🧪 1,807

TESTS, ALL PASSING

📐 39

DECISION RECORDS

🏆 2

CLOUD CERTIFICATIONS

A parity check cannot say which side is wrong. A Terraform plan cannot contain a loss its dependency graph has no edge for. A threshold on a small golden set cannot separate a regression from noise. A byte that has been sent cannot be recalled. Every repository on this profile supplies what the usual artefact cannot, and leads with the number it would rather not publish.


🧭 The Pivot Point

Three roles, and the shape of the move matters more than the dates.

2017 ──────────────► 2020 2022 ──────────► 2024 2024 ──────────► now
Wells Fargo, Data Engineer Adobe, ML Engineer Meta, AI/ML Engineer
ETL/ELT, Spark, Hadoop, feature pipelines, GenAI ranking and
Snowflake, cloud migration MLflow, productionising recommendation, RAG,
for risk and fraud analytics models behind FastAPI real-time inference
│ │ │
└── moved the data ─────────────┴── then moved the model ──────┴── now moves the decision

The pivot is not "data engineer becomes ML engineer". It is that each step kept the previous discipline instead of replacing it. The MS in Computer Science (2022) is the hinge: pipelines first, then models on top of pipelines, then generative systems that are only as trustworthy as the pipeline and the monitoring underneath them. That is why the repositories on this profile are about the plumbing of AI, not about model architectures: skew between training and serving, cost attribution per prompt version, what a guardrail lets through, what a plan actually destroys.


🔭 Current Focus

At Meta, now

  • LLM ranking and recommendation with RAG over vector stores
  • Real-time inference on Databricks, Spark and Delta Lake
  • MLOps with MLflow, Kubeflow and SageMaker: training, versioning, monitoring
  • Inference latency work: caching and model optimisation

In the open, now

  • llm-guardrail-proxy: what a guardrail lets through, measured
  • serving-skew-sentinel: arbitrating training and serving skew
  • mlplatform-iac-forge: blast radius of a Terraform apply
  • All eight repositories re-measure their own README numbers in CI

📊 Tech Stack, by Depth Rather Than by List

Levels are self-assessed against one test: could I debug it in production at 3am, or have I only shipped with it?

Python████████████████████Senior. 8 years, every repository on this profile
SQL███████████████████░Senior. Warehousing, as-of joins, query tuning
Apache Spark / PySpark██████████████████░░Senior. Event-log forensics, skew, shuffle behaviour
MLOps (MLflow, Kubeflow, SageMaker)█████████████████░░░Senior. Registry, monitoring, CI for models
Databricks / Delta Lake█████████████████░░░Senior. Feature store, transaction log internals
Kafka / streaming████████████████░░░░Advanced. Exactly-once, idempotency, watermarks
LLMs / RAG / prompt engineering████████████████░░░░Advanced. Retrieval evaluation, guardrails, cost
AWS (S3, Glue, EMR, Lambda)████████████████░░░░Advanced. Certified, plus IaC blast-radius work
Airflow / dbt███████████████░░░░░Advanced. Production orchestration and models
PyTorch / TensorFlow██████████████░░░░░░Intermediate. Fine-tuning and NLP workflows
Terraform / Kubernetes██████████████░░░░░░Intermediate. Deployed with both, audited both
Scala / Java██████████░░░░░░░░░░Intermediate. Read fluently, write when needed

🧱 Building Blocks

PythonApache SparkDatabricksDelta LakeApache KafkaSnowflake

MLflowPyTorchTensorFlowHugging Facescikit-learnDuckDB

AWSTerraformDockerKubernetesAirflowGitHub Actions


🗂️ The Eight

Each one exists because of something the usual artefact cannot tell you. The bold number is what it measured.

68 tests · 92% line

Diagnoses a Spark stage from the event log Spark already wrote, and separates key skew from stragglers, spill and too-few-tasks. Then benchmarks the fixes against each other: salting won 0 of 16 cells, broadcast 6.51x, salting 0.81x, slower than doing nothing.

74 tests · 90% line

Turns 123,417 LLM traces into an owned bill by team, feature and prompt version. 1.2% has no owner and is reported rather than spread. Finds a prompt version that tripled a team's input tokens two days after it shipped, at a robust z-score of 10.17 where a 3.5-sigma rule sees 2.90.

98 tests · 96% line

Exactly-once split into three promises that are checked separately, then proved by killing real processes mid-transaction: 24 of 24 converged from 24 kills and 72 restarts. The offset design everyone writes first leaves 193 rows wrong while reporting zero lag.

186 tests · 92% line

Blocks a pull request on a real retrieval regression and refuses to fire on noise, using a tolerance plus a 95% paired bootstrap. Catches a 6.8 point recall@5 drop; reports a borderline case as WARN because the interval contains zero.

266 tests · 95% line

Names which of 11 corruption modes a Delta table has rather than reporting that it differs, then bisects the transaction log to the commit that caused it. A naive float sum gives 27 different totals over 200 shuffles; fsum gives one.

219 tests · 96% line

Parity says the two paths differ and cannot say which is wrong, so this implements the declared feature semantics a third time and arbitrates: 16 of 16 causes named against 13 without it, with a side blamed on 12. Severity is measured in decisions changed, not mismatch counts.

190 tests · 97% line

Plan: 7 to destroy against 18,344,400 objects and items actually lost, 6 of them from resources the plan never mentions, because Terraform's graph has no edge from a KMS key to the data it protects. Plus a 28.7 minute window where the data is gone and there is nowhere to restore it to.

706 tests · 100% line + branch

Reports what the guardrail let through. 16 characters of a detected key reach the client at a lookback of zero. A false positive rate of zero over 34 samples caps precision at 1.34%, leaving 3 of 3 blocking actions unsupported by the evidence, and 24 letters switch a fail-open route off.


🎓 Credentials

AWS CertifiedDatabricks CertifiedMS Computer Science

🤝 Quick Connect

EmailLinkedIn



Open to roles where the hard part is a system that has to stay correct under failure, rather than a model that has to score well on a benchmark.


Popular repositories Loading

  1. Rag-regression-gate Rag-regression-gatePublic

    CI gate that blocks a pull request when RAG retrieval quality regresses and confirms when a change genuinely improved it, using a paired bootstrap so small-golden-set noise cannot cry wolf. Held-ou…

    Python

  2. llm-spend-attributor llm-spend-attributorPublic

    Attributes LLM token spend to teams, features and prompt versions from request traces, pricing each request at the rate in force when it was made. Finds a prompt version that tripled one team's tok…

    Python

  3. cdc-exactly-once cdc-exactly-oncePublic

    Change-data-capture applier that converges to exactly the rows the source log implies - under duplicate delivery, out-of-order delivery, and 24 processes killed mid-transaction. Contiguous low wate…

    Python

  4. spark-skew-doctor spark-skew-doctorPublic

    Diagnoses Spark data skew from the job's own event log - no cluster, no JVM - and tells key skew apart from a straggler by comparing task time against bytes read. Then measures the fixes against ea…

    Python

  5. lakehouse-reconciler lakehouse-reconcilerPublic

    Reconciles a Delta table against its source of truth across five levels, names the corruption mode out of 11 rather than reporting "these tables differ", and bisects the Delta log to the version th…

    Python

  6. serving-skew-sentinel serving-skew-sentinelPublic

    Arbitrates training and serving skew by implementing the declared feature semantics a third time, so a parity check that can only say "the two paths differ" becomes one that names the cause and bla…

    Python

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
View sivananda1995's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report sivananda1995

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sivananda1995/README.md
Sivananda Reddy Julakanti, AI/ML engineer: a neural network from ingest through features and training to serving

Profile viewsRepositoriesTests

I build tools around one question: what does this artefact structurally fail to tell you?


⏳ 8+

YEARS IN PRODUCTION

📦 8

ENGINEERED REPOS

🧪 1,807

TESTS, ALL PASSING

📐 39

DECISION RECORDS

🏆 2

CLOUD CERTIFICATIONS

A parity check cannot say which side is wrong. A Terraform plan cannot contain a loss its dependency graph has no edge for. A threshold on a small golden set cannot separate a regression from noise. A byte that has been sent cannot be recalled. Every repository on this profile supplies what the usual artefact cannot, and leads with the number it would rather not publish.


🧭 The Pivot Point

Three roles, and the shape of the move matters more than the dates.

2017 ──────────────► 2020 2022 ──────────► 2024 2024 ──────────► now
Wells Fargo, Data Engineer Adobe, ML Engineer Meta, AI/ML Engineer
ETL/ELT, Spark, Hadoop, feature pipelines, GenAI ranking and
Snowflake, cloud migration MLflow, productionising recommendation, RAG,
for risk and fraud analytics models behind FastAPI real-time inference
│ │ │
└── moved the data ─────────────┴── then moved the model ──────┴── now moves the decision

The pivot is not "data engineer becomes ML engineer". It is that each step kept the previous discipline instead of replacing it. The MS in Computer Science (2022) is the hinge: pipelines first, then models on top of pipelines, then generative systems that are only as trustworthy as the pipeline and the monitoring underneath them. That is why the repositories on this profile are about the plumbing of AI, not about model architectures: skew between training and serving, cost attribution per prompt version, what a guardrail lets through, what a plan actually destroys.


🔭 Current Focus

At Meta, now

  • LLM ranking and recommendation with RAG over vector stores
  • Real-time inference on Databricks, Spark and Delta Lake
  • MLOps with MLflow, Kubeflow and SageMaker: training, versioning, monitoring
  • Inference latency work: caching and model optimisation

In the open, now

  • llm-guardrail-proxy: what a guardrail lets through, measured
  • serving-skew-sentinel: arbitrating training and serving skew
  • mlplatform-iac-forge: blast radius of a Terraform apply
  • All eight repositories re-measure their own README numbers in CI

📊 Tech Stack, by Depth Rather Than by List

Levels are self-assessed against one test: could I debug it in production at 3am, or have I only shipped with it?

Python████████████████████Senior. 8 years, every repository on this profile
SQL███████████████████░Senior. Warehousing, as-of joins, query tuning
Apache Spark / PySpark██████████████████░░Senior. Event-log forensics, skew, shuffle behaviour
MLOps (MLflow, Kubeflow, SageMaker)█████████████████░░░Senior. Registry, monitoring, CI for models
Databricks / Delta Lake█████████████████░░░Senior. Feature store, transaction log internals
Kafka / streaming████████████████░░░░Advanced. Exactly-once, idempotency, watermarks
LLMs / RAG / prompt engineering████████████████░░░░Advanced. Retrieval evaluation, guardrails, cost
AWS (S3, Glue, EMR, Lambda)████████████████░░░░Advanced. Certified, plus IaC blast-radius work
Airflow / dbt███████████████░░░░░Advanced. Production orchestration and models
PyTorch / TensorFlow██████████████░░░░░░Intermediate. Fine-tuning and NLP workflows
Terraform / Kubernetes██████████████░░░░░░Intermediate. Deployed with both, audited both
Scala / Java██████████░░░░░░░░░░Intermediate. Read fluently, write when needed

🧱 Building Blocks

PythonApache SparkDatabricksDelta LakeApache KafkaSnowflake

MLflowPyTorchTensorFlowHugging Facescikit-learnDuckDB

AWSTerraformDockerKubernetesAirflowGitHub Actions


🗂️ The Eight

Each one exists because of something the usual artefact cannot tell you. The bold number is what it measured.

68 tests · 92% line

Diagnoses a Spark stage from the event log Spark already wrote, and separates key skew from stragglers, spill and too-few-tasks. Then benchmarks the fixes against each other: salting won 0 of 16 cells, broadcast 6.51x, salting 0.81x, slower than doing nothing.

74 tests · 90% line

Turns 123,417 LLM traces into an owned bill by team, feature and prompt version. 1.2% has no owner and is reported rather than spread. Finds a prompt version that tripled a team's input tokens two days after it shipped, at a robust z-score of 10.17 where a 3.5-sigma rule sees 2.90.

98 tests · 96% line

Exactly-once split into three promises that are checked separately, then proved by killing real processes mid-transaction: 24 of 24 converged from 24 kills and 72 restarts. The offset design everyone writes first leaves 193 rows wrong while reporting zero lag.

186 tests · 92% line

Blocks a pull request on a real retrieval regression and refuses to fire on noise, using a tolerance plus a 95% paired bootstrap. Catches a 6.8 point recall@5 drop; reports a borderline case as WARN because the interval contains zero.

266 tests · 95% line

Names which of 11 corruption modes a Delta table has rather than reporting that it differs, then bisects the transaction log to the commit that caused it. A naive float sum gives 27 different totals over 200 shuffles; fsum gives one.

219 tests · 96% line

Parity says the two paths differ and cannot say which is wrong, so this implements the declared feature semantics a third time and arbitrates: 16 of 16 causes named against 13 without it, with a side blamed on 12. Severity is measured in decisions changed, not mismatch counts.

190 tests · 97% line

Plan: 7 to destroy against 18,344,400 objects and items actually lost, 6 of them from resources the plan never mentions, because Terraform's graph has no edge from a KMS key to the data it protects. Plus a 28.7 minute window where the data is gone and there is nowhere to restore it to.

706 tests · 100% line + branch

Reports what the guardrail let through. 16 characters of a detected key reach the client at a lookback of zero. A false positive rate of zero over 34 samples caps precision at 1.34%, leaving 3 of 3 blocking actions unsupported by the evidence, and 24 letters switch a fail-open route off.


🎓 Credentials

AWS CertifiedDatabricks CertifiedMS Computer Science

🤝 Quick Connect

EmailLinkedIn



Open to roles where the hard part is a system that has to stay correct under failure, rather than a model that has to score well on a benchmark.


Popular repositories Loading

  1. Rag-regression-gate Rag-regression-gatePublic

    CI gate that blocks a pull request when RAG retrieval quality regresses and confirms when a change genuinely improved it, using a paired bootstrap so small-golden-set noise cannot cry wolf. Held-ou…

    Python

  2. llm-spend-attributor llm-spend-attributorPublic

    Attributes LLM token spend to teams, features and prompt versions from request traces, pricing each request at the rate in force when it was made. Finds a prompt version that tripled one team's tok…

    Python

  3. cdc-exactly-once cdc-exactly-oncePublic

    Change-data-capture applier that converges to exactly the rows the source log implies - under duplicate delivery, out-of-order delivery, and 24 processes killed mid-transaction. Contiguous low wate…

    Python

  4. spark-skew-doctor spark-skew-doctorPublic

    Diagnoses Spark data skew from the job's own event log - no cluster, no JVM - and tells key skew apart from a straggler by comparing task time against bytes read. Then measures the fixes against ea…

    Python

  5. lakehouse-reconciler lakehouse-reconcilerPublic

    Reconciles a Delta table against its source of truth across five levels, names the corruption mode out of 11 rather than reporting "these tables differ", and bisects the Delta log to the version th…

    Python

  6. serving-skew-sentinel serving-skew-sentinelPublic

    Arbitrates training and serving skew by implementing the declared feature semantics a third time, so a parity check that can only say "the two paths differ" becomes one that names the cause and bla…

    Python

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View sivananda1995's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report sivananda1995

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sivananda1995/README.md
Sivananda Reddy Julakanti, AI/ML engineer: a neural network from ingest through features and training to serving

Profile viewsRepositoriesTests

I build tools around one question: what does this artefact structurally fail to tell you?


⏳ 8+

YEARS IN PRODUCTION

📦 8

ENGINEERED REPOS

🧪 1,807

TESTS, ALL PASSING

📐 39

DECISION RECORDS

🏆 2

CLOUD CERTIFICATIONS

A parity check cannot say which side is wrong. A Terraform plan cannot contain a loss its dependency graph has no edge for. A threshold on a small golden set cannot separate a regression from noise. A byte that has been sent cannot be recalled. Every repository on this profile supplies what the usual artefact cannot, and leads with the number it would rather not publish.


🧭 The Pivot Point

Three roles, and the shape of the move matters more than the dates.

2017 ──────────────► 2020 2022 ──────────► 2024 2024 ──────────► now
Wells Fargo, Data Engineer Adobe, ML Engineer Meta, AI/ML Engineer
ETL/ELT, Spark, Hadoop, feature pipelines, GenAI ranking and
Snowflake, cloud migration MLflow, productionising recommendation, RAG,
for risk and fraud analytics models behind FastAPI real-time inference
│ │ │
└── moved the data ─────────────┴── then moved the model ──────┴── now moves the decision

The pivot is not "data engineer becomes ML engineer". It is that each step kept the previous discipline instead of replacing it. The MS in Computer Science (2022) is the hinge: pipelines first, then models on top of pipelines, then generative systems that are only as trustworthy as the pipeline and the monitoring underneath them. That is why the repositories on this profile are about the plumbing of AI, not about model architectures: skew between training and serving, cost attribution per prompt version, what a guardrail lets through, what a plan actually destroys.


🔭 Current Focus

At Meta, now

  • LLM ranking and recommendation with RAG over vector stores
  • Real-time inference on Databricks, Spark and Delta Lake
  • MLOps with MLflow, Kubeflow and SageMaker: training, versioning, monitoring
  • Inference latency work: caching and model optimisation

In the open, now

  • llm-guardrail-proxy: what a guardrail lets through, measured
  • serving-skew-sentinel: arbitrating training and serving skew
  • mlplatform-iac-forge: blast radius of a Terraform apply
  • All eight repositories re-measure their own README numbers in CI

📊 Tech Stack, by Depth Rather Than by List

Levels are self-assessed against one test: could I debug it in production at 3am, or have I only shipped with it?

Python████████████████████Senior. 8 years, every repository on this profile
SQL███████████████████░Senior. Warehousing, as-of joins, query tuning
Apache Spark / PySpark██████████████████░░Senior. Event-log forensics, skew, shuffle behaviour
MLOps (MLflow, Kubeflow, SageMaker)█████████████████░░░Senior. Registry, monitoring, CI for models
Databricks / Delta Lake█████████████████░░░Senior. Feature store, transaction log internals
Kafka / streaming████████████████░░░░Advanced. Exactly-once, idempotency, watermarks
LLMs / RAG / prompt engineering████████████████░░░░Advanced. Retrieval evaluation, guardrails, cost
AWS (S3, Glue, EMR, Lambda)████████████████░░░░Advanced. Certified, plus IaC blast-radius work
Airflow / dbt███████████████░░░░░Advanced. Production orchestration and models
PyTorch / TensorFlow██████████████░░░░░░Intermediate. Fine-tuning and NLP workflows
Terraform / Kubernetes██████████████░░░░░░Intermediate. Deployed with both, audited both
Scala / Java██████████░░░░░░░░░░Intermediate. Read fluently, write when needed

🧱 Building Blocks

PythonApache SparkDatabricksDelta LakeApache KafkaSnowflake

MLflowPyTorchTensorFlowHugging Facescikit-learnDuckDB

AWSTerraformDockerKubernetesAirflowGitHub Actions


🗂️ The Eight

Each one exists because of something the usual artefact cannot tell you. The bold number is what it measured.

68 tests · 92% line

Diagnoses a Spark stage from the event log Spark already wrote, and separates key skew from stragglers, spill and too-few-tasks. Then benchmarks the fixes against each other: salting won 0 of 16 cells, broadcast 6.51x, salting 0.81x, slower than doing nothing.

74 tests · 90% line

Turns 123,417 LLM traces into an owned bill by team, feature and prompt version. 1.2% has no owner and is reported rather than spread. Finds a prompt version that tripled a team's input tokens two days after it shipped, at a robust z-score of 10.17 where a 3.5-sigma rule sees 2.90.

98 tests · 96% line

Exactly-once split into three promises that are checked separately, then proved by killing real processes mid-transaction: 24 of 24 converged from 24 kills and 72 restarts. The offset design everyone writes first leaves 193 rows wrong while reporting zero lag.

186 tests · 92% line

Blocks a pull request on a real retrieval regression and refuses to fire on noise, using a tolerance plus a 95% paired bootstrap. Catches a 6.8 point recall@5 drop; reports a borderline case as WARN because the interval contains zero.

266 tests · 95% line

Names which of 11 corruption modes a Delta table has rather than reporting that it differs, then bisects the transaction log to the commit that caused it. A naive float sum gives 27 different totals over 200 shuffles; fsum gives one.

219 tests · 96% line

Parity says the two paths differ and cannot say which is wrong, so this implements the declared feature semantics a third time and arbitrates: 16 of 16 causes named against 13 without it, with a side blamed on 12. Severity is measured in decisions changed, not mismatch counts.

190 tests · 97% line

Plan: 7 to destroy against 18,344,400 objects and items actually lost, 6 of them from resources the plan never mentions, because Terraform's graph has no edge from a KMS key to the data it protects. Plus a 28.7 minute window where the data is gone and there is nowhere to restore it to.

706 tests · 100% line + branch

Reports what the guardrail let through. 16 characters of a detected key reach the client at a lookback of zero. A false positive rate of zero over 34 samples caps precision at 1.34%, leaving 3 of 3 blocking actions unsupported by the evidence, and 24 letters switch a fail-open route off.


🎓 Credentials

AWS CertifiedDatabricks CertifiedMS Computer Science

🤝 Quick Connect

EmailLinkedIn



Open to roles where the hard part is a system that has to stay correct under failure, rather than a model that has to score well on a benchmark.


Popular repositories Loading

  1. Rag-regression-gate Rag-regression-gatePublic

    CI gate that blocks a pull request when RAG retrieval quality regresses and confirms when a change genuinely improved it, using a paired bootstrap so small-golden-set noise cannot cry wolf. Held-ou…

    Python

  2. llm-spend-attributor llm-spend-attributorPublic

    Attributes LLM token spend to teams, features and prompt versions from request traces, pricing each request at the rate in force when it was made. Finds a prompt version that tripled one team's tok…

    Python

  3. cdc-exactly-once cdc-exactly-oncePublic

    Change-data-capture applier that converges to exactly the rows the source log implies - under duplicate delivery, out-of-order delivery, and 24 processes killed mid-transaction. Contiguous low wate…

    Python

  4. spark-skew-doctor spark-skew-doctorPublic

    Diagnoses Spark data skew from the job's own event log - no cluster, no JVM - and tells key skew apart from a straggler by comparing task time against bytes read. Then measures the fixes against ea…

    Python

  5. lakehouse-reconciler lakehouse-reconcilerPublic

    Reconciles a Delta table against its source of truth across five levels, names the corruption mode out of 11 rather than reporting "these tables differ", and bisects the Delta log to the version th…

    Python

  6. serving-skew-sentinel serving-skew-sentinelPublic

    Arbitrates training and serving skew by implementing the declared feature semantics a third time, so a parity check that can only say "the two paths differ" becomes one that names the cause and bla…

    Python

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View sivananda1995's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report sivananda1995

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sivananda1995/README.md
Sivananda Reddy Julakanti, AI/ML engineer: a neural network from ingest through features and training to serving

Profile viewsRepositoriesTests

I build tools around one question: what does this artefact structurally fail to tell you?


⏳ 8+

YEARS IN PRODUCTION

📦 8

ENGINEERED REPOS

🧪 1,807

TESTS, ALL PASSING

📐 39

DECISION RECORDS

🏆 2

CLOUD CERTIFICATIONS

A parity check cannot say which side is wrong. A Terraform plan cannot contain a loss its dependency graph has no edge for. A threshold on a small golden set cannot separate a regression from noise. A byte that has been sent cannot be recalled. Every repository on this profile supplies what the usual artefact cannot, and leads with the number it would rather not publish.


🧭 The Pivot Point

Three roles, and the shape of the move matters more than the dates.

2017 ──────────────► 2020 2022 ──────────► 2024 2024 ──────────► now
Wells Fargo, Data Engineer Adobe, ML Engineer Meta, AI/ML Engineer
ETL/ELT, Spark, Hadoop, feature pipelines, GenAI ranking and
Snowflake, cloud migration MLflow, productionising recommendation, RAG,
for risk and fraud analytics models behind FastAPI real-time inference
│ │ │
└── moved the data ─────────────┴── then moved the model ──────┴── now moves the decision

The pivot is not "data engineer becomes ML engineer". It is that each step kept the previous discipline instead of replacing it. The MS in Computer Science (2022) is the hinge: pipelines first, then models on top of pipelines, then generative systems that are only as trustworthy as the pipeline and the monitoring underneath them. That is why the repositories on this profile are about the plumbing of AI, not about model architectures: skew between training and serving, cost attribution per prompt version, what a guardrail lets through, what a plan actually destroys.


🔭 Current Focus

At Meta, now

  • LLM ranking and recommendation with RAG over vector stores
  • Real-time inference on Databricks, Spark and Delta Lake
  • MLOps with MLflow, Kubeflow and SageMaker: training, versioning, monitoring
  • Inference latency work: caching and model optimisation

In the open, now

  • llm-guardrail-proxy: what a guardrail lets through, measured
  • serving-skew-sentinel: arbitrating training and serving skew
  • mlplatform-iac-forge: blast radius of a Terraform apply
  • All eight repositories re-measure their own README numbers in CI

📊 Tech Stack, by Depth Rather Than by List

Levels are self-assessed against one test: could I debug it in production at 3am, or have I only shipped with it?

Python████████████████████Senior. 8 years, every repository on this profile
SQL███████████████████░Senior. Warehousing, as-of joins, query tuning
Apache Spark / PySpark██████████████████░░Senior. Event-log forensics, skew, shuffle behaviour
MLOps (MLflow, Kubeflow, SageMaker)█████████████████░░░Senior. Registry, monitoring, CI for models
Databricks / Delta Lake█████████████████░░░Senior. Feature store, transaction log internals
Kafka / streaming████████████████░░░░Advanced. Exactly-once, idempotency, watermarks
LLMs / RAG / prompt engineering████████████████░░░░Advanced. Retrieval evaluation, guardrails, cost
AWS (S3, Glue, EMR, Lambda)████████████████░░░░Advanced. Certified, plus IaC blast-radius work
Airflow / dbt███████████████░░░░░Advanced. Production orchestration and models
PyTorch / TensorFlow██████████████░░░░░░Intermediate. Fine-tuning and NLP workflows
Terraform / Kubernetes██████████████░░░░░░Intermediate. Deployed with both, audited both
Scala / Java██████████░░░░░░░░░░Intermediate. Read fluently, write when needed

🧱 Building Blocks

PythonApache SparkDatabricksDelta LakeApache KafkaSnowflake

MLflowPyTorchTensorFlowHugging Facescikit-learnDuckDB

AWSTerraformDockerKubernetesAirflowGitHub Actions


🗂️ The Eight

Each one exists because of something the usual artefact cannot tell you. The bold number is what it measured.

68 tests · 92% line

Diagnoses a Spark stage from the event log Spark already wrote, and separates key skew from stragglers, spill and too-few-tasks. Then benchmarks the fixes against each other: salting won 0 of 16 cells, broadcast 6.51x, salting 0.81x, slower than doing nothing.

74 tests · 90% line

Turns 123,417 LLM traces into an owned bill by team, feature and prompt version. 1.2% has no owner and is reported rather than spread. Finds a prompt version that tripled a team's input tokens two days after it shipped, at a robust z-score of 10.17 where a 3.5-sigma rule sees 2.90.

98 tests · 96% line

Exactly-once split into three promises that are checked separately, then proved by killing real processes mid-transaction: 24 of 24 converged from 24 kills and 72 restarts. The offset design everyone writes first leaves 193 rows wrong while reporting zero lag.

186 tests · 92% line

Blocks a pull request on a real retrieval regression and refuses to fire on noise, using a tolerance plus a 95% paired bootstrap. Catches a 6.8 point recall@5 drop; reports a borderline case as WARN because the interval contains zero.

266 tests · 95% line

Names which of 11 corruption modes a Delta table has rather than reporting that it differs, then bisects the transaction log to the commit that caused it. A naive float sum gives 27 different totals over 200 shuffles; fsum gives one.

219 tests · 96% line

Parity says the two paths differ and cannot say which is wrong, so this implements the declared feature semantics a third time and arbitrates: 16 of 16 causes named against 13 without it, with a side blamed on 12. Severity is measured in decisions changed, not mismatch counts.

190 tests · 97% line

Plan: 7 to destroy against 18,344,400 objects and items actually lost, 6 of them from resources the plan never mentions, because Terraform's graph has no edge from a KMS key to the data it protects. Plus a 28.7 minute window where the data is gone and there is nowhere to restore it to.

706 tests · 100% line + branch

Reports what the guardrail let through. 16 characters of a detected key reach the client at a lookback of zero. A false positive rate of zero over 34 samples caps precision at 1.34%, leaving 3 of 3 blocking actions unsupported by the evidence, and 24 letters switch a fail-open route off.


🎓 Credentials

AWS CertifiedDatabricks CertifiedMS Computer Science

🤝 Quick Connect

EmailLinkedIn



Open to roles where the hard part is a system that has to stay correct under failure, rather than a model that has to score well on a benchmark.


Popular repositories Loading

  1. Rag-regression-gate Rag-regression-gatePublic

    CI gate that blocks a pull request when RAG retrieval quality regresses and confirms when a change genuinely improved it, using a paired bootstrap so small-golden-set noise cannot cry wolf. Held-ou…

    Python

  2. llm-spend-attributor llm-spend-attributorPublic

    Attributes LLM token spend to teams, features and prompt versions from request traces, pricing each request at the rate in force when it was made. Finds a prompt version that tripled one team's tok…

    Python

  3. cdc-exactly-once cdc-exactly-oncePublic

    Change-data-capture applier that converges to exactly the rows the source log implies - under duplicate delivery, out-of-order delivery, and 24 processes killed mid-transaction. Contiguous low wate…

    Python

  4. spark-skew-doctor spark-skew-doctorPublic

    Diagnoses Spark data skew from the job's own event log - no cluster, no JVM - and tells key skew apart from a straggler by comparing task time against bytes read. Then measures the fixes against ea…

    Python

  5. lakehouse-reconciler lakehouse-reconcilerPublic

    Reconciles a Delta table against its source of truth across five levels, names the corruption mode out of 11 rather than reporting "these tables differ", and bisects the Delta log to the version th…

    Python

  6. serving-skew-sentinel serving-skew-sentinelPublic

    Arbitrates training and serving skew by implementing the declared feature semantics a third time, so a parity check that can only say "the two paths differ" becomes one that names the cause and bla…

    Python

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
View sivananda1995's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report sivananda1995

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sivananda1995/README.md
Sivananda Reddy Julakanti, AI/ML engineer: a neural network from ingest through features and training to serving

Profile viewsRepositoriesTests

I build tools around one question: what does this artefact structurally fail to tell you?


⏳ 8+

YEARS IN PRODUCTION

📦 8

ENGINEERED REPOS

🧪 1,807

TESTS, ALL PASSING

📐 39

DECISION RECORDS

🏆 2

CLOUD CERTIFICATIONS

A parity check cannot say which side is wrong. A Terraform plan cannot contain a loss its dependency graph has no edge for. A threshold on a small golden set cannot separate a regression from noise. A byte that has been sent cannot be recalled. Every repository on this profile supplies what the usual artefact cannot, and leads with the number it would rather not publish.


🧭 The Pivot Point

Three roles, and the shape of the move matters more than the dates.

2017 ──────────────► 2020 2022 ──────────► 2024 2024 ──────────► now
Wells Fargo, Data Engineer Adobe, ML Engineer Meta, AI/ML Engineer
ETL/ELT, Spark, Hadoop, feature pipelines, GenAI ranking and
Snowflake, cloud migration MLflow, productionising recommendation, RAG,
for risk and fraud analytics models behind FastAPI real-time inference
│ │ │
└── moved the data ─────────────┴── then moved the model ──────┴── now moves the decision

The pivot is not "data engineer becomes ML engineer". It is that each step kept the previous discipline instead of replacing it. The MS in Computer Science (2022) is the hinge: pipelines first, then models on top of pipelines, then generative systems that are only as trustworthy as the pipeline and the monitoring underneath them. That is why the repositories on this profile are about the plumbing of AI, not about model architectures: skew between training and serving, cost attribution per prompt version, what a guardrail lets through, what a plan actually destroys.


🔭 Current Focus

At Meta, now

  • LLM ranking and recommendation with RAG over vector stores
  • Real-time inference on Databricks, Spark and Delta Lake
  • MLOps with MLflow, Kubeflow and SageMaker: training, versioning, monitoring
  • Inference latency work: caching and model optimisation

In the open, now

  • llm-guardrail-proxy: what a guardrail lets through, measured
  • serving-skew-sentinel: arbitrating training and serving skew
  • mlplatform-iac-forge: blast radius of a Terraform apply
  • All eight repositories re-measure their own README numbers in CI

📊 Tech Stack, by Depth Rather Than by List

Levels are self-assessed against one test: could I debug it in production at 3am, or have I only shipped with it?

Python████████████████████Senior. 8 years, every repository on this profile
SQL███████████████████░Senior. Warehousing, as-of joins, query tuning
Apache Spark / PySpark██████████████████░░Senior. Event-log forensics, skew, shuffle behaviour
MLOps (MLflow, Kubeflow, SageMaker)█████████████████░░░Senior. Registry, monitoring, CI for models
Databricks / Delta Lake█████████████████░░░Senior. Feature store, transaction log internals
Kafka / streaming████████████████░░░░Advanced. Exactly-once, idempotency, watermarks
LLMs / RAG / prompt engineering████████████████░░░░Advanced. Retrieval evaluation, guardrails, cost
AWS (S3, Glue, EMR, Lambda)████████████████░░░░Advanced. Certified, plus IaC blast-radius work
Airflow / dbt███████████████░░░░░Advanced. Production orchestration and models
PyTorch / TensorFlow██████████████░░░░░░Intermediate. Fine-tuning and NLP workflows
Terraform / Kubernetes██████████████░░░░░░Intermediate. Deployed with both, audited both
Scala / Java██████████░░░░░░░░░░Intermediate. Read fluently, write when needed

🧱 Building Blocks

PythonApache SparkDatabricksDelta LakeApache KafkaSnowflake

MLflowPyTorchTensorFlowHugging Facescikit-learnDuckDB

AWSTerraformDockerKubernetesAirflowGitHub Actions


🗂️ The Eight

Each one exists because of something the usual artefact cannot tell you. The bold number is what it measured.

68 tests · 92% line

Diagnoses a Spark stage from the event log Spark already wrote, and separates key skew from stragglers, spill and too-few-tasks. Then benchmarks the fixes against each other: salting won 0 of 16 cells, broadcast 6.51x, salting 0.81x, slower than doing nothing.

74 tests · 90% line

Turns 123,417 LLM traces into an owned bill by team, feature and prompt version. 1.2% has no owner and is reported rather than spread. Finds a prompt version that tripled a team's input tokens two days after it shipped, at a robust z-score of 10.17 where a 3.5-sigma rule sees 2.90.

98 tests · 96% line

Exactly-once split into three promises that are checked separately, then proved by killing real processes mid-transaction: 24 of 24 converged from 24 kills and 72 restarts. The offset design everyone writes first leaves 193 rows wrong while reporting zero lag.

186 tests · 92% line

Blocks a pull request on a real retrieval regression and refuses to fire on noise, using a tolerance plus a 95% paired bootstrap. Catches a 6.8 point recall@5 drop; reports a borderline case as WARN because the interval contains zero.

266 tests · 95% line

Names which of 11 corruption modes a Delta table has rather than reporting that it differs, then bisects the transaction log to the commit that caused it. A naive float sum gives 27 different totals over 200 shuffles; fsum gives one.

219 tests · 96% line

Parity says the two paths differ and cannot say which is wrong, so this implements the declared feature semantics a third time and arbitrates: 16 of 16 causes named against 13 without it, with a side blamed on 12. Severity is measured in decisions changed, not mismatch counts.

190 tests · 97% line

Plan: 7 to destroy against 18,344,400 objects and items actually lost, 6 of them from resources the plan never mentions, because Terraform's graph has no edge from a KMS key to the data it protects. Plus a 28.7 minute window where the data is gone and there is nowhere to restore it to.

706 tests · 100% line + branch

Reports what the guardrail let through. 16 characters of a detected key reach the client at a lookback of zero. A false positive rate of zero over 34 samples caps precision at 1.34%, leaving 3 of 3 blocking actions unsupported by the evidence, and 24 letters switch a fail-open route off.


🎓 Credentials

AWS CertifiedDatabricks CertifiedMS Computer Science

🤝 Quick Connect

EmailLinkedIn



Open to roles where the hard part is a system that has to stay correct under failure, rather than a model that has to score well on a benchmark.


Popular repositories Loading

  1. Rag-regression-gate Rag-regression-gatePublic

    CI gate that blocks a pull request when RAG retrieval quality regresses and confirms when a change genuinely improved it, using a paired bootstrap so small-golden-set noise cannot cry wolf. Held-ou…

    Python

  2. llm-spend-attributor llm-spend-attributorPublic

    Attributes LLM token spend to teams, features and prompt versions from request traces, pricing each request at the rate in force when it was made. Finds a prompt version that tripled one team's tok…

    Python

  3. cdc-exactly-once cdc-exactly-oncePublic

    Change-data-capture applier that converges to exactly the rows the source log implies - under duplicate delivery, out-of-order delivery, and 24 processes killed mid-transaction. Contiguous low wate…

    Python

  4. spark-skew-doctor spark-skew-doctorPublic

    Diagnoses Spark data skew from the job's own event log - no cluster, no JVM - and tells key skew apart from a straggler by comparing task time against bytes read. Then measures the fixes against ea…

    Python

  5. lakehouse-reconciler lakehouse-reconcilerPublic

    Reconciles a Delta table against its source of truth across five levels, names the corruption mode out of 11 rather than reporting "these tables differ", and bisects the Delta log to the version th…

    Python

  6. serving-skew-sentinel serving-skew-sentinelPublic

    Arbitrates training and serving skew by implementing the declared feature semantics a third time, so a parity check that can only say "the two paths differ" becomes one that names the cause and bla…

    Python