deangrant
- 74 skills
- 0 followers
- 9 hours ago last updated
- ▌ API Cors · deangrant bundleConfigure CORS for browser-facing APIs: simple vs preflight, Allow-* headers, credentials, and origin allowlists. Use when enabling SPA access or debugging OPTIONS preflight failures.
- ▌ Bff Pattern · deangrant bundleDecide when to adopt Backend-for-Frontend, size BFFs per client type, keep business logic in core services, and pair with an API gateway. Use when designing multi-client architectures or splitting mega-backends.
- ▌ Code Review · deangrant bundlePerform a read-only technical code review (correctness, security, performance, readability, testing, best practices). Use when reviewing a git diff or the full codebase. Never edit code or output rewritten snippets.
- ▌ Rust Polars · deangrant bundleApply Polars (Rust) best practices for high-performance DataFrame workloads. Use when writing or reviewing Rust code that uses the polars crate, optimizing data pipelines, choosing lazy vs eager API, configuring features and allocators, or tuning Polars for production. Reference https://docs.rs/polars/latest/polars/
- ▌ Redis Scaling · deangrant bundleScale Redis with Sentinel vs Cluster, hash tags, hot-key mitigation, pipelining, pooling, and maxmemory policies. Use when Redis is a bottleneck or planning cluster migration.
- ▌ Go Solid Design · deangrant bundleApply SOLID design principles in idiomatic Go for maintainable packages and interfaces. Use when writing or reviewing Go code for modularity, designing small interfaces, managing package boundaries and imports, refactoring for testability, or evaluating whether abstractions are justified. Covers consumer-owned interfaces, composition and embedding, constructor injection, and dependency direction.
- ▌ Howde Algorithm · deangrant bundleGuides application of the HoWDe (Home and Work location Detection) algorithm from stop-location or mobility data. Use when detecting home/work locations from GPS or stop sequences, running stop-location detection (e.g. InfoStop) as a prerequisite, implementing HoWDe in Python or Rust, tuning HoWDe parameters, or working with human mobility preprocessing pipelines.
- ▌ Caching At Scale · deangrant bundleChoose application caching patterns (cache-aside, write-through/behind), prevent stampedes, and design invalidation across app cache and CDN. Use when caching is wrong, stale, or melting origin under load.
- ▌ Deepsec Setup CI · deangrant bundleSet up Vercel deepsec for AI-assisted vulnerability scanning: init workspace, config, matchers, and PR/CI review modes. Use when adding deepsec to a repo or wiring scan/process pipelines for first-party code.
- ▌ GRAPHQL Security · deangrant bundleHarden GraphQL APIs with TLS, trusted documents or demand control, input sanitization, introspection/error masking, and field auth. Use when locking down production GraphQL or reviewing DoS risk.
- ▌ Rust Style Guide · deangrant bundleEnforce Rust code style for formatting, file size, rustfmt alignment, comments, documentation, naming, and API conventions. Use when writing or editing Rust code, reviewing .rs diffs, applying rustfmt preferences, or checking doc comments and module docs against project style.
- ▌ API Rate Limiting · deangrant bundleDesign API rate limiting with token bucket/sliding/fixed windows, RateLimit headers, 429 vs 503, and per-key/endpoint scopes. Use when protecting APIs from abuse or implementing quotas.
- ▌ Rust Solid Design · deangrant bundleApply SOLID design principles in Rust for maintainable modules and traits. Use when writing or reviewing Rust code for modularity, designing traits and trait objects, managing dependencies and visibility, refactoring for testability, or evaluating whether abstractions are justified. Covers traits as interfaces, ownership-aware dependency patterns, static vs dynamic dispatch, and dependency direction.
- ▌ Technical Writing · deangrant bundleWrite and revise technical docs like a senior technical writer: audience-first planning, clear active prose, scannable structure, error-message UX, sample code, and CL/PR descriptions. Use when drafting or editing READMEs, tutorials, API docs, design notes, release notes, error copy, or pull request descriptions.
- ▌ API OAUTH API Keys · deangrant bundleSelect credential models for APIs: API keys vs OAuth2 client credentials vs authorization code + PKCE, including scopes. Use when designing developer credentials or user-delegated access.
- ▌ API Request Signing · deangrant bundleDesign HTTP request signing for APIs: HMAC, SigV4-style, RFC 9421 signatures, Content-Digest, and replay defenses. Use when securing webhooks, payments, or high-assurance service calls.
- ▌ API Token Lifecycle · deangrant bundleManage access and refresh token lifecycle: TTLs, rotation, reuse detection, revocation (RFC 7009), introspection (RFC 7662), JWKS, and DPoP. Use when implementing OAuth token services or hardening session security.
- ▌ GRAPHQL Performance · deangrant bundleImprove GraphQL performance with DataLoader batching, demand control, compression, persisted queries, and operation-level tracing. Use when fixing N+1 resolvers or slow GraphQL operations.
- ▌ Python Solid Design · deangrant bundleApply SOLID object-oriented design when designing, refactoring, or reviewing Python classes and modules. Use for SOLID, SRP, OCP, LSP, ISP, DIP, single responsibility, open/closed, Liskov, interface segregation, dependency inversion or injection, ABCs, Protocols, and maintainable OOP structure.
- ▌ Zaproxy API Scan CI · deangrant bundleRun OWASP ZAP packaged Docker scans in CI (baseline, full, API) with stable images, mounted workdirs, and report artifacts. Use when adding DAST against a running web app or OpenAPI target.
- ▌ API Cdn Edge Caching · deangrant bundleConfigure CDN/edge caching for HTTP APIs: s-maxage, Vary cardinality, Surrogate-Key, and auth pitfalls. Use when putting APIs behind a CDN or debugging edge cache misses/leaks.
- ▌ API HTTP Compression · deangrant bundleNegotiate and apply HTTP compression for APIs: Brotli/gzip/zstd, Accept-Encoding, Vary, and BREACH mitigations. Use when enabling compression or debugging encoding issues.
- ▌ API Patch Strategies · deangrant bundleChoose JSON Patch (RFC 6902) vs Merge Patch (RFC 7386) for REST PATCH, including media types, null semantics, Accept-Patch, and If-Match concurrency. Use when designing partial updates or reviewing PATCH handlers.
- ▌ API I18N Localization · deangrant bundleDesign internationalized REST APIs: Accept-Language, UTC storage, localized messages vs data, and explicit country/region params for business rules. Use when adding locales or fixing mixed timezone/locale bugs.
- ▌ Go Google Style Guide · deangrant bundleApply Google Go style principles, naming, formatting, errors, tests, and API patterns. Use when writing or reviewing Go code, formatting with gofmt, choosing names, structuring imports, handling errors, writing godoc, designing function options, or shaping table-driven tests.
- ▌ GRAPHQL Authorization · deangrant bundleImplement GraphQL authorization in a shared business layer with field-level checks, hydrated user context, and optional schema directives. Use when securing fields or preventing REST/GraphQL auth drift.
- ▌ GRAPHQL Schema Design · deangrant bundleDesign GraphQL schemas as domain graphs with versionless evolution, careful nullability, Node global IDs, and a shared business-logic layer. Use when creating or reviewing GraphQL types, fields, or schema migrations.
- ▌ API Hateoas Hypermedia · deangrant bundleDesign pragmatic HATEOAS for REST APIs using HAL or JSON:API links, including self/next and state-transition actions. Use when adding hypermedia, reviewing RMM Level 3, or deciding against full HATEOAS.
- ▌ GRAPHQL Client Caching · deangrant bundleDesign GraphQL client cache normalization with global IDs, Node refetch, field stability, and mutation cache updates. Use when configuring Apollo/Relay-style stores or debugging duplicate entities.
- ▌ GRAPHQL HTTP Transport · deangrant bundleServe GraphQL over HTTP with a single endpoint, POST/GET contracts, correct media types, partial 2xx responses, and auth middleware ordering. Use when wiring GraphQL servers or debugging transport mismatches.
- ▌ Typescript Jsdoc Style · deangrant bundleEnforce TypeScript comment and JSDoc conventions across the codebase. Use when writing, reviewing, or refactoring comments, JSDoc, doc blocks, @param/@returns tags, or class/method/parameter documentation in TypeScript.
- ▌ Git Conventional Commit · deangrant bundleDraft a single Conventional Commits 1.0.0 message from git status and git diff. Use when the user asks for a commit message, conventional commit text, or changelog-ready commit wording. Never run git commit or modify the repo.
- ▌ GRAPHQL Error Debugging · deangrant bundleTriage GraphQL failures using HTTP status, Content-Type, and the errors vs data body shape. Use when debugging 400/405/415 responses or partial GraphQL errors in development or on-call.
- ▌ Rate Limiter Algorithms · deangrant bundleSelect and implement rate-limiter algorithms (token bucket, leaky bucket, fixed/sliding windows), key design, Redis/Lua distribution, and production anti-patterns. Use when building quotas beyond basic RateLimit headers.
- ▌ Typescript Solid Design · deangrant bundleApply SOLID design principles when writing, refactoring, or reviewing TypeScript modules, classes, interfaces, and services. Use when designing maintainable architecture, splitting responsibilities, extending behavior without modification, fixing inheritance contracts, segregating interfaces, injecting dependencies, or addressing code smells in TypeScript.
- ▌ API Bulk Batch Operations · deangrant bundleDesign REST bulk/batch endpoints with ordered operations and results, partial success (207 or per-item status), idempotency keys, and async bulk jobs. Use when syncing many records or reducing per-request overhead.
- ▌ API Versioning Strategies · deangrant bundleChoose REST API versioning strategies (URI, header, query, media type), define breaking vs additive changes, and plan evolution. Use when introducing versions, reviewing breaking changes, or picking a portfolio-wide scheme.
- ▌ API Webhooks Event Driven · deangrant bundleDesign outbound webhooks and event-driven API delivery: retry schedules, 2xx-only success, idempotent receivers, and dual notify with polling. Use when adding webhook APIs or reviewing delivery reliability.
- ▌ Load Balancing Algorithms · deangrant bundleChoose load-balancing tiers and algorithms (round-robin, least-conn, consistent hash, Maglev-style) for L4 vs L7, with affinity and health-check guidance. Use when designing traffic distribution or fixing imbalance.
- ▌ Observability Wide Events · deangrant bundleImplement wide events / canonical log lines: one structured event per request per service, high-cardinality fields, handler enrichment, OTel attributes, and tail sampling. Use when replacing sparse log spam with queryable request outcomes. Complements the wide-event-logging rule.
- ▌ Python Google Style Guide · deangrant bundleApply Google Python language, style, and typing rules when writing, editing, reviewing, formatting, or linting Python. Use for Google style, Black, isort, pylintrc, docstrings (Args/Returns/Yields/Raises), imports, naming, and type annotations.
- ▌ API Authentication Schemes · deangrant bundleChoose HTTP API authentication schemes: Bearer tokens, Basic over TLS, and HTTP message signatures. Use when selecting authn for public, partner, or service APIs.
- ▌ API Deprecation Sunsetting · deangrant bundleDeprecate and sunset API versions or fields using Deprecation, Sunset, and Link headers, plus 410 Gone. Use when retiring endpoints, publishing migration timelines, or reviewing compatibility windows.
- ▌ API File Uploads Downloads · deangrant bundleDesign file upload and download APIs: multipart vs presigned vs resumable, Range/206 downloads, Content-Disposition, and content validation. Use when adding binary transfer endpoints or reviewing upload security.
- ▌ API Multi Tenancy Patterns · deangrant bundleDesign multi-tenant REST APIs: silo/pool/bridge isolation, tenant routing, verified JWT tenantId, noisy-neighbor limits, and cache key prefixes. Use when building SaaS APIs or reviewing cross-tenant data risks.
- ▌ API REST Design Principles · deangrant bundleApply Fielding REST constraints when designing or reviewing HTTP APIs: resources vs representations, statelessness, uniform interface, correct verbs and status codes, Richardson Maturity Model. Use when starting a REST API, reviewing endpoint semantics, or choosing RMM Level 2 vs 3.
- ▌ API Authorization Rbac Abac · deangrant bundleDesign API authorization with RBAC, ABAC, and ReBAC: PEP/PDP separation, object-level checks against BOLA/BFLA, and OAuth scopes. Use when implementing permissions or reviewing IDOR risks.
- ▌ API Security Best Practices · deangrant bundleApply OWASP API Security Top 10 practices for REST APIs: TLS, BOLA, authn/authz separation, rate limits, secrets hygiene, and least privilege. Use when hardening APIs or running a security design review.
- ▌ API Timestamps Data Formats · deangrant bundleStandardize REST JSON wire formats: RFC 3339 UTC timestamps, non-float money, string enums, null vs omit, and consistent field casing. Use when defining schemas or fixing cross-endpoint data format inconsistencies.
- ▌ Postgresql Production Scale · deangrant bundleScale PostgreSQL for read-heavy production: replicas, PgBouncer isolation, query hygiene, WAL fan-out planning, and write-path limits. Use when hardening Postgres under high QPS or connection storms.
- ▌ API Filtering Sorting Search · deangrant bundleDesign and review REST collection filtering, sorting, and search query conventions. Use when choosing flat vs bracketed filters, encoding operators, defining sort parameters, separating full-text q from structured filters, composing with pagination, or moving complex queries to POST /search.
- ▌ API Mtls Client Certificates · deangrant bundleDesign mTLS and client-certificate authentication for APIs, including PKI rotation, cert-bound tokens (RFC 8705), and proxy header pitfalls. Use when securing service-to-service or partner edge access.
- ▌ API Response Envelope Design · deangrant bundleChoose and apply consistent REST response envelopes: enveloped data/meta vs bare bodies, pagination placement, and never mixing 200 with in-body errors. Use when designing response shapes, OpenAPI schemas, or reviewing API consistency across collections and singletons.
- ▌ Typescript Project Structure · deangrant bundleOrganize React + TypeScript projects with role-based component layers. Use when creating or reviewing a React TypeScript folder layout, placing components in core, patterns, containers, or layouts, applying folder-per-component with CSS Modules, or deciding where pages, hooks, contexts, services, stores, routes, types, constants, utils, styles, assets, or i18n files belong.
- ▌ API Input Validation Injection · deangrant bundleValidate API inputs server-side with schema allowlists, injection prevention, mass-assignment guards, and size limits. Use when implementing request DTOs or reviewing injection risks.
- ▌ API Resource Naming Uri Design · deangrant bundleDesign and review REST API resource names and URIs. Use when creating or reviewing endpoints, choosing path vs query parameters, nesting collections, casing path segments, plural collection names, versioning in the path, or running an API design review for URI consistency.
- ▌ API Retries Backoff Resilience · deangrant bundleImplement client and service resilience: retry only transient failures, exponential backoff with jitter, honor Retry-After, timeouts, and circuit breakers. Use when designing HTTP clients or outbound API calls.
- ▌ GRAPHQL Pagination Connections · deangrant bundleDesign GraphQL list pagination with Relay connections, opaque cursors, PageInfo, and max first caps. Use when adding or reviewing paginated GraphQL fields.
- ▌ API Idempotency Request Retries · deangrant bundleImplement Idempotency-Key for safe POST retries: store request hash and response, handle in-flight 409, and combine with backoff. Use when payments, creates, or other costly side effects may be retried.
- ▌ API Pagination Offset Vs Cursor · deangrant bundleChoose and implement REST collection pagination: offset/limit vs keyset cursor, Link headers vs meta, deterministic sort, and limit caps. Use when designing list endpoints, fixing page drift, or reviewing OpenAPI paging.
- ▌ API Standardized Error Handling · deangrant bundleDesign RFC 9457 Problem Details error responses for REST APIs: type, title, status, detail, field-level errors, and correct HTTP status pairing. Use when defining error contracts, OpenAPI error schemas, or fixing ad-hoc error JSON.
- ▌ Idempotency Distributed Patterns · deangrant bundleBuild retry-safe distributed systems with Idempotency-Key stores, transactional outbox, and consumer deduplication. Use when designing payments, orders, or event pipelines under at-least-once delivery.
- ▌ API Async Long Running Operations · deangrant bundleDesign async long-running REST operations with 202 Accepted, job resources, polling, Prefer respond-async, and webhook completion. Use when work exceeds request timeouts (reports, imports, provisioning) rather than streaming.
- ▌ API Cache Invalidation Strategies · deangrant bundleDesign API cache invalidation: TTL, ETag revalidation, stale-while-revalidate, Surrogate-Key purge, and hybrid strategies. Use when cached data goes stale or planning purge workflows.
- ▌ API Health Check Status Endpoints · deangrant bundleDesign liveness, readiness, and startup health endpoints with dependency probes and application/health+json. Use when adding Kubernetes probes or platform health checks.
- ▌ API Webhook Signature Verification · deangrant bundleVerify webhook signatures with HMAC-SHA256 over the raw body, constant-time compare, timestamp replay windows, and idempotent handling. Use when implementing or reviewing webhook receivers or providers.
- ▌ API Conditional Requests Validation · deangrant bundleImplement conditional request validators for safe concurrency: strong/weak ETags, If-Match/If-Unmodified-Since, 412 and 428. Use when preventing lost updates on PUT/PATCH/DELETE.
- ▌ API Content Negotiation Media Types · deangrant bundleApply HTTP content negotiation for REST APIs: Accept/Content-Type, q-values, 406/415, Vary, and problem+json errors. Use when supporting multiple representations or fixing silent format fallbacks.
- ▌ API Media Types Vendor Content Types · deangrant bundleChoose and document HTTP media types including vendor trees (vnd), structured suffixes (+json), and MIME versioning. Use when minting custom types or reviewing Content-Type versioning schemes.
- ▌ API HTTP Caching Conditional Requests · deangrant bundleApply HTTP caching and conditional requests for REST APIs: Cache-Control, ETag, If-None-Match 304, and private vs public caches. Use when optimizing GET performance or reviewing cache headers.
- ▌ API Observability Distributed Tracing · deangrant bundleInstrument REST APIs with structured JSON logs, RED/USE metrics, W3C Trace Context, X-Request-Id, and OpenTelemetry. Use when adding observability or correlating multi-service failures.
- ▌ API Sparse Fieldsets Partial Responses · deangrant bundleDesign sparse fieldsets and include/expand for REST APIs: allowlisted ?fields=, relationship includes with depth caps, complete defaults. Use when reducing over-fetching, designing GraphQL-like shaping on REST, or reviewing list payload size.
- ▌ H3 Hexagonal Hierarchical Spatial Index · deangrant bundleProvides domain knowledge for Uber's H3 hexagonal hierarchical spatial index. Use when working with H3, hexagonal geospatial grids, location bucketing, geo-indexing, surge/pricing grids, or when the user mentions H3, Uber's grid system, or hexagonal spatial indexing.
- ▌ API Streaming Sse Websocket Long Polling · deangrant bundleChoose SSE, WebSocket, or long-polling for realtime API push: directionality, reconnect, auth limits, and when to use 202 jobs instead. Use when designing event feeds, chat, or live updates.