- Knowledge
- technology
- OOP
- Tips
- Programming
- Tips
- Tutorial
- SEO
- Ranking
- Knowledge
- Special Day
- Seo
- Bug
- Data science
- Seo
- artificial intelligence
- Machine Learning
- Robotics
- happyNewYear2021
- newYearEve
- 2021
- Automation
- Smart Home
- Career
- Best Practices
- Git
- Logging
- Web Fundamentals
- DNS
- HTTPS
- Performance
- AI Tools
- ChatGPT
- Claude
- Gemini
- Laravel
- Eloquent
- MySQL
- HTTPS
- TLS
- Web Security
- Certificates
- Developer Life
- Debugging
- Docker
- DevOps
- Transactions
- Queues
- LLMs
- AI
- AI Coding
- Developer Tools
- React Native
- Expo
- Kate PMS
- Mobile Apps
- Laravel
- Authentication
- Sanctum
- Cookies
- API Design
- Payments
- Idempotency
- DeepSeek
- Open Source AI
- LLMs
- AI News
- Git
- Version Control
- AI Coding
- Prompting
- PHP
- Checklist
- MCP
- AI Agents
- OpenAI
- Architecture
- Microservices
- Modular Monolith
- Estimation
- Developer Life
- Project Planning
- Humour
- OAuth
- OpenID Connect
- Authentication
- Embeddings
- Vector Search
- RAG
- pgvector
- OpenAI
- GPT-4.1
- Codex CLI
- Events
- Testing
- Clean Code
- Maintainability
- Code Review
- Webhooks
- API
- Security
- Claude Code
- Workflow
- AI
- LLM
- Prompt Injection
- Mobile
- React
- Networking
- TCP
- UDP
- HTTP/3
- CLAUDE.md
- AWS
- Cloud Security
- Backups
- PHPUnit
- Software Engineering
- Leadership
- Communication
- RAG
- Embeddings
- AI Engineering
- IT Infrastructure
- Networking
- Access Control
- CI/CD
- GitHub Actions
- Gemini CLI
- Claude Code
- JavaScript
- Async/Await
- Node.js
- Promises
- Security
- Cryptography
- Passwords
- MySQL
- Database
- Vibe Coding
- Software Quality
- DNS
- Code Reading
- Onboarding
- Productivity
- Background Jobs
- Developer Humour
- Estimates
- Dev Life
- JWT
- o3-mini
- DeepSeek R1
- Rate Limiting
- Kate PMS
- E-Signing
- Audit Trail
- REST
- GraphQL
- API Design
- Laravel 12
- Upgrade Guide
- Open Source
- Self-Hosting
- Task Scheduling
- Cron
- Secrets
- CORS
- PHP
- PHP-FPM
- OPcache
- GitHub Copilot
- Software Architecture
- Engineering
- TypeScript
- JavaScript
- Type Safety
- AI Security
- React Native
- Product Design
- AI Agents
- Kiro
- Queues
- Redis
- RabbitMQ
- AWS SQS
- Nginx
- Apache
- GPT-5
- gpt-oss
- Clean Code
- Architecture
- Naming
- Documentation
- Career
- ADR
- Teamwork
- Supply Chain
- Kate HRM
- HR Software
- Permissions
- System Design
- Pagination
- SSH
- Linux
- Big O
- Databases
- Laravel Boost
- MCP
- Developer Skills
- Validation
- Databases
- Indexes
- Code Quality
- Deployment
- Developer Humour
- Feature Flags
- Code Review
- Pull Requests
- Docker
- Cursor
- Authorization
- RBAC
- Gemini
- Long Context
- PHP 8.4
- Caching
- Dependency Injection
- Web Performance
- Browser
- CSS
- Database
- Migrations
- ChatGPT
- AI for Developers
- Monitoring
- On-Call
- REST
- Backend
- SQL
- NoSQL
- Database Design
- Coding Agents
- Claude 4
- API Resources
- REST API
- Load Balancing
- Scaling
- AWS
- AI Tools
- Claude
- Sora 2
- CTE
- 2FA
- TOTP
- Programming Languages
- Prompts
- Developer Workflow
- API Gateway
- APIs
- Passport
- API Auth
- Learning
- Burnout
- Developer Growth
- Web Development
- SEO
- Kate Mall
- ChatGPT Atlas
- Agent Skills
- Middleware
- Laravel 12
- Collections
- Context Window
- Monitoring
- Commit Messages
- Self Review
- Growth
- Regex
- Programming Basics
- Text Processing
- Database Design
- Normalization
- Linux
- Server Security
- Linux Foundation
- Open Standards
- Legacy Code
- Documentation
- AI Workflow
- File Uploads
- Test Data
- Hashing
- Performance
- Caching
- Enums
- Scope Creep
- Estimation
- Codex
- Gemini CLI
- Timezones
- Carbon
- Bugs
- PHP 8.5
- Gemini 3
- GPT-5.1
- Data Integrity
- Event Loop
- Async
- Opus 4.5
- AI Models
- React
- Forms
- Frontend
- Backups
- AI Images
- DALL-E
- Midjourney
- Race Conditions
- Concurrency
- Legacy Code
- Refactoring
- Senior Engineer
- Scope
- LLM
- CDN
- Web
- Sub-Agents
- Soft Deletes
- Audit Log
- Concurrency
- AI Learning
- NestJS
- AI Evals
- Policies
- SPF DKIM DMARC
- Unicode
- UTF-8
- Knowledge Graph
- Value Objects
- Technical Debt
- Feature Flags
- Laravel Pennant
- Deployment
- Copilot
- Composer
- Dependencies
- Artisan
- Automation
- AWS S3
- Object Storage
- Cloud
- Small Language Models
- Ollama
- Production
- Sessions
- HTTP
- Mentoring
- SQL
- Virtual Machines
- Web Development
- HTTP/2
- QUIC
- Web Performance
- AI Integration
- LLM API
- SOLID
- OOP
- Hosting
- Serverless
- Merge Conflicts
- Temperature
- AI Development
- Reverse Proxy
- Nginx
- Infrastructure
- Verification
- Passkeys
- WebAuthn
- Teams
- Communication
- Stakeholders
- Monorepo
- CI/CD
- Versioning
- JSON Schema
- Livewire
- Inertia
- Meetings
- Distributed Systems
- Privacy
- Full-Stack
- T-Shaped Skills
- Money
- Notifications
- Web Security
- HTTP Headers
- CSP
- Function Calling
- Load Testing
- k6
- Data Extraction
- Debugging
- WebSockets
- SSE
- Real-Time
- Laravel Reverb
- Infrastructure as Code
- Terraform
- Side Projects
- Laravel Pint
- OpenAPI
- Swagger
- UX
- Multimodal
- Jest
- Pair Programming
- APIs
- Rate Limiting
- Resilience
- Dev Humour
- Design Tokens
- JWT
- API Keys
- Sessions
- PHPStan
- Rector
- Incidents
- Reporting
- Dashboards
- Zero Trust
- IAM
- Search
- Laravel Scout
- Junior Developers
- Mentoring
- Images
- WebP
- AVIF
- Bug Reports
- Let's Encrypt
- Design Docs
- Software Design
- Observers
- Replication
- Accountability
- Data Structures
- Reliability
- LLM Memory
- Error Handling
- Payments
- Payment Gateway
- Webhooks
- PCI DSS
- Observability
- OpenTelemetry
- Personal Brand
- Writing
- Conventions
- Dates
- Scheduling
- Disaster Recovery
- Compression
- Brotli
- Deadlines
- Developer Habits
- State Machines
- Tech Roles
- UUID
- ULID
- Horizon
- Planning
- Engineering Culture
- Ownership
- Soft Skills
- Socialite
- Cost Control
- Collations
- Unicode
- Octane
- PostgreSQL
Me vs Production: The Friday Deploy
About Post
Every developer knows the rule: don't deploy on Friday. Every developer has also, at least once, looked at the clock, looked at a tiny change, and thought: "It's literally one line."
This is that story. You've probably lived it. If you haven't, a colleague has, and they still flinch when someone says "quick deploy".
Friday, 4:45 pm
The ticket is small. Change the wording on the payment confirmation screen and, while you're there, rename a column that's been bugging everyone for months. Tests pass locally. The pull request has one approval, given by someone who was also trying to leave.
✅ "Ship it. It's nothing."
Friday, 4:52 pm
The pipeline is green. The deploy runs. You refresh the page and see your new wording. Beautiful. You close the laptop with the smug calm of a person who has defeated superstition.
Friday, 5:03 pm
You're in the car park when your phone buzzes. Then buzzes again.
❌ The mobile app, the one still installed on most phones, is calling the API with the old column name. Nobody remembered the app ships separately.
❌ The queue workers are still running yesterday's code, because nobody restarted them. They're very confused about where the column went.
❌ A scheduled report runs at 5:00 every Friday. Today it sent an email full of errors to people who are definitely not developers.
Friday, 5:20 pm
Back at the laptop. "Just roll back."
❌ The migration renamed the column. Rolling back the code means old code expecting the old name, but the database now has the new one. The down() method exists, technically. Nobody has ever run it.
❌ Half the team is offline. The one person who knows how the report works is at a family dinner, typing replies under the table.
Friday, 7:40 pm
It's fixed. Sort of. The column has a new name in the database and a compatibility shim in the API, the workers have been restarted, and there's a hotfix in main that nobody has reviewed. You promise yourself you'll clean it up on Monday.
The new wording on the confirmation screen looks great, by the way.
Monday, 9:00 am
"So, how was everyone's weekend?"
The real lesson: it isn't about Friday
Here's the slightly uncomfortable truth. Friday didn't cause any of those problems. The deploy would have broken on a Tuesday too. Friday just guaranteed that the breakage met the fewest people, the most tired brains, and the longest time until anyone noticed.
The goal isn't superstition. It's making deploys so boring that the day of the week doesn't matter. These are the habits that get you there:
- ✅ Deploy early in the week, early in the day. Ship when the whole team is around and fresh, and there's a full working day to watch it. Save Friday for small, low-risk changes, or for writing the tests you skipped.
- ✅ Separate deploying from releasing. Put risky features behind a feature flag. The code goes out quietly; you switch it on when you're ready, and switch it off in seconds if something's wrong. No redeploy needed.
- ✅ Have a rollback plan before you deploy. Not "we'll figure it out". Know the exact command or button, and know whether the database changes can survive it.
- ✅ Make migrations backwards compatible. Never rename a column in one step. Add the new column, write to both, move readers over, and drop the old one in a later release. Old code and new code should both work at every step, especially when a mobile app version you can't update instantly is still out there.
- ✅ Script the boring parts. Restarting queue workers, clearing caches and running migrations belong in the deploy script, not in someone's memory.
- ✅ Watch it after it ships. Have error tracking and logs open for the first half hour. If you can't watch it, it's not the right time to ship it.
- ✅ Small pull requests, real reviews. "Change wording" and "rename a column" should never have been the same PR. The second one deserved its own review and its own deploy.
The test for any deploy: if this goes wrong in five minutes, do I know exactly how to undo it, and will the right people be around to help? If either answer is no, it's not a Friday problem. It's a not-yet problem.
So, should you deploy on Friday?
If your pipeline is automated, your migrations are safe, your risky features are behind flags and rollback is one button: honestly, Friday is fine. Teams with good habits ship any day.
If any of those are missing, the rule exists for a reason. It's not about fear. It's about respecting your own weekend, and everyone else's.
What's the "tiny change" that ruined your Friday? I promise this is a judgement-free comment section.

Be first to comment it...