[{"content":"","date":"1 August 2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"CFEG is a gateway on Cloudflare Email Routing: keep what you receive when you want, forward on your terms, and reply or compose as the original address — even when you have hundreds of them.\nRepos: cf-email-gateway · cfeg-reply-extension\nThe problems # 1. Forwarding is lossy # Cloudflare can route mail to Gmail (or another inbox). That path is not a vault.\nInbound delivery can fail when the destination is down, the mailbox is full, or you hit rate limits. If the only copy was “whatever made it through forward,” that mail is gone.\nCFEG can archive on receive so you keep a durable copy of what hit the domain, independent of the downstream inbox’s mood. Forward stays optional: archive + forward, archive only, forward only — per how you configure the worker.\n2. Reply-as-original is painful at scale # Mail that lands in a shared/forwarded inbox is awkward to answer from the address the sender wrote to.\nGmail’s Send mail as works for a handful of identities. It does not work when you run:\nmany role addresses, or catch-all privacy mail — one domain, local part unique per service (netflix@…, bank@…, random-shop@…), hundreds of addresses over time You are not going to click through Send-mail-as setup for every alias. So people reply from the catch-all inbox address, break expectations, or abandon the privacy scheme.\nCFEG reply tokens fix that: reply (and compose) using the right identity without provisioning each address in Gmail.\nOne personal pattern CFEG is built around: catch-all privacy domain → every service gets a unique local-part → still reply/compose as that address through the gateway, including from Gmail via the companion extension.\nWhat CFEG does # Capability Why it matters Archive on receive (optional) Keep a copy when you enable it; survive dest outages, full storage, rate limits Forward (optional) Forward after processing, or skip forward for keep-only / quiet sink Reply tokens / hop Answer as the original recipient address without per-alias Send mail as Compose as any address New mail from catch-all / role identities in the same model Gmail extension Reply / Reply-All in the UI you already use, routed through CFEG Who it’s for # Domains on Cloudflare Email Routing that need a real receive log, not only a best-effort forward People and teams juggling many identities on one domain Catch-all privacy setups where unique local-parts are the product, not an edge case Anyone tired of Send mail as as the identity plane How it fits together # Inbound — your policy, not a fixed pipeline # Sender │ ▼ Cloudflare Email Routing │ ▼ CFEG Worker │ ├─► Archive (optional) │ └─► Forward (optional) ──► Your inbox Examples:\nArchive + forward — keep a copy and still land mail in the inbox Archive only — durable keep, no forward Forward only — routing without CFEG archive Enable at least one path that matches how you want mail handled When archive is on, the kept copy does not depend on the destination being up, having free storage, or accepting more mail right then.\nOutbound — reply / compose as the original address # Gmail (CFEG extension) or send/reply client │ ▼ CFEG hop (reply / compose token) │ ▼ Sent as the real address (catch-all local-part, role address, etc. — no per-alias Gmail \u0026#34;Send mail as\u0026#34;) Inbound is no longer “forward or bust.” Outbound identity is no longer “only the addresses Gmail knows.”\nTry it / code # Gateway: github.com/reynhartono/cf-email-gateway Gmail Reply extension: github.com/reynhartono/cfeg-reply-extension Built for operators who want mail they can trust on Cloudflare — kept when you choose to archive, and speakable from every address the domain owns.\nNote # CFEG is open tooling around Cloudflare Email Routing. Wire it to your own routes, storage, and policy. Archive and forward are independent options.\n","date":"1 August 2026","externalUrl":null,"permalink":"/cf-email-gateway/","section":"Work","summary":"Optional archive and forward on Cloudflare Email Routing. Reply and compose from any address — including catch-all privacy mail — without Gmail Send mail as hell.","title":"CFEG — Cloudflare Email Gateway","type":"work"},{"content":"","date":"1 August 2026","externalUrl":null,"permalink":"/tags/cloudflare/","section":"Tags","summary":"","title":"Cloudflare","type":"tags"},{"content":"","date":"1 August 2026","externalUrl":null,"permalink":"/tags/email/","section":"Tags","summary":"","title":"Email","type":"tags"},{"content":"","date":"1 August 2026","externalUrl":null,"permalink":"/tags/gmail/","section":"Tags","summary":"","title":"Gmail","type":"tags"},{"content":"","date":"1 August 2026","externalUrl":null,"permalink":"/tags/privacy/","section":"Tags","summary":"","title":"Privacy","type":"tags"},{"content":"","date":"1 August 2026","externalUrl":null,"permalink":"/categories/projects/","section":"Categories","summary":"","title":"Projects","type":"categories"},{"content":"I\u0026rsquo;m a hands-on engineer and tech lead. I design backend services and platforms to be reliable and secure.\nOpen to senior roles in backend, SRE/infrastructure, and technical leadership.\nRemote · global · full-time or contract.\nEmail · LinkedIn · Resume\n","date":"1 August 2026","externalUrl":null,"permalink":"/","section":"Reyn Hartono","summary":"","title":"Reyn Hartono","type":"page"},{"content":"","date":"1 August 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"Selected projects and public tools.\n","date":"1 August 2026","externalUrl":null,"permalink":"/work/","section":"Work","summary":"","title":"Work","type":"work"},{"content":"","date":"17 September 2022","externalUrl":null,"permalink":"/tags/bash/","section":"Tags","summary":"","title":"Bash","type":"tags"},{"content":"Notes on infrastructure, networking, and building systems.\n","date":"17 September 2022","externalUrl":null,"permalink":"/posts/","section":"Blog","summary":"","title":"Blog","type":"posts"},{"content":"The simplest form to count non-null bytes of a file is by using sed to delete the null bytes and then pipe it to wc. This will achieve our main goal to count the non-null bytes of a file.\nsed \u0026#39;s/\\x00//g\u0026#39; /path/to/file | wc -c But, when trying to do the counting on large files, that command will take forever and it doesn\u0026rsquo;t even give any progress. So we can start using pv to be able to see the progress.\npv /path/to/file | sed \u0026#39;s/\\x00//g\u0026#39; | wc -c That\u0026rsquo;ll tell us how many bytes has been processed and the overall progress of the command. But, if you wanted to get more detail of the progress, we can put two pv in the command. This will give us the overall progress and the counted non-null bytes.\npv -N in -c /path/to/file | sed \u0026#39;s/\\x00//g\u0026#39; | pv -N out -c | wc -c The in part of pv will give us the overall progress and out is the counted non-null bytes.\n","date":"17 September 2022","externalUrl":null,"permalink":"/posts/counting-non-null-bytes-of-a-file/","section":"Blog","summary":"Faster non-null byte counts with sed, pv, and wc.","title":"Counting Non-Null Bytes of a File","type":"posts"},{"content":"","date":"17 September 2022","externalUrl":null,"permalink":"/categories/engineering/","section":"Categories","summary":"","title":"Engineering","type":"categories"},{"content":"","date":"17 September 2022","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":" Now # I\u0026rsquo;m Reyn Hartono. I work as a hands-on engineer with tech lead scope: backend, SRE/infrastructure, and security, with a clear focus on reliable and secure design.\nMost recently I was Engineering Team Lead at The Software Practice (Singapore, remote) — close to the code, delivery, and production quality. Before that I was a Site Reliability Engineer, then Senior SRE, at Verihubs, helping stand up SRE practice, multi-cloud infrastructure, GitOps, and observability.\nI\u0026rsquo;m open to senior backend and SRE/infrastructure roles, and to technical leadership where I stay hands-on.\nRemote · global · full-time or contract.\nWhat I optimize for # Reliability and security are design inputs, not a final checklist:\nFailure modes you can explain; recovery you can run Least privilege and tight authorization Services and platforms that stay operable under load Automation that makes the safe path the default Proof (sanitized) # Capacity on the same footprint: raised a production service path from ~100 rps to ~3,000 rps without scaling the infra out — microservices behind KrakenD (Go), Python FastAPI services (auth + domain), SQS-backed async work, PostgreSQL. Payments: designed and implemented reliable Stripe callback/payment tracking so provider events and internal state stay consistent. SRE foundation: early SRE hire at Verihubs — IaC, Kubernetes, GitOps (ArgoCD), multi-cloud networking, centralized observability. Security research: reported vulnerabilities to multiple companies, including Bukalapak (others asked not to be named). How I lead # As a tech lead, I stay hands-on: shipping, reliability, and incidents. I work with product, PM, and QA as needed, and I keep the design bar on reliable and secure systems visible in day-to-day decisions.\nStack # Area Strong / recent Backend C# / .NET Core, PHP / Laravel; also Java, Node.js. Open to Go and deeper Java Cloud GCP, AWS Infra Terraform/OpenTofu, Ansible, Docker, Kubernetes, Helm, bare metal where it matters CI/CD GitLab CI, ArgoCD Observability Grafana, Loki, Tempo, VictoriaMetrics Data PostgreSQL, MySQL, Redis, SQLite Network TCP/IP, VPNs, API gateways (incl. KrakenD), packet analysis, MikroTik, FortiGate Edge / email Cloudflare (see CFEG) Background # I started programming young on a family PC with a single Visual Basic 6 book. That early habit — understand the system, then harden it — never really left.\nContact # me@reyn.id · LinkedIn · GitHub · Resume\n","externalUrl":null,"permalink":"/about/","section":"Reyn Hartono","summary":"Tech lead — backend, SRE/infra, security","title":"About","type":"page"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":" Download # Download resume (PDF)\nOr reach me by email or LinkedIn.\nAt a glance # Focus: backend · SRE/infrastructure · security · technical leadership Bar: reliable and secure design Work style: remote · global · full-time or contract Experience (summary) # Engineering Team Lead — The Software Practice Pte Ltd (Singapore, remote) # Dec 2023 – Feb 2026\nTech lead. Secure backend services and client systems in C# / .NET Core; APIs and business logic aligned to delivery timelines; validation layers to reduce bad input and production error noise; worked with PM and QA on defects and production readiness.\nSenior Site Reliability Engineer — Verihubs (Jakarta, remote) # Feb 2022 – Nov 2023\nMulti-cloud GCP/AWS architecture; IaC for safer, repeatable change; GitLab CI + ArgoCD; observability with Grafana / Loki / Tempo / VictoriaMetrics; multi-cloud network design (VPN, cross-cloud, vendor access, isolation); API gateway tuning; mentored interns and new engineers.\nSite Reliability Engineer — Verihubs (Jakarta, remote) # Jun 2021 – Jan 2022\nBuilt foundational SRE practice: Kubernetes, Terraform, ArgoCD/GitOps; PostgreSQL operations; self-hosted GitLab; container workload reliability; performance work with product engineers; supported ISO 27001 security and compliance efforts.\nNetwork Administrator \u0026amp; Technical Support — BINUS University # Sep 2019 – Aug 2021\nAutomation for lab and infrastructure operations; Linux/Windows servers; campus network (routing, switching, firewalls, access control); Wireshark-level diagnosis; Active Directory; datacenter hardware work.\nTeaching Assistant — BINUS University # Sep 2018 – Aug 2019\nUndergraduate practicums covering programming, penetration testing, secure web development, forensics, operating systems, and networking.\nFreelance Web Developer # Jun 2011 – Jul 2018\nFull-stack work via Fiverr and Upwork (PHP/Laravel, WordPress, hosting migrations, Linux, legacy fixes); high client volume with strong ratings.\nSkills # Backend: PHP, Laravel, C#, .NET Core, Java, Node.js\nCloud: GCP, AWS\nInfra: Terraform, Ansible, Docker, Kubernetes, Helm\nCI/CD: GitLab CI, ArgoCD\nObservability: Grafana, Loki, Tempo, VictoriaMetrics\nData: MySQL, PostgreSQL, SQLite, Redis\nNetworking: TCP/IP, VPNs, API gateways, packet analysis, MikroTik, FortiGate\n","externalUrl":null,"permalink":"/resume/","section":"Reyn Hartono","summary":"CV — Reyn Hartono","title":"Resume","type":"page"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}]