Skip to content
View om7057's full-sized avatar

Highlights

  • Pro

Block or report om7057

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.

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

Om Kulkarni

Backend and distributed systems  ·  Go, gRPC, event-driven architecture
Software Engineer  ·  Contributor to CNCF-hosted projects

Portfolio  ·  LinkedIn  ·  Medium  ·  X


Merged upstream OpenTelemetry (C++ SDK, Go Contrib, Go Compile Instrumentation) · Prometheus · GoFr
CNCF ecosystem Prometheus and OpenTelemetry are both CNCF graduated projects
Focus Metrics cardinality · specification compliance · declarative configuration · TSDB internals · migration tooling
Research IEEE ICFT 2025, co-author and presenter on metadata exploration across lakehouse table formats
Experience Software Engineer working on backend and distributed systems. Previously SDE Intern at CoinSwitch (Go, gRPC, NATS JetStream) and Engineering Intern at ConnectWise (Go, Kafka, Aurora)

Recent work

A pattern runs through most of what I contribute upstream: software that fails silently rather than loudly, and my fixes tend to replace a swallowed error or a discarded configuration value with a deliberate one.

In the Prometheus TSDB, querier cleanup was discarding errors returned by Close(), so a failing block surfaced as a successful query with missing data. I introduced errors.Join() to preserve concurrent cleanup failures alongside the primary error (#19114, #19120).

Most of my recent work has been in the OpenTelemetry C++ SDK. EnvironmentCarrier didn't normalize empty keys, so Get("")/Set("") silently touched the wrong slot instead of erroring : a spec violation I fixed alongside the caching contract's documentation (#4190, #4264). I also implemented configurable, per-instrument-type cardinality limits for the Metrics SDK, which previously hardcoded a limit of 2000 and silently discarded any user-supplied override (#3292, #4188) : along with a follow-up fix for histogram views that set only a cardinality limit, which were being silently rejected (#4314). Separately, I closed a declarative-configuration gap where minimum_severity and trace_based were missing from LoggerConfig, causing file-configured loggers to silently ignore severity filtering (#4130, #4131).

I've since extended the same pattern to the Go side of OpenTelemetry. In opentelemetry-go-contrib, I fixed unbounded network.peer.address cardinality in otelmongo caused by unparsed pooled connection ID suffixes (#9275, #9352); a determinism bug in the AWS X-Ray IDGenerator where a silently-discarded seed-read error could produce identical trace and span IDs across instances (#9048, #9359); and a case in otelhttp where network.protocol.version was read from the outgoing request rather than the negotiated response, misreporting HTTP/2 connections as HTTP/1.1 (#9007, #9371). In opentelemetry-go-compile-instrumentation, I fixed the gin package silently ignoring OTEL_GO_DISABLED_INSTRUMENTATIONS=gin, since it never checked the runtime enable/disable gate every other instrumentation package relied on (#839, #840).

In GoFr, I added ScyllaDB migration support with a gomock-based test harness, extending the framework's schema-migration path beyond relational backends (#2085).


Research

MetaLens: A Web-Based Tool for Multi-Format Metadata Exploration
IEEE ICFT 2025, Smart Computing track. Co-author and presenter.

A format-agnostic metadata layer for lakehouse systems, unifying schema and snapshot state across Iceberg, Hudi, Delta, and Parquet into a single view.

IEEE Xplore  ·  DOI: 10.1109/ICFT66708.2025.11336690


Stack


Contribution graph

commit activity graph

3D contribution graph

Popular repositories Loading

  1. adsl adsl Public

    TypeScript 1 1

  2. opentelemetry-cpp opentelemetry-cpp Public

    Forked from open-telemetry/opentelemetry-cpp

    The OpenTelemetry C++ Client

    C++ 1

  3. opentelemetry-go-contrib opentelemetry-go-contrib Public

    Forked from open-telemetry/opentelemetry-go-contrib

    Collection of extensions for OpenTelemetry-Go.

    Go 1

  4. prometheus prometheus Public

    Forked from prometheus/prometheus

    The Prometheus monitoring system and time series database.

    Go 1

  5. WasmEdge WasmEdge Public

    Forked from WasmEdge/WasmEdge

    WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices,…

    C++ 1

  6. apicurio-registry apicurio-registry Public

    Forked from Apicurio/apicurio-registry

    An API/Schema registry - stores APIs and Schemas.

    Java 1