Skip to content
View simplegaurav's full-sized avatar

Block or report simplegaurav

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
simplegaurav/README.md

Gaurav Singh

Senior Data Engineer Β Β·Β  Azure Databricks Β Β·Β  Hyderabad, India

EmailΒ  LinkedInΒ  GraphFrames merged PRsΒ  DQX contributorΒ  Sponsor

Senior Data Engineer with 8+ years building production data platforms on Azure Databricks β€” PySpark, Delta Lake, Unity Catalog, Kafka, Airflow, Iceberg β€” across retail, pharma R&D, fintech and maritime shipping. Previously owned 200+ production pipelines processing 5+ TB/day behind real-time personalisation for 10M+ daily users. Contributor to GraphFrames and Databricks Labs DQX.

Two founding-team stints, both acquired (Codejudge β†’ Skuad Labs β†’ Payoneer). I ship with Claude and Cursor in the loop, prefer config-driven frameworks over one-off jobs, and build privacy into the data layer rather than bolting it on.

Open source

Project Contribution PR Status
GraphFrames Connected components returned silently wrong results β€” the Python max_iter default evaluated to 31, capping GraphX at 31 supersteps #902 βœ… Merged
GraphFrames Connected components docs contradicted the implementation β€” wrong defaults, three unusable parameter names, two undocumented behaviours #903 βœ… Merged
Databricks Labs DQX is_geo_within_distance β€” row-level geodesic geofencing check for the data-quality framework #1510 πŸ” In review

GraphFrames β€” connected components correctness

connectedComponents declared its max_iter default as 2 ^ 31 - 2. In Python ^ is bitwise XOR and - binds tighter, so the default evaluated to 31, not 2147483646 β€” capping GraphX Pregel at 31 supersteps and returning split, silently wrong components for any graph deeper than that, with no exception and no warning. A 50-vertex path graph returned 19 components instead of 1. Shipped with a behavioural regression test and a signature guard, verified on Spark 3.5 / 4.0 / 4.1 across both PySpark Classic and Spark Connect.

The follow-up reconciled the connected components documentation with the code: the wrong default algorithm and component-ID type, three documented parameters that matched neither the Python nor the Scala API, and two real behaviours nobody had written down β€” the spark.checkpoint.dir fallback that Spark Connect clients depend on, and the AQE mode that is roughly 5Γ— faster than the documented default.

Found while auditing the connected components path β€” the same algorithm I had been running in production for GDPR deletion.

Databricks Labs DQX β€” is_geo_within_distance

A row-level geofencing check: flags points farther than N metres from a reference point using geodesic distance (st_distancespheroid on the WGS 84 ellipsoid) rather than planar degrees. Accepts WKT/WKB/EWKT/GeoJSON via try_to_geometry, mixes SRID 0 and 4326 safely, reports invalid and non-point geometries instead of failing, supports per-row distance expressions, and keeps null semantics consistent with the rest of the geo checks. Ships with unit, integration and performance tests, reference docs, and a fix to the existing geo relationship examples. Motivated by vessel-position geofencing in maritime shipping.

Production work

  • Eligibility 2.0 β€” config-driven PySpark rules framework (Kroger / 84.51Β°). YAML-defined eligibility rules compiled into a multi-task Databricks Workflow, deployed with Asset Bundles and covered by pytest/BDD β€” new rules ship as config, not code. Cut dataset onboarding time by 40%. Presented at the KPM Tech Showcase.
  • Privacy Compliance Platform β€” GDPR/CCPA deletion at scale (GSK Vaccines R&D). GraphFrames identity graph resolves a data subject's full footprint, then cascades PII deletion across Apache Iceberg tables. 99.4% SLA adherence.
  • Real-time personalisation data platform (retail). 200+ Spark pipelines on a Medallion/Delta Lake architecture, 5+ TB/day, 10M+ daily users β€” 70% lower query latency, 35% fewer pipeline failures, 25% engagement uplift.
  • Data catalog RAG search. OpenAI embeddings + LangChain over the internal data catalog on Databricks; reduced analyst dependency on engineering for ad-hoc discovery by 30%.
  • Platform automation. SharePoint β†’ Unity Catalog ingestion (Graph API + Auto Loader + MERGE INTO); Freshservice ↔ Databricks webhooks that turn job failures into tracked tickets automatically.
  • Payroll & compliance data platform (Skuad Labs). 3+ TB/day of international payroll transactions across 150+ countries on AWS (S3, EMR, Redshift), with idempotent, reconciled loads.

Client work is proprietary β€” happy to walk through architecture and trade-offs on a call.

Stack

Area Tools
Platform Azure Databricks, Unity Catalog, Delta Lake (Medallion), Azure Data Factory, Microsoft Fabric / OneLake
Processing PySpark, Spark SQL & tuning (Z-Ordering, partition pruning, broadcast joins), Apache Iceberg, GraphFrames, Auto Loader
Streaming & orchestration Apache Kafka, Apache Airflow, Databricks Workflows
Engineering Databricks Asset Bundles, Azure DevOps YAML CI/CD, Terraform, pytest + chispa (95%+ coverage)
AI / LLM LangChain, OpenAI APIs (RAG); Claude and Cursor in the daily workflow
Also Python, SQL, Oracle; AWS (S3, EMR, Redshift) from earlier roles

Experience

  • Stolt-Nielsen β€” Senior Data Engineer, India Development Center (2026 – present)
  • Tech Mahindra β€” Senior Data Engineer; clients: Kroger / 84.51Β°, GSK Vaccines R&D
  • Skuad Labs β€” founding team (acquired by Payoneer)
  • Codejudge β€” founding team (Sequoia-backed; acquired by Skuad Labs)
  • Earlier: production ETL for Equifax US's financial data platform

Certifications & education

  • Microsoft Certified: Azure Data Engineer Associate (DP-203)
  • Databricks Certified Professional Data Engineer
  • PG Diploma in Data Science, IIIT Bangalore (2021) Β· B.Tech Civil Engineering, AKTU (2019)

Now

  • Contributing to GraphFrames β€” connected components correctness and documentation.
  • Contributing geospatial data-quality checks to DQX.
  • Where I'm heading: AdTech and retail media β€” audience and identity resolution, data clean rooms, privacy-preserving measurement.
  • Open to Senior / Lead Data Engineer roles on Azure + Databricks β€” Bangalore, Hyderabad or remote.

Contact

Fastest is email: gauravml247@gmail.com β€” I reply within a day. LinkedIn works too: linkedin.com/in/analyticsingh.

If my open source work is useful to you, you can sponsor it.

Pinned Loading

  1. dqx dqx Public

    Forked from databrickslabs/dqx

    Databricks framework to validate Data Quality of pySpark DataFrames and Tables

    Python