From 8df17a07f1b9a39e67d2ad1802c3efa5367f54b7 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Wed, 18 Mar 2026 00:25:38 +0900 Subject: [PATCH] Updated cv and added downloadable pdf --- content/cv.md | 64 +++++++++++++++++++++++--------------- static/cv/nik-afiq-cv.pdf | Bin 0 -> 26670 bytes 2 files changed, 39 insertions(+), 25 deletions(-) create mode 100644 static/cv/nik-afiq-cv.pdf diff --git a/content/cv.md b/content/cv.md index 5379963..2530047 100644 --- a/content/cv.md +++ b/content/cv.md @@ -1,10 +1,3 @@ ---- -title: "CV" -type: "cv" -date: 2026-03-17 -draft: false ---- - # NIK AFIQ Tokyo, Japan @@ -38,23 +31,42 @@ Designing and operating a distributed RCS consent management pipeline (SO→FoRCE) on GCP/GKE connecting a high-traffic notice delivery system to a downstream fulfillment API. -- Architected an event-driven pipeline using GKE + Managed Kafka - (8 partitions, keyed by account_id) + Cloud Spanner, handling a - global cap of 200 TPS with a 10-second downstream timeout budget -- Built the Go consumer service (so-notice-receiver) with - singleflight coalescing to prevent duplicate in-flight requests, - and circuit breaker logic to shed load under downstream failure +- Proposed and led adoption of a Kafka-based queuing architecture + to handle concurrent notification fan-out, identifying it as the + correct solution for account_id ordering under 20–40 TPS load +- Designed the request coalescing strategy using singleflight to + suppress duplicate in-flight downstream calls per account_id +- Architected the full event-driven pipeline: GKE + Managed Kafka + (8 partitions, keyed by account_id) + Cloud Spanner, with a + 200 TPS global cap and 10-second downstream timeout budget +- Designed graceful shutdown sequence for the consumer service, + ensuring in-flight requests complete cleanly before pod termination - Designed reliable offset commit ordering: offsets committed only after durable Spanner write, ensuring at-least-once delivery with no data loss on crash -- Implemented a retry cronjob requeuing up to 5 failed Spanner rows - back to Kafka every 5 minutes, with configurable backoff +- Implemented retry cronjob requeuing up to 5 failed Spanner rows + back to Kafka every 5 minutes with configurable backoff - Designed a zero-downtime interleaved index migration on a Cloud Spanner accounts table under 400 TPS sustained read traffic -- Right-sized GKE resource configs (CPU/memory requests and limits) - from Locust load test data at 40 TPS steady / 120 TPS burst -- Propagated distributed traces across service boundaries for - end-to-end production observability +- Designed OpenTelemetry integration with Datadog, defining trace, + span, and metrics strategy across services; integrated with Wiz + for unified observability and security posture +- Built CI pipeline with semantic version tag enforcement — prevents + image tag overwrites while allowing latest to update freely; + scoped Workload Identity permissions to read-only minimum +- Led performance testing with Locust (40 TPS steady / 120 TPS + burst); applied results to right-size GKE CPU/memory configs +- Led TDD adoption for the team and authored development guidelines + covering milestone structure, ticket definition-of-done standards, + and code review expectations +- Identified a 1-month deadline slip during mob programming, + escalated to leadership, facilitated full task breakdown and + schedule re-baseline across the team +- Stepped up as informal tech lead during a leadership gap — + created progression guidelines, maintained ticket quality, and + kept formal leadership informed of all decisions and scope +- Tasked with onboarding and upskilling Phase 2 application team + members to raise codebase quality ahead of next release ### 株式会社ニッポンダイナミックシステムズ — Tokyo @@ -92,18 +104,20 @@ system to a downstream fulfillment API. **Frameworks:** Gin, Flask, Next.js, Node.js **Cloud — AWS:** ECS/Fargate, Lambda, Aurora/RDS, DynamoDB, Glue, CDK, CodePipeline, Bedrock, Secrets Manager -**Cloud — GCP:** GKE, Cloud Spanner, Managed Kafka (Pub/Sub), - BigQuery, Cloud Trace +**Cloud — GCP:** GKE, Cloud Spanner, Managed Kafka, BigQuery, + Cloud Trace **Cloud — Azure:** Web Apps, ADB2C, Azure Pipelines **Data:** MySQL, Aurora, PostgreSQL, DynamoDB, Cloud Spanner, Kafka, Redis -**DevOps:** Docker, Kubernetes, ArgoCD, CI/CD, IaC (AWS CDK) -**Observability:** Distributed tracing, ELK stack, Kibana +**DevOps:** Docker, Kubernetes, ArgoCD, CI/CD, IaC (AWS CDK, + Ansible) +**Observability:** OpenTelemetry, Datadog, distributed tracing, + ELK stack, Kibana **AI Tooling:** GitHub Copilot (daily coding + code review), Gemini (documentation + research), Claude (architecture reasoning + coding), AWS Bedrock RAG (production) **Security:** VPC, WAF, Security Groups, Secrets Manager, - Docker vulnerability scanning + Workload Identity, Wiz, Docker vulnerability scanning **Other:** Homelab (k3s, self-hosted services, Ansible/IaC), personal dev blog at nik4nao.com @@ -146,4 +160,4 @@ added IT minor upon return.* - **Homelab:** Self-hosted k3s cluster, Gitea, Jellyfin, Cloudflare Tunnel, Ansible-based IaC on Minisforum UM790 Pro - **Dev blog / personal site:** nik4nao.com -- **Self-hosted Git:** git.nik4nao.com (mirrored to github.com/nikafiq) \ No newline at end of file +- **Self-hosted Git:** gitea.nik4nao.com (mirrored to github.com/nikafiq) diff --git a/static/cv/nik-afiq-cv.pdf b/static/cv/nik-afiq-cv.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4a770fdc30e7393e739f51fe728f95581dd1c86d GIT binary patch literal 26670 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