惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
博客园_首页
Google DeepMind News
Google DeepMind News
博客园 - Franky
The GitHub Blog
The GitHub Blog
GbyAI
GbyAI
有赞技术团队
有赞技术团队
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
Recent Announcements
Recent Announcements
A
About on SuperTechFans
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
罗磊的独立博客
IT之家
IT之家
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
腾讯CDC
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
The Night I Built Sentinel: A Story of Bots, Breakdowns, ...
slawekluzny · 2026-06-14 · via DEV Community

slawekluzny

The Night I Built Sentinel: A Story of Bots, Breakdowns, and Breaking Through

It was 3am when I woke up to the alert. My server was under attack.

I opened my laptop, stared at the screen, and felt that familiar sinking feeling in my gut. SSH was timing out. The CPU usage graph looked like a heart attack—flatlining at 100%. Something was wrong.

This wasn’t the first time my server had been hit by bots. But this wasn’t a casual scan or a low-level probing. This was a full-on assault.

By the time I got into the hosting panel, the damage was already done. My contact form had been hammered. Emails had been sent out in a matter of hours. My IPs were blacklisted. My server was toast.

I spent the next week in a fog of exhaustion—days on the construction site, nights trying to salvage what was left. Rate limiting, CAPTCHA, SPF records, DKIM—all the things I should have done before the attack, not after.

But in that mess, something clicked. I started making a list of everything that had gone wrong—everything that could go wrong. And I realised: I didn’t just need to fix this. I needed to prevent it.


The Birth of Sentinel

Sentinel didn’t start as a product. It started as a script. A crude, ugly thing that ran core monitoring roughly every 5 minutes via a long-running systemd daemon with APScheduler interval jobs—cron was intentionally avoided to keep the crontab clean and uncluttered—and checked a list of things:

  • Is the database running?
  • Are the SSL certificates valid?
  • Is the CPU spiking?
  • Are the bots hammering the contact form again?

It wasn’t impressive. But it worked.

Over time, it grew. A dashboard here, a fleet view there. Integration with Fail2Ban. AI-powered checks for anomalies.

Today, Sentinel is one of our core offerings. It’s running on our servers, and it’s running on other people’s servers too. What started as a desperate fix became a product.


Why I Ditched Laravel

I didn’t hate Laravel. But I didn’t understand it either.

The codebase I inherited was a patchwork quilt of freelancer decisions—shortcuts, half-working features, and choices that made sense to someone, somewhere, at some point. But not to me.

So I rewrote it.

From scratch. A modern stack for a platform that needed to be fast, clean, and scalable.

It wasn’t easy. It took months. But when it was done, I understood every line of code. Every decision. Every fix.


The AI Shift

I wasn’t always good at this.

Years ago, I couldn’t tell you what SSH stood for. Today, I’m building SaaS products that people pay for.

The difference? AI.

Not as a crutch, but as a collaborator.

With tools like Claude, I could think out loud. I could describe a problem—badly, imprecisely—and have the imprecision noticed and questioned. I could ask why, not just how.

I learned to verify before implementing. To trust my instincts when something felt off. To push back when the AI suggested something technically correct but fundamentally wrong.

That back-and-forth—human judgment combined with AI capability—was what made the difference.


The Products That Came From Chaos

I didn’t set out to build a company.

Sentinel started as a fix for my own server. 24ad.info started as an idea on a construction site. PostPilot—they all started as tools I needed to solve problems I faced.

Today, they’re products. Real ones. With pricing, documentation, and customers.


The Lessons I’ve Learned

  1. Tools matter less than you think. Find what fits how you work. I tested several different servers, each handling what it did best, but ran into conflicts. Caddy was chosen only after testing as the best overall fit. I stuck with it because it worked.

  2. Breaking things is the education. The things I remember most clearly are the things that went wrong.

  3. AI is a collaborator, not a replacement. The code is better when I understand it. The solutions are better when I push back.

  4. Shipping beats perfecting. Every product I have is imperfect. Every product I have is live.

  5. The story is the product. Authenticity is the differentiator.


The Invitation

If you’re reading this and you have an idea you haven’t started because you don’t have the technical background—start.

Not with a plan to learn everything first. Not with a commitment to do it properly before doing it at all. Just start.

The knowledge follows the doing.

I didn’t learn to manage a server and then build products. I built products and learned to manage a server because I had to.

The credential doesn’t come before the work. It comes from it.


"I don’t know programming languages at an expert level. I don’t need to.

I imagine, describe, verify—AI codes. I decide."

— Slawomir Luzny

Founder, FixFlex LTD • West London