SShortSingh.

Programming

0
ProgrammingDEV Community ·

How to Properly Archive a GitHub Release to Zenodo with a Verified DOI

A developer guide published on DEV Community walks through the process of archiving a GitHub software release to Zenodo and obtaining a citable DOI, using version 1.1.0 of an LLM-as-a-judge cost calculator released on August 16, 2026, as a concrete example. The guide highlights that a GitHub release, its Zenodo archive, DOI resolution, and metadata indexing are distinct events that can occur independently, meaning a DOI may resolve before metadata accurately reflects the deposited files. On a verification date of September 17, the Zenodo record's single ZIP file of 133,258 bytes was confirmed to match its advertised MD5 checksum, and four internal files matched the pinned Git commit byte for byte. The guide warns that GitHub release URLs are not inherently immutable and recommends recording the specific Git commit hash separately from the release tag for stronger reproducibility evidence. Key recommendations include packaging source code with tests, dependency details, execution instructions, and any data required to reproduce documented results, while clearly disclosing anything that cannot be shared.

0
ProgrammingDEV Community ·

How to Migrate PostgreSQL to Azure with Minimal Downtime Using WAL Replication

Migrating a PostgreSQL database to Azure and maintaining high availability both rely on the same core mechanism: PostgreSQL's write-ahead log (WAL), which records every database change and streams it to replicas, backups, or migration targets. Azure Database for PostgreSQL supports three migration methods — pg_dump/pg_restore, Azure Database Migration Service, and logical replication — each offering different trade-offs between downtime and complexity. Logical replication, which copies row-level changes between servers, enables near-zero-downtime migrations by keeping source and target in sync until a final cutover. Key configuration concepts include zone-redundant high availability, read replicas, and the distinction between RTO (recovery time) and RPO (acceptable data loss), which together shape how a database is both migrated and kept resilient. The guide also covers identity and network access hardening, slow query tuning, and why physical versus logical replication determines what migration paths are available across PostgreSQL versions.

0
ProgrammingDEV Community ·

How to Build Idempotent Stripe Webhook Handlers in Go Using a Single DB Table

A technical guide published on DEV Community details how to build a production-safe Stripe webhook handler in Go that prevents duplicate event processing. The approach centers on a single PostgreSQL table called processed_events, which uses a primary key constraint and an INSERT ON CONFLICT DO NOTHING pattern to ensure each webhook is processed only once. The HTTP handler reads and size-limits the request body, verifies Stripe's signature, and immediately enqueues the event — returning a 200 response within milliseconds without executing any business logic inline. A background goroutine then processes pending events in a separate transaction, applying subscription updates, purchases, or refunds as needed. The design is intentionally portable, avoiding database-specific types, and uses Stripe's IgnoreAPIVersionMismatch option to decouple deployment from dashboard API version settings.

0
ProgrammingDEV Community ·

How Operating Systems Manage Memory Between Programs and Hardware

When a program requests memory, the OS allocates it in fixed-size units called pages, typically 4KB, rather than handing over raw physical RAM. Virtual memory creates an illusion of contiguous space, while the CPU's Memory Management Unit (MMU) maps each virtual page to a physical memory frame scattered across actual hardware. Traditionally, the sbrk() system call managed heap boundaries by moving a 'program break' line, but this approach is now deprecated on modern architectures like ARM64 and RISC-V. Modern memory allocators instead use mmap() to request memory pages directly from the OS, avoiding the fragmentation problems that plagued the older program-break method. The page-based system also provides security and efficiency benefits, isolating processes from each other and enabling the OS to swap unused pages to disk when physical RAM runs low.

0
ProgrammingDEV Community ·

Swiss Developer Shares How a Redis License Change Led to Open Source Contributions

