Sign in

Hugh Tipping

@hughtipping.bsky.social
40 followers 101 following 107 posts

Python, AWS Infra, Terraform, Kubernetes, SRE, DevOps Writer. Need tech career coaching? cogium.co Like any of the stuff I post? Buy me a coffee: ko-fi.com/htipping

PostsRepliesMedia
Hugh Tipping @hughtipping.bsky.social · 22/08/2026
30 years in infrastructure and DevOps. 3 months at the Recurse Center building an AI agent (Python + MCP + local LLM) and a Kubernetes operator (learning Go for real this time). My "return statement" reflecting on what I built and what learned: techblog.hughtipping.com/p/a-recurse-...
techblog.hughtipping.com
A Recurse Center Return Statement
My reflections on three months at the Recurse Center
020
Hugh Tipping @hughtipping.bsky.social · 31/05/2026
I highly recommend this article by Cal Newport about the difficulty of concentration in a distracted world and how we do not treat our cognitive health the same way we do our physical health. This is a paywall-free link. www.nytimes.com/2026/03/27/o...
nytimes.com
Opinion | There’s a Good Reason You Can’t Concentrate
023
Hugh Tipping @hughtipping.bsky.social · 19/03/2026
Your job isn't running kubectl. A.I. eats toil, not judgment. Senior value is design and trade-offs. Be a systems steward.
010
Hugh Tipping @hughtipping.bsky.social · 27/02/2026
This is the fourth and final post in my Kubernetes networking series: techblog.hughtipping.com/p/kubernetes... #kubernetes #networking
techblog.hughtipping.com
Kubernetes Networking Deep Dive, Part 4
Encryption In-Flight
000
Hugh Tipping @hughtipping.bsky.social · 20/02/2026
Kubernetes Networking Deep Dive Part 3: techblog.hughtipping.com/p/kubernetes... #kubernetes #networking
techblog.hughtipping.com
Kubernetes Networking Deep Dive, Part 3
North-South Traffic
000
Hugh Tipping @hughtipping.bsky.social · 20/02/2026
Thanks for this! I was shown this site by a colleague a while back but couldn't remember it. Bookmarked!
000
Hugh Tipping @hughtipping.bsky.social · 15/02/2026
Part 2 of my Kubernetes networking blog series: techblog.hughtipping.com/p/kubernetes... #kubernetes #networking
techblog.hughtipping.com
Kubernetes Networking Deep Dive: Part 2
Pod-to-Pod Communication
010
Hugh Tipping @hughtipping.bsky.social · 09/02/2026
Kubernetes Networking Deep Dive: Intro Check out my blog series on Kubernetes networking: techblog.hughtipping.com/p/kubernetes...
techblog.hughtipping.com
Kubernetes Networking Deep Dive: Intro
A Four-Part Series on the Life of a Packet within Kubernetes
001
Hugh Tipping @hughtipping.bsky.social · 31/01/2026
Hugh’s Tech Blog Joined Substack and published my first post. Would you like to see more? techblog.hughtipping.com?r=a8qfs&utm_...
techblog.hughtipping.com
Hugh’s Tech Blog | Substack
Bits and pieces from different technologies and the DevOps world. Click to read Hugh’s Tech Blog, a Substack publication. Launched 9 minutes ago.
010
Hugh Tipping @hughtipping.bsky.social · 15/04/2025
4/4 MaxSkew explained - Control the balance precision you need
000
Hugh Tipping @hughtipping.bsky.social · 15/04/2025
3/4 Custom topology keys - Create your own spread dimensions (rack, power supply)
100
Hugh Tipping @hughtipping.bsky.social · 15/04/2025
2/4 Node spreading - Balance pods evenly across your cluster nodes
100
Hugh Tipping @hughtipping.bsky.social · 15/04/2025
🧵 Understanding K8s Pod Topology Spread Constraints: 1/4 Zone spreading - Distribute your workloads across failure domains #Kubernetes #K8s #CloudNative
100
Hugh Tipping @hughtipping.bsky.social · 31/03/2025
Python descriptors give you superpowers over attribute access! Implementing validation for positive numbers: class PositiveNumber: def __set__(self, obj, value): if value <= 0: raise ValueError() obj._value = value #Python #PythonTips
000
Hugh Tipping @hughtipping.bsky.social · 20/03/2025
TIL: Python's functools.partial() isn't just for args—it locks in kwargs too! Perfect for dependency injection and creating specialized functions. #Python #FunctionalProgramming #Tips
000
Hugh Tipping @hughtipping.bsky.social · 13/03/2025
🔍 K8s Debug Tip: Use `kubectl debug` to create temporary pods with troubleshooting tools alongside your containers. Inspect running workloads without modifying production images or redeploying. Perfect for live investigation while maintaining your security posture. #Kubernetes #K8sDebugging #DevOps
media.tenor.com
a dachshund walking on a brick sidewalk with the words " i 'm debugging " written on the bottom
ALT: a dachshund walking on a brick sidewalk with the words " i 'm debugging " written on the bottom
021
Hugh Tipping @hughtipping.bsky.social · 09/03/2025
k9s tip: Use :xray command to visualize resource dependencies and connections in your cluster. Invaluable for debugging complex service meshes and microservice architectures! #Kubernetes #DevOps #k9s
031
Hugh Tipping @hughtipping.bsky.social · 04/03/2025
K8s Pro Tip: Finalizers prevent resources from being deleted until specific cleanup logic completes. Perfect for custom controllers managing external dependencies or ensuring graceful termination. #Kubernetes
010
Hugh Tipping @hughtipping.bsky.social · 05/02/2025
TIL: K8s PodDisruptionBudget (PDB) can block node draining if minAvailable is set without maxUnavailable. Best practice: Use maxUnavailable=1 or 25% - it provides clear boundaries for pod eviction while maintaining availability 🔄 #Kubernetes
000
Hugh Tipping @hughtipping.bsky.social · 04/02/2025
5/5 Clone repos & prepare codebase for main container #Kubernetes #K8s #CloudNative
010
Hugh Tipping @hughtipping.bsky.social · 04/02/2025
4/5 Fetch & process certificates/secrets from external sources
100
Hugh Tipping @hughtipping.bsky.social · 04/02/2025
3/5 Handle DB schema migrations before app starts
100
Hugh Tipping @hughtipping.bsky.social · 04/02/2025
2/5 Run pre-flight checks (DNS, service deps, storage)
100
Hugh Tipping @hughtipping.bsky.social · 04/02/2025
🧵 Kubernetes Init Container Power Moves: 1/5 Process & prepare data before main container starts
100
Hugh Tipping @hughtipping.bsky.social · 03/02/2025
5/5 Best practice: For critical jobs, consider pushing job results to external monitoring/logging for longer retention without K8s overhead. 📊
000
Hugh Tipping @hughtipping.bsky.social · 03/02/2025
4/5 Use kubectl get cronjobs <name> -o yaml | grep History to quickly check current limits. Can be adjusted on the fly! 🛠️
100
Hugh Tipping @hughtipping.bsky.social · 03/02/2025
3/5 Pro tip: Setting these too high impacts etcd storage & API server performance. Find your sweet spot based on retention needs. ⚖️
100
Hugh Tipping @hughtipping.bsky.social · 03/02/2025
2/5 There's also .spec.failedJobsHistoryLimit (default=1) for tracking failed executions. Both help with debugging and audit trails. 🔍
100
Hugh Tipping @hughtipping.bsky.social · 03/02/2025
TIL: Kubernetes CronJobs: 1/5 K8s cronjobs have a .spec.successfulJobsHistoryLimit. Default=3. Adjust to keep history longer. 🕒
120
Reposted by Hugh Tipping
Real Python @realpython.com · 02/02/2025
Creating a Fitness Tracker App With Python Reflex #python
pybit.es
Creating a Fitness Tracker App With Python Reflex #python
Detailed guide building a simple Fitness Tracker app in Python using Reflex that lets you log the number of workouts completed per week.
052
Hugh Tipping @hughtipping.bsky.social · 02/02/2025
6/6 Regular audits for unused/overly permissive rules
000
Hugh Tipping @hughtipping.bsky.social · 02/02/2025
5/6 Use separate SGs for different tiers (web/app/db)
100
Hugh Tipping @hughtipping.bsky.social · 02/02/2025
4/6 Enable VPC flow logs & AWS Config rules
100
Hugh Tipping @hughtipping.bsky.social · 02/02/2025
3/6 Document temporary rules with expiration dates
100
Hugh Tipping @hughtipping.bsky.social · 02/02/2025
2/6 Tag with: Environment, Purpose, Owner & Cost Center
100
Hugh Tipping @hughtipping.bsky.social · 02/02/2025
🧵 AWS Security Groups best practices: 1/6 Least privilege - only open required ports & use SG references over CIDR blocks
100
Hugh Tipping @hughtipping.bsky.social · 01/02/2025
AWS Pro Tip: Implement mandatory resource tagging using AWS Organizations SCPs + Terraform aws_organizations_policy. Tag environment, owner, cost-center & project at minimum. Makes cost allocation reports actually useful and saves hours debugging cross-account bills.
media.tenor.com
a bird is standing in front of a window with the words tag ... you 're it .
ALT: a bird is standing in front of a window with the words tag ... you 're it .
000
Hugh Tipping @hughtipping.bsky.social · 31/01/2025
4/4 ExternalName: Maps service to DNS name, useful for external service integration without proxying
000
Hugh Tipping @hughtipping.bsky.social · 31/01/2025
3/4 LoadBalancer: Integrates with cloud provider's LB, automatically routes external traffic to your service
100
Hugh Tipping @hughtipping.bsky.social · 31/01/2025
2/4 NodePort: Exposes service on each node's IP at static port (30000-32767), enables external access
100
Hugh Tipping @hughtipping.bsky.social · 31/01/2025
🧵 Kubernetes Service Types Explained: 1/4 ClusterIP: Internal-only communication between pods within cluster, default type
110
Hugh Tipping @hughtipping.bsky.social · 30/01/2025
4/4 When to use which: Labels = Selection & Grouping Annotations = Configuration & Automation 🔍 Labels: app=web 📝 Annotations: prometheus.io/scrape=true
010
Hugh Tipping @hughtipping.bsky.social · 30/01/2025
3/4 Annotations: Non-identifying metadata that tools & libraries can read. Typically longer, more descriptive. Example: kubernetes.io/ingress-bandwidth: "1M"
100
Hugh Tipping @hughtipping.bsky.social · 30/01/2025
2/4 Key use cases for Labels: Pod-Service matching Deployment targeting Node affinity/anti-affinity Resource grouping for ops
100
Hugh Tipping @hughtipping.bsky.social · 30/01/2025
🧵 K8s Labels vs Annotations - A Quick Guide: 1/4 Labels: Machine-readable identifiers for selecting & grouping resources (pods, services). Used with kubectl get/delete by selectors. Example: environment=prod, app=frontend
110
Hugh Tipping @hughtipping.bsky.social · 28/01/2025
5/5 Debug Mode: Log all SQL queries in dev engine.echo = True See exactly what's hitting your DB 🔍
000
Hugh Tipping @hughtipping.bsky.social · 28/01/2025
4/5 Pro Tip: Use SQLAlchemy for production Built-in connection pooling SQL injection protection Cross-database compatibility
120
Hugh Tipping @hughtipping.bsky.social · 28/01/2025
3/5 Connection Pooling: Scale like a pro pool = create_engine("postgresql://", pool_size=5) Reuse connections, boost performance 🚀
100
Hugh Tipping @hughtipping.bsky.social · 28/01/2025
2/5 Smart Transaction Management: try: with conn.begin(): # Your SQL here except: # Auto-rollback on errors
100
Hugh Tipping @hughtipping.bsky.social · 28/01/2025
🧵 Python Database Best Practices - A Thread 1/5 Context Managers: Automate cleanup & prevent connection leaks with db.connect() as conn: conn.execute("INSERT INTO users...")
100