TechBlog

Have Influence Without Becoming the Backdoor

Published: August 19, 2026 Reading time: 11 min

Cross-team trust is one of the strongest assets a senior developer can build. People tell you what is not working before it becomes an escalation. Designers invite you into early conversations. Product asks whether an idea is feasible. Support sends you the user complaint that explains a confusing metric. You see the product beyond the boundary of your team’s backlog. Then the strength turns. Another team believes you promised a fix. Your lead learns about new work after you have started it. Your teammates feel that your review comments carry an unofficial veto. You still think you are helping, but the organization has begun treating you as the owner. ...

Continue Reading

Channel the Scout, Keep the Seat

Published: August 18, 2026 Reading time: 11 min

In the first post in this series, I called the pattern shadow ownership: a senior developer builds real cross-team influence, then commitments and product authority begin moving through that influence without a clear role. For a team lead, this can feel personal. You are accountable for delivery, but another person appears to be setting expectations. Other teams go to them first. Work enters through conversations you did not see. Their care for the product can sound like a judgment on everyone else’s care. ...

Continue Reading

When the Best Communicator Becomes the Backdoor

Published: August 17, 2026 Reading time: 9 min

On a small development team, one senior developer often becomes the person everyone else knows. People in product, design, support, and adjacent engineering teams message them directly. They listen well. They notice the rough edge that never became a ticket. They understand why a technically correct interaction still feels wrong to the person using it. When another team is frustrated, they do not reply with a Jira link and disappear. ...

Continue Reading

The Frontend Is a Privileged System Now

Published: August 15, 2026 Reading time: 8 min

For years, frontend engineering had a comforting boundary. The backend held the real power: databases, payments, authorization, infrastructure, production secrets. The frontend rendered the interface. It ran in the browser, where users could inspect it, modify it, and ultimately distrust it. That model still contains an important truth. The browser is not a trusted environment. A serious authorization decision cannot depend on what a client-side application chooses to show or hide. ...

Continue Reading

The AUR Is Frozen: Inside Arch's Third Supply-Chain Attack Wave

Published: August 10, 2026 Reading time: 9 min

If you fired up yay -Syu over the past week and noticed your AUR packages silently refusing to update, you’re not imagining it — and it isn’t a bug in your helper. As of August 1, 2026, Arch Linux disabled all pushes to the Arch User Repository, meaning maintainers could no longer publish updates, new versions, or fixes to the community package collection that most of us rely on daily. The AUR stayed up and readable, but writes were locked down while the project fought off its third supply-chain attack since June. ...

Continue Reading

A Maintainable Command-Line Workspace on Linux

Published: August 3, 2026 Reading time: 10 min

Most terminal setups begin as a few helpful aliases and end up scattered across a shell profile, a terminal-emulator menu, a font download, and a handful of plugins cloned years ago. That works until you set up a new machine, connect over SSH, or need to find out why a terminal takes three seconds to open. The answer is not a single perfect terminal or shell. A maintainable command-line workspace is a set of small, replaceable layers with clear ownership. You should be able to change your shell without losing your SSH configuration, replace a terminal emulator without rewriting aliases, and bootstrap a new machine without copying your entire home directory. ...

Continue Reading

Modern Auth Patterns for Angular Frontends (Beyond “Just Add JWT”)

Published: July 31, 2026 Reading time: 9 min

For years, the default Angular auth tutorial looked like this: call /login, get a JWT, stash it in localStorage, attach Authorization: Bearer … from an interceptor, and sprinkle a couple of route guards on top. It ships. It demos well. And it quietly trains teams to treat the browser as a safe place for long-lived credentials. It is not. In 2026 the guidance has converged, and it is blunt: Prefer OAuth 2.0 / OIDC with a reverse proxy or dedicated auth provider — not a hand-rolled password form that mints forever-tokens for the SPA. Prefer short-lived access tokens (and refresh handled outside the SPA) over long-lived credentials in the browser. Prefer HttpOnly, Secure, SameSite cookies over storing sensitive JWTs in localStorage or sessionStorage. This post is the practical shape of that advice for Angular apps: why localStorage JWTs lose to XSS, how a Backend-for-Frontend (BFF) or reverse-proxy session keeps tokens off the client, and what Angular still owns — interceptors, CSRF headers, and guards that improve UX without pretending to enforce authorization. ...

Continue Reading

Why Client-Side Frameworks Need Security Updates

Published: July 29, 2026 Reading time: 6 min

At first glance, a client-side JavaScript framework looks like “just” UI code. It runs in the browser, the browser already has security boundaries, and most of the app logic is yours. So what exactly is a “security update” for that framework supposed to fix? The answer is the same whether you use Angular, React, Vue, or anything else in the same role: the framework is not only application code — it is part of the security boundary. It parses templates or JSX, sanitizes HTML, protects against XSS and related request attacks, and in many apps also powers server-side rendering. If the framework makes a mistake in any of those layers, an attacker may be able to steal data, inject script, or break request isolation even though the code ultimately runs in a browser or helps render content for one. ...

Continue Reading

Securing Angular PWAs in 2026

Published: July 22, 2026 Reading time: 8 min

Progressive Web Apps sell reliability: installable shells, offline reads, background sync when the network returns. Angular’s @angular/service-worker makes that easy to turn on. Security does not get the same one-liner. A service worker sits between your app and the network with a long-lived cache — which means it can also sit between an attacker and your users’ private data if you treat “offline” as “store everything.” Industry checklists already call out HTTPS everywhere, including service worker scope, and auth guidance keeps warning against patterns that inflate XSS and CSRF risk when sessions go offline. This post is the Angular-shaped version: enforce TLS and a tight SW scope, cache only what is safe to replay, and keep offline UX without parking bearer tokens in IndexedDB. ...

Continue Reading

Dependency Risk, SBOMs, and Automated Security for Angular

Published: July 18, 2026 Reading time: 8 min

Angular apps are rarely “just Angular.” They sit on the CLI, a pile of third-party libraries, often Nx or another monorepo tool, and a lockfile that quietly doubles every quarter. That surface is where a lot of real risk lives: not in your component tree, but in a transitive package nobody reviewed last sprint. Best-practice write-ups keep repeating the same triad — scan regularly, automate checks in CI, and treat framework updates as security work. The missing piece for many teams is turning that advice into a pipeline that generates an SBOM, fails on high-severity CVEs, and tells humans when something broke — without waiting for someone to remember npm audit on Friday. ...

Continue Reading