A software engineer at Swiss IT firm ipt switched from Redis to Valkey after Redis changed its license, discovering that Valkey's Helm chart lacked a working high-availability configuration and its operator was not production-ready. Rather than building downstream workarounds, the team decided to contribute fixes directly upstream to avoid long-term maintenance overhead. Attending KubeCon in Amsterdam in March, the developer spoke with Valkey core maintainers Sarthak Aggarwal and Madelyn Olson, who encouraged community participation. Back home, ipt offered a program allowing the developer to dedicate 20% of working hours to an open-source project of their choice. Starting with a 'good first issue' related to ACL permission management in end-to-end tests, the developer made their first pull request to the Valkey ecosystem.

0
ProgrammingDEV Community ·

Power BI Data Modelling: Why Your Schema Choice Matters More Than Visuals

Effective Power BI reports depend on sound data modelling, not just visual design, as flat tables quickly break down when multiple business processes share common dimensions like customers or dates. A star schema — with a central fact table linked to surrounding dimension tables — is the recommended structure for most projects, as it is optimised for Power BI's VertiPaq engine and simplifies DAX calculations. Relationships in Power BI define filter paths rather than merging data, and should almost always be one-to-many with single-direction filtering to avoid performance issues and security complications. Power Query merges physically add columns at refresh time and consume memory, making them suitable for shaping dimension tables but not for joining dimensions directly into fact tables. Best practice defaults include a star schema, a dedicated date table, one-to-many relationships throughout, and a documented justification for any bidirectional filtering exception.

0
ProgrammingDEV Community ·

1 in 10 Websites Have a Broken llms.txt File, Including Reddit

A developer audit published on DEV Community on September 15 found that roughly one in ten websites have a misconfigured or broken llms.txt file. The llms.txt standard is an emerging convention designed to help AI language models better understand and navigate website content. High-profile platforms, including Reddit, were found to have faulty implementations of the file. The findings highlight a growing gap between the rapid adoption of AI-oriented web standards and the quality of their real-world deployment.

0
ProgrammingDEV Community ·

Bug Report: Partial Refunds Misapplied When Orders Have Multiple Captures

A developer discovered a payment processing bug where refunds were incorrectly applied to the wrong capture when a single order had two separate partial captures. The issue arose because the refund request referenced the original authorization ID rather than the specific capture ID, causing the processor to apply the refund to the first capture instead of the intended second one. Although the ledger appeared correct at the order level, item-level refund tracking revealed the mismatch — making the error easy to miss in routine reconciliation. The fix involved storing each capture ID independently and always issuing refunds against the specific capture, not the parent authorization. The developer also noted that processor behavior for unspecified refund targets varies and is rarely documented clearly near refund API endpoints.

0
ProgrammingDEV Community ·

How a Utility SaaS Team Built Idempotent APIs Using Natural Domain Keys

A developer on a utility billing SaaS platform faced a reliability problem with a rate-plan comparison feature that re-ran full bill calculations per candidate plan, making it an expensive, slow REST call prone to client timeouts and retries. Without safeguards, retried requests could trigger duplicate computation runs and return inconsistent results to customers, undermining trust in a feature designed to guide rate-plan decisions. The standard fix — client-generated idempotency tokens mapped to cached results — works well when no natural request identity exists, such as with payment submissions. However, the team realized their comparison requests were fully identified by three existing domain fields: account, billing period, and the set of rate plans being compared. By enforcing database-level uniqueness on those natural keys, they achieved idempotency without requiring clients to generate or manage any tokens at all.

0
ProgrammingDEV Community ·

Nvidia Adds Native Rust Support for CUDA GPU Kernel Programming

Nvidia has announced official native GPU programming support for Rust, introducing a 'two tracks' approach that lets developers write CUDA kernels directly in Rust. The first track offers low-level, near-direct mapping to CUDA C++ semantics for fine-grained hardware control, while the second provides a high-level, ergonomic iterator-style API for developers who want GPU acceleration without deep CUDA expertise. Previously, Rust developers relied on unofficial community projects like rust-cuda and cudarc, which lacked Nvidia's backing and risked incompatibility with new CUDA toolkit and driver releases. Official support means Rust kernels will now have access to first-party debugging tools such as Nsight and guaranteed compatibility with future CUDA releases. The move is significant for teams building GPU-accelerated workloads — including ML training pipelines and inference servers — who want Rust's memory safety guarantees without sacrificing raw throughput.

