Skip to content
View hsdfat's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report hsdfat

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

Hi, I'm hsdfat 👋

Go engineer building telecom core networks and the cloud-native systems around them. I work primarily on 5G/EPC network functions, then take the production problems I find upstream to the Go and Kubernetes ecosystem.

Focus

  • 5G Core, EPC interworking, Diameter, SBI, HTTP/2, and NETCONF
  • Go services on Kubernetes, with Helm-based delivery and end-to-end testing
  • Storage, observability, and performance work that makes production systems safer under load

Current work — udm-system

A Go monorepo for a combined 5GC + EPC stack: UDM, AUSF, UDR, HSS, EIR, Diameter and HTTP/2 gateways, provisioning, and the test and profiling tools needed to operate them.

Open source

I contribute production-driven fixes to the infrastructure I use: Kubernetes tooling, storage, media, observability, stream processing, and 5G projects.

68 merged pull requests (1 later reverted) across 31 upstream projects totalling 443k stars · 25 in review

Browse every merged and open upstream pull request

Merged

Project ★ PR Contribution
caddyserver/caddy 78.7k #8063 caddyauth: support third-party hash modules
rclone/rclone 60.8k #9693 fserrors: make http2 "server sent GOAWAY" a retriable error - fixes #96…
rclone/rclone 60.8k #9751 operations: check checksums in rcat with known size - fixes #6305
rclone/rclone 60.8k #9868 dropbox: fix shared folder mount for roots nested more than one level d…
rclone/rclone 60.8k #9869 dropbox: match shared-folder and received-file names case-insensitively
rclone/rclone 60.8k #9870 serve docker: fix volume path being lost when the plugin restarts
rclone/rclone 60.8k #9872 fs/config: only run --password-command once when using --daemon
rclone/rclone 60.8k #9944 operations: make --immutable work with copyto, moveto and single file c…
rclone/rclone 60.8k #9945 smb: save the user name in the config even if it matches the current us…
rclone/rclone 60.8k #9947 local: stop --copy-links following symlink loops - fixes #4402
rclone/rclone 60.8k #9949 vfs: fix AddVirtual ignoring isDir
rclone/rclone 60.8k #9950 serve dlna: log unescaped paths - fixes #7370
rclone/rclone 60.8k #9977 docker: add mailcap for /etc/mime.types - fixes #6384
rclone/rclone 60.8k #10057 lib/batcher: log when committing uploads has finished - fixes #5564
go-gitea/gitea 58.9k #38693 fix(lfs): failed upload deletes a concurrent upload's meta object
alibaba/open-code-review 49.4k #501 feat(allowlist): add Julia (.jl) support
nushell/nushell 40.8k #19092 Clear sqlite history with SQL instead of deleting the file
seaweedfs/seaweedfs 35.9k #10656 s3api: fix ListObjectsV2 dropping objects under a partial prefix
seaweedfs/seaweedfs 35.9k #11393 fix(volume): return an error instead of panicking on a corrupt needle s…
seaweedfs/seaweedfs 35.9k #11397 fix(volume): return an error instead of 201 when a write lands on no vo…
seaweedfs/seaweedfs 35.9k #11398 fix(volume): stop ScanVolumeFileFrom at a header it cannot advance past
seaweedfs/seaweedfs 35.9k #11399 fix(volume): validate sizes in ReadNeedleBlob and WriteNeedleBlob
seaweedfs/seaweedfs 35.9k #11483 fix(volume-rust): reserve a disk before replacing a replica in VolumeCo…
seaweedfs/seaweedfs 35.9k #12269 fix(volume): reject a negative suffix length in Range headers
seaweedfs/seaweedfs 35.9k #12270 fix(s3): reject non-integer max-parts, part-number-marker and max-uploa…
grpc-ecosystem/grpc-gateway 20k #7110 docs: add runnable OpenTelemetry tracing example
grpc-ecosystem/grpc-gateway 20k #7207 fix(openapiv2): omit oneof siblings of path parameters from query param…
argoproj/argo-workflows 17.1k #16602 perf(executor): read resource once for outputs (fixes #5658)
IBM/sarama 12.5k #3752 fix(client): only deregister the broker registered under that ID
IBM/sarama 12.5k #3852 fix(protocol): don't send an unclean election as ElectLeaders v0
kubeshark/kubeshark 12.1k #1956 helm: use Recreate strategy for hub Deployment when local snapshots PVC…
shirou/gopsutil 11.9k #2143 [docker][linux]: support cgroup v2 in Cgroup* functions
shirou/gopsutil 11.9k #2163 [cpu][darwin]: don't crash in getFrequency when pmgr lacks voltage-stat…
velero-io/velero 10.4k #10212 Fix Zip Slip path check accepting a sibling directory in archive extrac…
anchore/syft 9.8k #5121 fix(binary): match istio snapshot and older pre-release versions
woodpecker-ci/woodpecker 8.1k #7189 Release agents waiting on long polls during server shutdown
woodpecker-ci/woodpecker 8.1k #7192 Fix race condition on concurrent pipeline config persist
woodpecker-ci/woodpecker 8.1k #7454 Fix image tag detection for registries with a port
uptrace/bun 5k #1414 fix(bunotel): honor WithMeterProvider when reporting DB stats metrics
uptrace/bun 5k #1415 fix(relation): do not duplicate joined models on a shared base model
uptrace/bun 5k #1435 fix: resolve map column types before scanning rows
apache/arrow-rs 3.7k #11229 fix(parquet): support non-primitive map keys in record reader
apache/arrow-rs 3.7k #12006 fix(arrow-string): saturate the length in Utf8View/BinaryView substring
apache/arrow-rs 3.7k #12007 fix(arrow-json): reject out-of-range float timestamps instead of satura…
vishvananda/netlink 3.3k #1225 filter: use EncDestIPMask when encoding Flower EncDestIP
nginx/nginx-gateway-fabric 1.2k #5639 fix: correct validation error diagnostics and add missing CRD schema co…
bluenviron/gortsplib 944 #1171 sdp: support oversized numbers in origin (bluenviron/mediamtx#5949)
algesten/str0m 648 #1058 Limit pacer burst size at high bitrates
ClickHouse/clickhouse-rs 570 #478 fix(types): parse JSON type hints with parenthesized types
ClickHouse/clickhouse-rs 570 #481 fix: use a derived query ID for insert schema lookups
kerlenton/mcpsnoop 366 #212 feat(check): emit SARIF 2.1.0 so findings land in the Security tab
kerlenton/mcpsnoop 366 #213 feat(cli): wrap and unwrap the Claude Desktop config for one server
gopacket/gopacket 320 #172 Reverted after merge. packet: set zeroCopy in NewZeroCopyPacketSource
fiorix/go-diameter 298 #262 diam: key the Unmarshal AVP index by {Code, VendorID}
fiorix/go-diameter 298 #276 diam: keep only the P flag of the request in Answer
pyhss/pyhss 115 #337 diameterService: iterate over a snapshot of activePeers
bluenviron/mediacommon 105 #368 h265: fix DTS extraction of streams with temporal sub-layers
bluenviron/mediacommon 105 #373 pmp4: support stsz with a constant sample size (bluenviron/mediamtx#580…
bluenviron/mediacommon 105 #375 pmp4: support tracks without edts
bluenviron/mediacommon 105 #376 pmp4: return seek errors from GetPayload
bluenviron/mediacommon 105 #377 pmp4: support tracks longer than 2^32 ticks
bluenviron/mediacommon 105 #398 h264: fix SPS width when ChromaArrayType is 0
bluenviron/mediacommon 105 #399 av1: support sequence headers with initial display delay
free5gc/amf 23 #232 fix: guard non-string DNN type assertions in GMM handler
free5gc/udm 9 #96 fix(udm): return ProblemDetails for unmatched resource URIs
free5gc/tngf 5 #47 fix: prevent slice-bounds panic on malformed IKE SA proposal
free5gc/udr 4 #70 fix: return ProblemDetails for unmatched resource URIs
free5gc/ike 3 #24 fix: prevent slice-bounds panics from uint8 SPI offset overflow

