Skip to content
View RyoKusnadi's full-sized avatar

Block or report RyoKusnadi

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

Hi ๐Ÿ‘‹, I'm Ryo Kusnadi

Typing SVG

Followers Stars Last commit

  • ๐Ÿš€ Founder of Interview Gym Pro: interview prep for software engineers, with Go patterns, a code runner and drills, plus AI feedback from Claude
  • ๐Ÿ”ญ I'm currently a Backend Engineer building AI-powered developer tools
  • ๐Ÿ“ I regularly write articles on Level Up Coding
  • ๐Ÿ’ฌ Ask me about Go & Python
  • ๐Ÿ“ซ How to reach me ryokusnadi@gmail.com
GIF

Tech Stack

Tech stack icons


My Writings


Open Source Contribution

Merged PRs (Last 1 Year)

No Project My Merged PR Description Last Update
1 semantix #555 fix(usage): stop charging L3 reuse cache-hit tokens as paid cost (Issue #548) 2026-11-05
2 scrutiny #1104 refactor(reports): use AttributeEvaluatedValue for ATA alert values 2026-11-05
3 comin #225 repository: fix the testing branch error message 2026-11-05
4 cozy-stack #5172 fix(csp): Match the directive name only at the start of a directive in AppendCSPRule 2026-11-04
5 replication-manager #2311 fix(crypto): Decrypt returns an error for a hash_ value that is not a ciphertext (#2308) 2026-11-04
6 opencloud #3894 fix(proxy): answer 403 instead of 500 when the role claim is missing 2026-11-04
7 devlake #9324 fix(jira): send startAt and maxResults when collecting worklogs 2026-11-04
8 replication-manager #2302 fix(cluster): CheckPrivileges looks up the replication user for ERR00007 (#2245) 2026-11-04
9 dagu #3503 Pin a mail server certificate by SHA-256 with tls_cert_sha256 2026-11-04
10 replication-manager #2301 Logical reseed, mydumper and flashback dumps stay local when listed in scheduler-jobs-exec-remote (#2116) 2026-11-04
11 agent-sandbox #2160 examples: remove the default HF token from the JupyterLab example 2026-11-04
12 trpc-agent-go #2719 examples/skill: pin openai-whisper in the whisper skill install command 2026-11-04
13 scrutiny #1086 fix(notify): compare evaluated value for repeat-only-on-change notifications 2026-11-04
14 scrutiny #1085 fix(reports): show attribute name, value and threshold in alert lines 2026-11-04
15 sablier #1277 fix(api): stop listing registered groups in the group-not-found response 2026-11-04
16 ongrid #574 fix(setting): keep whitespace in Loki/Tempo basic-auth passwords end to end 2026-11-04
17 oxynote #288 fix(core): answer 401 when a Slack request signature is missing, wrong or expired 2026-11-03
18 oxynote #287 fix(core): trim variable and group names and limit their length 2026-11-03
19 cozy-stack #5152 fix(note): return an error for table markers outside a table 2026-11-03
20 ongrid #573 fix(aiops): cut query_knowledge previews on a rune boundary 2026-11-03
21 cozy-stack #5143 fix(jsonapi): Reject non-positive page[limit] 2026-11-02
22 dagu #3480 fix(browser): tell unlabeled table inputs apart by column header 2026-11-02
23 gin-vue-admin #2272 fix(web): ้€š่ฟ‡ packageManager ๅ›บๅฎš pnpm ็‰ˆๆœฌ๏ผŒไฟฎๅค Docker ๆž„ๅปบๅคฑ่ดฅ 2026-10-28
24 kubernetes-mcp-server #1511 test: move unique tool and prompt tests to pkg/mcp 2026-10-26
25 kubernetes-mcp-server #1502 Added a metric that tracks in-flight MCP requests 2026-10-26
26 stackql #870 intrinsic: keep iac state directories under an operator root 2026-10-24
27 ongrid #536 fix(frontierbound): fail closed when an edge has no transport binding 2026-10-22
28 dagu #3255 Allow while and until repeat without a condition 2026-10-21
29 zeroid #450 fix: scope OAuth client admin routes to the caller's tenant 2026-10-21
30 dagu #3230 fix: keep npm and npx shims working for symlinked tool binaries 2026-10-18
31 ongrid #525 fix(aiops): stop hardcoding a 15s tool timeout 2026-10-17
32 ongrid #524 fix(aiops): make a zero tool timeout mean no deadline 2026-10-17
33 dagu #3219 Draw Activity runs as duration bars 2026-10-17
34 nginx-ui #2025 fix(site): keep extra locations when staging a pending TLS server 2026-10-17
35 dagu #3185 Fixed the dirlock so only one contender can take over a stale lock 2026-10-16
36 orloj #179 Added a built-in durable Postgres audit sink 2026-10-16
37 stackql #847 Added unit tests for the sqlrewrite package 2026-10-15