0
ProgrammingDEV Community ·

GPU Cloud Costs Drop to 18% of On-Demand Price Using Interruptible Instances

A developer reports paying between $0.55 and $0.70 per hour for GPU instances on interruptible capacity, compared to $3.04 per hour at on-demand rates — a saving of over 80%. Unlike CPU instances where discounts typically range from 55–75%, GPU families appear to qualify for discounts near the top of AWS's advertised 90% ceiling. However, interruptible pricing varies significantly by availability zone, and the cheapest zones often carry the highest risk of interruption and low capacity ratings. A harder constraint is the vCPU quota for interruptible GPU instances, which is capped at 64 per region and cannot easily be raised through self-service. This quota ceiling limits scaling flexibility and forces users to plan workloads around fixed instance shapes rather than adjusting capacity incrementally.

0
ProgrammingDEV Community ·

How to Design Realistic API Performance Tests That Yield Meaningful Results

Performance testing is a non-functional software testing method that evaluates an application's speed, stability, scalability, and responsiveness under specific workloads. Poorly designed tests can produce misleading results, while well-designed ones help identify bottlenecks and build confidence before a release. There are several distinct test types — including load, stress, endurance, spike, and volume tests — each serving a different purpose depending on what aspect of system behavior needs to be examined. The core goal is not simply to generate high request volumes, but to simulate realistic usage patterns that reflect how an application will actually behave in production. Key considerations include defining expected load levels, handling external service dependencies, and ensuring the test environment closely mirrors the live production setup.

0
ProgrammingDEV Community ·

Developer Builds Full-Featured Local AI Assistant Using Two Consumer GPUs

A software developer has built a fully local AI personal assistant using two 12 GB consumer GPUs, keeping all data on-premises to ensure privacy and avoid cloud costs. The system integrates a large language model with retrieval-augmented generation, graph memory, and voice input/output, and connects to tools like Gmail, Google Calendar, Telegram, and smart home devices. The developer found that models in the 9B–27B parameter range are sufficient for this kind of assistant when paired with persistent memory and tool access. The project deliberately avoids top-tier hardware, with configurations like dual RTX 5070 Ti or 5080 cards offering a practical balance of VRAM, performance, and power consumption. The key takeaway is that a local AI assistant becomes genuinely useful not by matching cloud model intelligence, but by being deeply integrated into a user's real-world environment and workflows.

0
ProgrammingDEV Community ·

AI models replicate old bugs when shown legacy code, study across 4 models finds

A developer ran a controlled experiment across 32 generations using four AI models — DeepSeek, Llama 4, GLM, and Mistral — to test whether existing repository code influences what models produce next. Two conditions were tested: one showing a codebase with 11 duplicated, bug-ridden search components, and another showing the cleaned-up version with a single shared component. When shown the legacy code, models hand-rolled new 190-line components 100% of the time; when shown the refactored codebase, they reused the shared component in every single run. The generated legacy-style components reproduced specific historical bugs, including broken mobile keyboard handling and hardcoded query-length values the project's own documentation explicitly warned against. Not a single one of the 32 runs crossed conditions, suggesting that the state of a repository — not just the instructions given — decisively shapes what AI coding assistants write.

0
ProgrammingDEV Community ·

Two-Artifact Freeze Method Keeps AI Patch Reviews Scoped to Real Bugs

Open-source maintainers risk unintended API expansions when coding models generate overreaching diffs in response to bug reports. A proposed workflow requires freezing two artifacts before any model session begins: a git bisect SHA identifying the first bad commit, and a snapshot of existing public API names. These two files act as hard merge gates, restricting model edits strictly to files changed in the offending commit. The bisect must confirm a reproducible test failure before any chat session starts, and a flaky test halts the entire process. The method aims to prevent silent surface-area growth and keep code review focused on the actual defect rather than model-suggested additions.