In review

Project ★ PR Contribution
caddyserver/caddy 78.7k #8062 caddyhttp: Add status_code option to http_redirect listener wrapper
rclone/rclone 60.8k #9946 serve sftp, serve webdav: fix stale hashes reported while a file is bei…
rclone/rclone 60.8k #10220 serve sftp: fix rmdir deleting a file instead of returning an error
rclone/rclone 60.8k #10221 serve dlna: fix crash on Browse with a negative StartingIndex or Reques…
bluenviron/mediamtx 20.6k #6195 playback: cache segment headers to speed up /list (#5094)
IBM/sarama 12.5k #3753 fix(offset): avoid deadlock when closing during a blocked commit
IBM/sarama 12.5k #3851 fix(protocol): decode compressed batches with more records than bytes
shirou/gopsutil 11.9k #2190 [disk][linux]: decode only \ooo escapes in mount points
shirou/gopsutil 11.9k #2191 [net][linux]: fix IPv6 address decoding on big-endian hosts
redpanda-data/connect 8.8k #4656 slack: only enforce token prefixes on literal values
uptrace/bun 5k #1466 fix: require primary keys for bulk UpdateQuery
uptrace/bun 5k #1467 fix(pgdialect): scan int64 and float64 range bounds instead of panicking
prometheus-community/postgres_exporter 3.6k #1443 stat_wal_receiver: export metrics when replicating without a slot
apache/iceberg-rust 1.4k #3284 fix(spec): accept object-form partition-spec in manifest metadata
bluenviron/gortsplib 944 #1178 format: support mismatched fmtp payload type
bluenviron/gortsplib 944 #1181 client: support SETUP responses without Transport header
pion/stun 864 #301 Restrict stun-client to IPv4
asticode/go-astits 617 #79 Sync to the first packet when the stream doesn't start with a sync byte
ClickHouse/clickhouse-rs 570 #507 feat: add Insert::set_buffer_size()
ClickHouse/clickhouse-rs 570 #508 feat: support different column names for serialization and deserializat…
pion/rtp 479 #372 Drop H264 FU-A fragments without a start
fiorix/go-diameter 298 #275 diam: match the Vendor-Id in FindAVP, FindAVPs and FindAVPsWithPath
pion/interceptor 149 #470 Assign RTX sequence numbers at send time
pyhss/pyhss 115 #338 diameter: answer with an error Result-Code when a handler raises
free5gc/smf 26 #244 fix: release SMContext and reject when UDM token fetch fails

Regenerated nightly from the GitHub API by scripts/build_stats.py. Own and private repositories are excluded, so every row is a public upstream contribution.

Tech

Go · Kubernetes · Helm · Docker · gRPC / protobuf · Diameter · HTTP/2 · SBI · NETCONF · distributed SQL · observability

Pinned Loading

  1. diam-gw diam-gw Public

    Go

  2. seaweedfs/seaweedfs seaweedfs/seaweedfs Public

    SeaweedFS is a distributed storage system for object storage (S3), file systems, Iceberg table buckets, and Lance vector buckets, designed to handle billions of files with O(1) disk access and effo…

    Go 35.9k 3.1k