Dev.to
GitHub Suspended My 2-Year Developer Account — Here’s What I Learned
𝗚𝗶𝘁𝗛𝘂𝗯 𝗦𝘂𝘀𝗽𝗲𝗻𝗱𝗲𝗱 𝗠𝘆 𝟮‑𝗬𝗲𝗮𝗿 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 𝗔𝗰𝗰𝗼𝘂𝗻𝘁 — 𝗛𝗲𝗿𝗲’𝘀 𝗪𝗵𝗮𝘁 𝗜 𝗟𝗲𝗮𝗿𝗻𝗲𝗱 A few days ago, something happened that genuinely shook me as a developer. My GitHub account, KelvCodes, which I had used and built on for over 2 years, got restricted unexpectedly. At first, I thought it was a mistake that would be resolved quickly. I had experienced a temporary restriction before that was lifted within a short time, so I assumed this would be similar. But this time was different. Suddenly, I lost access to years of work and history tied to my developer identity: · 60+ projects · 110+ stars · 50+ followers · client work · collaborations · repositories connected to applications and opportunities For context, GitHub was not just a coding platform for me. It had become part of my professional identity as a software engineer. My resume linked to it. Applications linked to it. Opportunities came through it. In fact, some people literally looked at my GitHub profile before deciding to work with me. That's what made this experience difficult. The Emotional Side Nobody Talks About When developers lose access to an account, people often think: "Just create another account." But when you've spent years building a reputation, consistency, commit history, projects, and credibility under one identity, it doesn't feel that simple. It feels like losing a digital portfolio you carefully built over time. And honestly, for a moment, I felt stuck. Do I wait endlessly for support? Do I pause my work? Do I rebuild everything from scratch? What I Decided After thinking about it deeply, I realized something important: I cannot pause my growth waiting for a platform decision. So I made the decision to continue building. I created a new GitHub account: 👉 https://github.com/kelvinagyareyeboah And while I still hope my old account may eventually be restored, I'm no longer allowing the situation to stop my momentum. Lessons I Learned From This Your skills matter more than one platform Platforms are important
Kelvin Agyare Yeboah
2026-05-28 17:36
👁 9
查看原文 →
Dev.to
April ecommerce grew at 11% - here's what that means for backend infrastructure
The numbers just dropped. April ecommerce growth came in at 11% more than double the total retail sales growth rate for the same period. For developers building ecommerce infrastructure, this isn't just a market stat. It's a load test result. And a lot of backends are failing it quietly. Here's what 11% ecommerce growth actually means technically and the five infrastructure decisions that determine whether your client captures it or gets buried by it. What 11% growth means at the infrastructure level 11% more orders. 11% more simultaneous channel requests. 11% more concurrent inventory mutations across every connected platform. The sync architecture that handled last year's volume handles this year's volume — until it doesn't. The failure mode is predictable: javascript// Last year's volume const ordersPerDay = 500; const syncWindowsPerDay = (24 * 60) / 15; // 96 const ordersPerWindow = ordersPerDay / syncWindowsPerDay; // 5.2 // This year's volume at 11% growth const ordersPerDayNow = ordersPerDay * 1.11; // 555 const ordersPerWindowNow = ordersPerDayNow / syncWindowsPerDay; // 5.8 // During a flash sale at 10x velocity const peakOrdersPerWindow = ordersPerWindowNow * 10; // 57.8 // 57 orders processed against potentially stale stock per 15-minute window // Up from 52 last year seemingly small, meaningfully worse at the tail The difference between 52 and 58 orders per window sounds minor. At the tail peak flash sale velocity, multiple channels firing simultaneously — it's the difference between manageable oversell exposure and a crisis. The five infrastructure decisions that matter Sync architecture polling vs event-driven This is the highest leverage decision. Everything else builds on it. javascript// Polling — what most systems still run // Sync lag: up to 15 minutes // Cost at 11% growth: proportionally worse setInterval(async () => { const stock = await getSourceOfTruth(); await syncToAllChannels(stock); }, 15 * 60 * 1000); // Event-driven — sync lag approache
Nventory
2026-05-28 17:36
👁 5
查看原文 →
Dev.to
Go Modules in Practice: Init, Tidy, Vendor, and Publishing Packages
As a backend engineer, I have worked on many services where the hard part was not only writing the code. The hard part was keeping the project clean, reproducible, easy to build, and safe to maintain as the team and codebase grew. In Go, a big part of that discipline comes from understanding Go Modules . At first, Go Modules may look simple: a go.mod file, a go.sum file, and a few commands like go mod init and go mod tidy . But in real projects, these small tools decide how your service builds in CI, how your dependencies are verified, how private repositories are handled, and how other developers can use your package. In this article, I want to explain Go Modules in a practical way, from the mindset of someone building production backend systems. We will cover: What Go Modules are and why Go does not work like NPM or Pip How go mod init , go mod tidy , and go mod vendor actually help How I think about Go project structure without over-engineering How to publish your own Go package A few production tips that matter in real teams What Are Go Modules? A Go module is a versioned collection of Go packages. In simple words, it is the boundary of your project. It tells Go: what your project is called which Go version it targets which dependencies it needs which versions of those dependencies should be used A Go module is defined by the go.mod file. Before Go Modules, Go projects were commonly managed inside GOPATH . That worked, but it created friction around dependency versions and project location. Go Modules solved that by making dependency management explicit and project-based. Today, when I start a serious Go project, one of the first things I do is initialize a module. Why Go Packages Feel Different From NPM or Pip If you come from JavaScript or Python, Go package management may feel a little strange at first. In Node.js, packages are usually published to NPM . In Python, packages are usually published to PyPI . Go is different. Go uses the module path as an import
amir
2026-05-28 17:35
👁 7
查看原文 →
Dev.to
Building Metadata Capabilities in Apache SeaTunnel: A Committer’s Journey
Recently, Apache SeaTunnel welcomed several talented and highly motivated new Committers, and Wang Xuepeng is one of them. As a long-time contributor, Wang Xuepeng’s promotion to Committer was no coincidence. Over the years, he has quietly contributed a tremendous amount to the community, and everyone has witnessed his dedication. From first stepping into the open-source world to becoming a Committer of an Apache top-level project, he has accumulated plenty of stories and valuable insights along the way. What inspired his journey? What experiences and lessons does he want to share with the community? Let’s take a closer look at this exclusive interview with him! Personal Introduction Interview Transcript How long have you been involved in open source? What attracts you to open source? I started getting involved in open source in 2023. What attracts me most is the sense of achievement when the code I write can actually be used within the industry. When did you start contributing to SeaTunnel? What was the trigger? I joined WhaleOps in 2023, which was also when I first started engaging with open source. Now that you’ve been elected as a SeaTunnel Committer, could you summarize your contributions to the community, including both code and non-code contributions? Most of my major feature PRs have focused on building SeaTunnel’s metadata capabilities. When running SeaTunnel jobs and writing job configurations, users often need to manually enter datasource connection information. For file-based tasks, users also need to manually define field mappings. To address these issues, I designed an SPI interface called MetadataProvider . The interface mainly exposes two methods: Map<String, Object> datasourceMap(String connectorIdentifier, String metaDataDatasourceId); Optional<TableSchema> tableSchema(String metaDataTableId); Previously, some users in the community mentioned that datasource usernames and passwords were stored in Nacos with read-only access permissions. In scenario
Apache SeaTunnel
2026-05-28 17:34
👁 6
查看原文 →
Product Hunt
Vibeocus Lens
Bridge your live frontend directly to your AI agent. Discussion | Link
2026-05-28 17:24
👁 7
查看原文 →
InfoQ
Article: Stragglers, Not Failures: How Adaptive Hedged Requests Reduce p99 Latency by 74 Percent
n fan-out microservice architectures, slow-but-completing requests accumulate across services and drive p99 latency far higher than per-service metrics suggest. This article presents an adaptive hedging mechanism that uses DDSketch for real-time quantile estimation, windowed rotation to handle distribution drift, and a token-bucket budget to prevent load amplification. By Prathamesh Bhope
Prathamesh Bhope
2026-05-28 17:00
👁 10
查看原文 →
The Verge AI
YouTube will let you ask AI to make a custom video feed
YouTube is launching a new AI feature that creates a personalized video feed based on descriptions of what you want to watch. In its announcement, YouTube says custom content feeds can be built around your specific interests, moods, or favorite topics, which you can then pin to the top of your YouTube homepage - making […]
Jess Weatherbed
2026-05-28 16:49
👁 12
查看原文 →
Reddit r/programming
OpenAi Spring Boot And Transcriptions
submitted by /u/Efficient-Public-551 [link] [留言]
/u/Efficient-Public-551
2026-05-28 16:39
👁 4
查看原文 →
Reddit r/webdev
AudioContext not working after rapid page refreshes
If you refresh a page quickly, sometimes the new AudioContext will be faulty, it won't pick up any audio and throws no errors. Fix is to create and immediately close a throwaway context before creating your real one: await new AudioContext().close(); const ctx = new AudioContext(); submitted by /u/GramDanD [link] [留言]
/u/GramDanD
2026-05-28 16:20
👁 4
查看原文 →
HackerNews
Seven Ways to Avoid Losing Your Job to AI
yarapavan
2026-05-28 15:53
👁 2
查看原文 →
Reddit r/MachineLearning
ACM MM 2026 review discussion [D]
The AC email says the rebuttal is between 28 to 4th. The June 4th on website is the deadline. So I created this post for the discussion. I know it's a MM conference and less about ML but I think many people here are still submitting there. submitted by /u/Striking-Warning9533 [link] [留言]
/u/Striking-Warning9533
2026-05-28 15:00
👁 6
查看原文 →
Wired
Vertu Is Back With a Folding Phone Powered by—Surprise—an AI Agent
The beleaguered luxury phone maker is pushing the AlphaFold, which has decent specs and comes with Vertu’s new Hermes Agent on board, to wealthy would-be buyers.
Julian Chokkattu
2026-05-28 15:00
👁 8
查看原文 →
TechCrunch
Vertu wants CEOs to run companies from an AI foldable starting at $6,880
Built on top of the open-source Hermes project, Vertu's new foldable combines AI-agent workflows, enterprise integrations, and ultra-premium luxury finishes.
Jagmeet Singh
2026-05-28 15:00
👁 8
查看原文 →
Dev.to
I Spent 10x Longer Debugging AI Code Than Writing It
AI wrote the code in 30 seconds Three lines A simple function I prompted it generated I copied It...
Harsh
2026-05-28 14:53
👁 5
查看原文 →
Dev.to
Six Contradictions Behind Cognitive Debt in AI Assisted Development
The conversation about cognitive debt in AI-assisted development has been framed as a tradeoff: you can go fast, or you can understand your system, but not both. The proposed mitigations — pair programming, code reviews, requiring a human to understand each change — are braking mechanisms. They trade speed for comprehension. TRIZ (Theory of Inventive Problem Solving) says braking is a compromise, not a resolution. A resolved contradiction eliminates the conflict. You don't choose between speed and understanding. You restructure the system so they don't conflict. There are six root causes of cognitive debt in AI-augmented development. Each one is a contradiction. Each one has a TRIZ resolution that doesn't involve slowing down. Root Cause 1: The Velocity-Comprehension Gap AI generates complex logic in seconds that would take a human hours to write. The human never spends the time typing the code during creation. The theory of the program is never fully formed. The Contradiction Technical contradiction: Improving development speed (AI generates code faster) worsens depth of understanding (human doesn't internalize the logic). Physical contradiction: The development process must be simultaneously FAST (to capture AI's productivity gains) and SLOW (to allow human assimilation of the system's behavior). Resolution: Separation in Space (Principle 2 — Extraction + Principle 1 — Segmentation) The contradiction assumes that the thing being understood IS the code. Extract the understanding target from the code and put it somewhere else — a smaller, slower-moving, human-readable artifact that captures what the code must satisfy, not how it works. Segment the system's theory into independent, composable units. Each unit is one property: "this service must never accept unauthenticated requests," "this data pipeline must preserve ordering," "this retry loop must terminate within 30 seconds." Each property is 1-3 sentences in natural language or 3-10 lines in a predicate language.
Bala Paranj
2026-05-28 14:47
👁 9
查看原文 →
HackerNews
A Eureka machine that thinks like nature and explores what AI cannot
kunalsin9h
2026-05-28 14:40
👁 2
查看原文 →
Reddit r/webdev
A "watch together" web app
I was playing around with antigravity/claude last weekend and put together a 2026 rendition of a project I did almost 15 years ago. Basically it's an app that lets you watch videos with friends. Back in the day it was a great way to share and discover music, especially stuff you normally wouldn't listen to. I'm not quite sure it would work in today's age but maybe there's something there. Either way it's pretty awesome that you can prototype something so quick by just chatting with an LLM. submitted by /u/Zenpher [link] [留言]
/u/Zenpher
2026-05-28 14:38
👁 82
查看原文 →
Dev.to
Read-Modify-Write isolation in NoSQL: the distributed-lock hell.
In part 1 , the single-document case was easy. In part 2 , two documents brought Write Skew, and we saw that even a native ACID transaction — snapshot isolation — lets it through. So teams reach for the reflex fix: a distributed lock — Redis-based, often a Redlock-style implementation. Acquire a lock on a key, do your Read → Modify → Write, release. On paper, you've finally serialized the critical section — operationally, at least. In practice, you've stepped on three mines. 1. Network latency Every guarded transaction now makes extra round-trips to Redis — before and after hitting your NoSQL store. You've doubled your coordination surface and taken a hard dependency on a second system being up, reachable, and fast on the hot path of every write. The "fast" database is now gated by the lock service. And the coupling bites harder than the average latency suggests: every Redis tail-latency spike becomes your write-latency spike — your p99 inherits Redis's p99 — and if Redis fails over mid-transaction, the lock you think you're holding can effectively vanish on the new primary, dropping you straight into the corruption case below. 2. Deadlock You can dodge deadlock entirely with a single coarse lock — but then every writer serializes on it, and you've thrown away the very concurrency you reached for NoSQL to get. So to keep throughput you go fine-grained, one lock per resource — and the moment an invariant touches more than one key (across this series, it always does), deadlock is back on the table: Transaction A locks key X, then needs Y. Transaction B locks Y, then needs X. Both block until timeout or intervention. The textbook cure — real deadlock detection, maintaining a wait-for graph across every lock holder and breaking cycles as they form — is a distributed-systems project in its own right: not something you bolt onto a cache you reached for precisely to save engineering time. So nobody builds it. Instead teams impose a standing discipline: always acquire locks
Hugo Vantighem
2026-05-28 14:36
👁 9
查看原文 →
Dev.to
Understanding known_hosts and Host Key Verification: What It Protects Against and How TOFU Works
That "authenticity of host can't be established" message isn't just noise. Here's what's actually happening — and why blindly typing "yes" is a security mistake. Every developer has seen this: The authenticity of host 'example.com (203.0.113.1)' can't be established. ED25519 key fingerprint is SHA256:abc123xyz... Are you sure you want to continue connecting (yes/no/[fingerprint])? Almost everyone types yes without reading it. Then they move on. This message is SSH trying to protect you from one of the most dangerous attacks in network security: the man-in-the-middle attack. Understanding what's happening here — and what the ~/.ssh/known_hosts file actually does — will change how you think about every SSH connection you make. The Problem SSH Is Solving When you connect to ssh user@example.com , how do you know you're actually talking to example.com ? You can't rely on the IP address — IP addresses can be spoofed or rerouted. You can't rely on DNS — DNS can be poisoned. You can't rely on the network path — traffic can be intercepted at any point between you and the server. Without verification, an attacker positioned between you and the server could intercept the connection, pose as the server, decrypt everything you send, re-encrypt it, and forward it along. You'd type your password or authenticate with your key and never know the attacker saw every keystroke. This is a man-in-the-middle (MITM) attack . It's not theoretical. It happens on compromised networks, corporate proxies, malicious Wi-Fi hotspots, and misconfigured infrastructure. SSH's defense is host key verification . Every SSH server has a unique cryptographic identity — its host key. Before you exchange any sensitive data, the server proves it holds the private key corresponding to a public key you've previously verified. If the keys don't match, SSH warns you — loudly. What a Host Key Actually Is When OpenSSH is installed on a server, it automatically generates a set of host key pairs. These live in /etc
Mahafuzur Rahaman
2026-05-28 14:30
👁 9
查看原文 →
Product Hunt
Mirowl
Search all your screenshots via a local OCR-powered AI Discussion | Link
Safi
2026-05-28 14:29
👁 2
查看原文 →