Opened PRs (Last 1 Year)

No Project My Opened PR Description Last Update
1 open-oscar-server #224 webapi: rate limit login attempts per IP 2026-11-05
2 scrutiny #1103 fix(reports): tell a zero alert threshold apart from no threshold 2026-11-05
3 sablier #1286 fix(docker): do not log or count a stop when the instance needed none 2026-11-05
4 claude-sync #101 fix: ignore drive-letter case when mapping Windows paths 2026-11-05
5 kine #822 Fix watch forwarder goroutine leak when consumer stops reading 2026-11-05
6 prebid-server #5086 Rules Engine Module: Limit number of cached accounts 2026-11-05
7 iotex-core #5067 fix(p2p): stop connectBootNode from blocking when only some bootnodes connect 2026-11-04
8 cloudflare-kubernetes-gateway #430 fix(controller): keep existing Deployment metadata when updating tunnel Deployment 2026-11-04
9 aws-sso-cli #1513 Fix device_code login getting no refresh token (sessions end after 8 hours) 2026-11-04
10 kopia #5787 fix(repository): rewrite deleted contents written through the repository server 2026-11-04
11 pilot #6078 fix(quality): a gate timeout kills the whole process group so it cannot hang on orphaned children 2026-11-04
12 pilot #6077 fix(quality): a required gate that times out on its last attempt now fails instead of counting as passed 2026-11-04
13 gocsv #315 Let callers recover a decoding panic in the UnmarshalToCallback functions 2026-11-04
14 opencloud #3902 fix(collaboration): close idle connections after the app discovery fetch 2026-11-04
15 dingtalk-workspace-cli #1591 fix(sheet): explain how to combine index with other properties in batch update 2026-11-04
16 dingtalk-workspace-cli #1590 fix(safechat): honour HTTP(S)_PROXY in the SafeChat key client 2026-11-04
17 devlake #9335 fix(jira): widen connection token column to text so long tokens are not truncated 2026-11-04
18 semaphore #4405 fix(templates): store an empty template vault name as NULL 2026-11-04
19 oxynote #306 fix(core): forward the client address and keep 429 from get-session distinct from 401 2026-11-04
20 afero #717 Return EPERM from CopyOnWriteFs.RemoveAll for base-only paths 2026-11-04
21 afero #716 Keep the overlay untouched when an exclusive OpenFile on a base file fails 2026-11-04
22 fyne #6656 glfw: don't panic when fyne.Do is called while the app shuts down 2026-11-04
23 kube-image-keeper #826 fix(mirroring): wait for the scan interval after an interrupted destination pass 2026-11-04
24 gofr #4591 fix(auth): reject empty API keys so an empty x-api-key is not accepted 2026-11-04
25 gofr #4590 fix(elasticsearch): report not connected instead of panicking after a failed Connect 2026-11-04
26 beego #5937 fix(task): don't skip an hour in Schedule.Next after a DST fallback 2026-11-04
27 immich-go #1502 fix(config): report invalid config values even when a later setting is valid 2026-11-04
28 erigon #25745 rpc/jsonrpc: return [] instead of null from debug_getModifiedAccountsBy* when no account changed 2026-11-04
29 sq #1337 fix(xlsx): fail ingest if the batch inserter finishes before all rows are sent 2026-11-04
30 cc-connect #2193 fix(core): add one blank line, not one per event, between quiet-mode text segments 2026-11-04
31 cc-connect #2192 fix(claudecode): read session transcript lines over 256KB in /list and /history 2026-11-04
32 claude-sync #100 fix(sync): decide remote change by ETag, not by comparing two clocks 2026-11-04
33 oxynote #303 fix(core): validate document name and icon on create and in MCP tools 2026-11-04
34 beego #5936 fix(web): give the HTTPS listener its own http.Server in normal mode 2026-11-04
35 semaphore #4396 fix(ssh): honor dirs.ssh_agent_sockets for SSH agent sockets 2026-11-04
36 lava #2344 fix(rpcprovider): make SleepUntilTimeOrConditionReached race-free and stop at the deadline 2026-11-04
37 clickhouse-backup #1665 download: don't leave half-extracted parts when a download is interrupted, fix #1633 2026-11-04
38 clickhouse-backup #1664 create: run the first FREEZE serially when shadow/increment.txt doesn't exist 2026-11-04
39 woodpecker #7476 Fix docker detached service reported as failed when teardown removes it before wait (incl. Podman 404) 2026-11-04
40 goclaw #1650 fix(tools): pass agent context window and max_tokens to media tools via the claude_cli bridge and /v1/tools/invoke (#1649) 2026-11-04
41 WeKnora #5097 fix(knowledge): check parser engine before reparse deletes existing content 2026-11-04
42 WeKnora #5096 fix(faq): add id tiebreaker to FAQ entry pagination order 2026-11-04
43 kubernetes-mcp-server #1611 docs(config): explain which values belong in Secrets, not ConfigMaps 2026-11-04
44 tusd #1415 handler: fix data race on request body and lost early interruption 2026-11-03
45 opencloud #3895 fix(antivirus): treat a clamd ERROR reply as a failed scan 2026-11-03
46 bumblebee #91 fix(osv): emit any-version entry when an affected entry also lists versions 2026-11-03
47 yarr #349 parser: detect feed format beyond the first 2 KB 2026-11-03
48 immich-go #1501 fix(google-takeout): apply sidecar metadata when its title is empty 2026-11-03
49 hive #1658 internal/libdocker, internal/libhive: keep full container IDs and don't wait on failed removal 2026-11-03
50 go2rtc #2646 Fix PTS clock for tapo backchannel audio 2026-11-03
51 sensu-go #5204 fix: remove user config subscription when NewSession fails 2026-11-03
52 frontier #2043 fix(mailer): time out when the SMTP server never sends its greeting 2026-11-03
53 sensu-go #5203 fix: close agent connection when agentd fails to create a session 2026-11-03
54 go2rtc #2644 xiaomi/legacy: fix Aqara G2 H264 probe panic and camera without audio 2026-11-03
55 copy #185 fix: refuse to copy a file onto itself instead of truncating it 2026-11-03
56 fleet-telemetry #584 Stop Kafka producer goroutines when the producer is closed 2026-11-03
57 kubernetes-ingress #875 BUG/MEDIUM: certs: wait for the certificate writers before deciding on a reload 2026-11-03
58 k8up #1294 Buffer backupCommand output so a slow restic start does not drop the exec stream 2026-11-03
59 bindery #3605 fix(api): look up authors with the library list scope in Add Book and Add Author 2026-11-03
60 super #7597 fix panic on record literal with untyped optional none field 2026-11-03
61 super #7594 fix panic comparing uint64 values >= 2^63 to signed integers 2026-11-03
62 bindery #3604 fix(scheduler): refresh nightly recommendations for every account (#3566) 2026-11-03
63 lakeFS #10592 Fix cherry-pick changing the source commit's metadata 2026-11-03
64 Paradev #9318 fix(host-service): list GitHub repositories without repeats when a push lands mid-walk 2026-11-03
65 Paradev #9317 fix(desktop): collapse Pinned and Projects sidebar sections independently 2026-11-03
66 zeroid #480 fix(store): a missing binding is not-found, not explicitly disabled 2026-11-03
67 zeroid #479 fix(store): attestation policy repo runs on the transaction in ctx 2026-11-03
68 steampipe #5084 Fix plugin manager panic when connection config changes while a plugin is starting 2026-11-03
69 pulumi #25507 Return an error instead of panicking for a parented custom resource with an invalid type token 2026-11-03
70 lakeFS #10590 Fix prepare GC commits crash when fetching a parent commit fails 2026-11-03
71 adk-go #2115 fix(mcptoolset): let a CommandTransport reconnect 2026-11-03
72 zeroid #475 fix: ignore unknown columns on every scan (WithDiscardUnknownColumns) 2026-11-03

Old PRs

No Project My Merged PR Description Last Update
1 go-sdk #563 Added PKCE check support to OAuth 2025-10-14
2 echo #2461 Added Skipper unit tests for BasicAuth and clearer BasicAuthValidator docs 2024-02-18
3 gci #178 Added an alias import section 2023-10-18

๐Ÿ† GitHub Achievements

GitHub Trophies

Connect With Me

Interview Gym Pro LinkedIn GitHub Medium

Popular repositories Loading

  1. crypto-snapshot-cli crypto-snapshot-cli Public

    Shell 7 6

  2. GoSampleMovieLogging GoSampleMovieLogging Public

    Go 3

  3. GoSingleflight GoSingleflight Public

    Sample Project To Showcase Singleflight Usecase in Go

    Go 2

  4. GoKafka GoKafka Public

    Go 1

  5. rig-bench rig-bench Public

    JavaScript 1

  6. CinemaManagementSystem CinemaManagementSystem Public

    C#