0
ProgrammingDEV Community ·

AI Agents Excel at Exploratory Testing but Fall Short for Regression Suites

AI agents have proven effective for exploratory testing by dynamically navigating interfaces, reacting to unexpected states, and investigating bugs without fully predefined steps. However, regression testing demands repeatable, documented action sequences and consistent checks so that results across multiple runs can be meaningfully compared. When an agent adaptively chooses alternate paths or accepts different signals as proof of success, it undermines the comparability that regression testing requires. Experts argue teams should use AI agents for ambiguous, one-off, or investigative tasks while investing in structured test assets for workflows that must be verified before every release. The key question for testing teams is not whether to use agents or automation, but which work benefits from flexibility and which requires repeatability.

0
ProgrammingDEV Community ·

How Postgres Advisory Locks Prevent Double-Counted Bids in Pay-to-Rank Apps

A developer behind Steal the Spot, a pay-to-rank leaderboard where every bid is real money, shared a concurrency-safe payment pattern built on Supabase Postgres and Dodo webhooks. The core problem addressed is duplicate webhook deliveries and simultaneous bids causing incorrect rankings or double-applied payments. The solution uses pg_advisory_xact_lock to serialize bids per season, an idempotency check that detects already-processed payment IDs, and a FOR UPDATE row lock to prevent interleaved rank calculations. The advisory lock's transaction-scoped variant ensures a crashed worker cannot permanently block the system. Access to the underlying database function is restricted to the service role, preventing clients from manipulating their own rank directly.

0
ProgrammingDEV Community ·

Developer Learns Hard Lessons Adding Chinese to an AI-Powered Codenames Game

A developer who built an AI-powered Codenames web game added Simplified Chinese word sets after a reader requested multi-language support. AI tools generated candidate translations quickly, but evaluating whether they were natural or appropriately ambiguous still required human judgment. An automated validator that flagged substring overlaps as hard errors initially pushed translations toward unnatural single-character fragments and awkward abbreviations. Relaxing the rule so overlaps triggered review rather than build failures allowed more natural Chinese words to be used. The key insight was that automated validators can catch structural errors like duplicates, but product decisions about word meaning and naturalness require human oversight.

0
ProgrammingDEV Community ·

Tarabut Raises $50M to Expand Embedded Finance Infrastructure for Saudi SMEs

Bahrain-founded open-banking firm Tarabut secured $50 million in strategic financing on September 15, 2026, from a consortium including Riyad Bank, GIB Saudi Arabia, and Zamil Group, pending regulatory approval from SAMA. Founded in 2017 by Abdulla Almoayed, the company operates regulated open-banking and embedded-finance infrastructure across Saudi Arabia, the UAE, and Bahrain. The fresh capital follows a $32 million Series A in 2023 and builds on acquisitions of UK payments firm Vyne and Bahrain-based AI company Servable. Rather than lending directly, Tarabut embeds credit verification and cash-flow decisioning tools into partners' branded digital platforms, with live deployments at American Express Saudi Arabia and Saudi National Bank. The company reports processing over five billion API calls across its three markets, positioning itself as core infrastructure for the region's growing SME finance sector.

0
ProgrammingDEV Community ·

Tabby Raises $233M at $6.5B Valuation to Expand Beyond BNPL in Gulf

Dubai-based fintech Tabby announced a $233 million Series F equity round on September 14, 2026, reaching a $6.5 billion valuation with backing from Blue Pool Capital, Wellington Management, and others. The company, profitable since 2023, processes over $18 billion in annualised transactions and serves 25 million users across Saudi Arabia and the UAE. Tabby plans to use the funds to expand beyond buy-now-pay-later into broader financial services including accounts, cards, transfers, and SME credit. To support this shift, the company acquired digital wallet Tweeq and secured multiple licences from Saudi regulator SAMA, while also launching Tabby Cash in the UAE under a Stored Value Facilities licence. The round is still subject to regulatory approvals, including clearance from SAMA.

← NewerPage 1182 of 3224Older →