Product Engineering
52 resultsDatabase Schema Migration Strategies
Expand-contract pattern, zero-downtime migrations, and tooling.
REST API Versioning Strategies
URL path, header, and query-param versioning compared with real-world tradeoffs.
REST API design principles we follow
Versioning, error formats, pagination, and auth patterns used across all Intersysop-built APIs.
JWT Authentication — Implementation and Security Patterns
Access tokens, refresh tokens, rotation, revocation, and common mistakes.
SQL Query Optimisation — Indexes, Execution Plans, and N+1
Practical techniques for making slow queries fast.
Multi-Tenancy Patterns — Database-per-Tenant, Schema-per-Tenant, and Row-Level
Tradeoffs for SaaS data isolation, compliance, and operational complexity.
Observability — Logs, Metrics, and Traces
Implementing the three pillars with OpenTelemetry and making them actionable.
Resilience Patterns — Circuit Breaker, Retry, Bulkhead, and Timeout
Prevent cascading failures with proven resilience patterns.
Progressive Delivery — Feature Flags, Canary, and Dark Launching
Techniques for releasing software confidently at any scale.
CI/CD Pipeline Design — From Commit to Production
Stages, gates, deployment strategies, and keeping pipelines fast.
Secure Coding — OWASP Top 10 for Backend Engineers
Injection, broken auth, XSS, IDOR, and how to prevent each.
Event Sourcing and CQRS — Practical Implementation
Event store design, projection rebuilding, and operational realities.
Container Registry Management and Image Lifecycle
Tagging conventions, vulnerability scanning, retention policies, and registry options.
Service Mesh — Istio and Linkerd for Microservices
mTLS, traffic management, observability, and the operational cost of a service mesh.
HTTP Caching Strategies for APIs and Web Applications
Cache-Control headers, ETags, CDN caching, and cache invalidation.
Implementing Rate Limiting in APIs
Token bucket, sliding window, fixed window — algorithms and implementation patterns.
Idiomatic REST API Design Patterns
Naming conventions, filtering, sorting, sparse fieldsets, and HATEOAS considerations.
Serverless Architecture — When Functions Work and When They Don't
Cold starts, event-driven patterns, cost model, and the right use cases.
OAuth 2.0 and OIDC — Implementing Secure Third-Party Auth
Authorization code flow, PKCE, scopes, and integrating with identity providers.
API Pagination — Cursor, Offset, and Keyset Patterns
When each method works, performance tradeoffs, and implementation details.
Designing and Publishing API Client SDKs
Auto-generation vs handwritten, retry logic, versioning, and developer experience.
API Gateway — Responsibilities and Implementation Patterns
Authentication, rate limiting, routing, request aggregation, and when not to use a gateway.
API Idempotency — Safe Retries for Mutations
Idempotency keys, implementation, and which HTTP methods are idempotent by definition.
Message Queue Patterns — SQS, RabbitMQ, and Dead Letter Queues
Fan-out, work queues, priority queues, and poison message handling.
Dependency Management and Supply Chain Security
Lock files, vulnerability scanning, SBOM, and keeping dependencies up to date.
Docker Containerisation Best Practices
Writing efficient Dockerfiles, multi-stage builds, security hardening, and image size reduction.
CDN and Edge Caching Strategy
Origin offload, cache key design, purging, and choosing a CDN.
gRPC Service Design — Protocol Buffers and Production Patterns
Proto file design, streaming, deadlines, interceptors, and error handling.
Database Connection Patterns in PHP
PDO, prepared statements, connection pooling, and transaction management.
DORA Metrics — Measuring Engineering Delivery Performance
Deployment frequency, lead time, MTTR, and change failure rate in practice.
Our observability stack for production services
Logs, metrics, traces — how we instrument every service we ship.
Feature Flags — Safe Deployment and Gradual Rollout
Types of flags, implementation patterns, and avoiding flag sprawl.
The Twelve-Factor App — Principles for Modern Services
How the twelve factors apply to real production services today.
Health Check Endpoints — Readiness, Liveness, and Startup
Implement correct health endpoints so orchestrators route traffic and restart containers appropriately.
Kubernetes Deployment Patterns for Production Services
Deployments, Services, Ingress, HPA, and resource management.
Load Testing with k6
Script a realistic load test, interpret results, and find bottlenecks before they find users.
Background Job Queue Design
Idempotency, retries, dead letter queues, and job observability.
GraphQL vs REST — When to Use Each
Comparing query flexibility, over-fetching, tooling, and operational complexity.
Database Connection Pooling — Why It Matters and How to Configure It
Pool sizing, connection lifetime, and debugging pool exhaustion.
API Testing Strategy — Unit, Integration, Contract, and E2E
Building a test pyramid that catches real bugs without slowing delivery.
Extracting Microservices from a Monolith
The strangler fig pattern, identifying seams, and avoiding the distributed monolith.
Designing a Reliable Webhook System
Delivery guarantees, signature verification, retry logic, and consumer best practices.
Logging Best Practices for Production Services
Structured logging, log levels, correlation IDs, and log aggregation.
Distributed Tracing — Propagating Context Across Services
Trace context propagation, sampling strategies, and analysing traces.
OpenAPI Spec-First API Development
Write the contract before writing code — benefits, tooling, and workflow.
API Error Handling — Consistent Error Responses
Error format standards, HTTP status code usage, and client-friendly error design.
Microservices Communication — Sync vs Async Patterns
REST, gRPC, message queues, and choosing the right pattern for each interaction.
Async/Await Patterns and Common Pitfalls
Concurrency, parallelism, error handling, and avoiding common async bugs.
Semantic Versioning — MAJOR.MINOR.PATCH in Practice
When to bump each version number and how to communicate breaking changes.
API Documentation Best Practices
What makes documentation useful, tooling, and keeping docs accurate.
WebSockets — Building Real-Time Features
Connection lifecycle, heartbeats, reconnection logic, and scaling with Redis pub/sub.
Implementing Search — From Basic SQL to Elasticsearch
Full-text search progression from LIKE queries to dedicated search engines.