<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SysLayer</title>
    <description>The latest articles on DEV Community by SysLayer (@syslayer).</description>
    <link>https://dev.to/syslayer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2241465%2F35aa80d6-8789-4cf4-8540-6ebb0f9ce877.png</url>
      <title>DEV Community: SysLayer</title>
      <link>https://dev.to/syslayer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/syslayer"/>
    <language>en</language>
    <item>
      <title>I Write a Story About a Cat Who Builds ERP Systems With AI. Here's the Real Reason.</title>
      <dc:creator>SysLayer</dc:creator>
      <pubDate>Mon, 27 Apr 2026 06:49:39 +0000</pubDate>
      <link>https://dev.to/syslayer/i-write-a-story-about-a-cat-who-builds-erp-systems-with-ai-heres-the-real-reason-2p7g</link>
      <guid>https://dev.to/syslayer/i-write-a-story-about-a-cat-who-builds-erp-systems-with-ai-heres-the-real-reason-2p7g</guid>
      <description>&lt;p&gt;Coding Cat Oran is fiction. But everything that happens to him already happened to someone.&lt;/p&gt;

&lt;p&gt;`Most developers don't talk about the part where they almost shipped something they didn't understand.&lt;br&gt;
That part isn't in the tutorials. It's not in the conference talks. You won't find it in the post-mortems, because no one writes post-mortems about the times they got lucky.&lt;br&gt;
But it's real. And in 2025, it's happening faster than ever.&lt;/p&gt;

&lt;p&gt;Oran is an orange cat. He has no CS degree. He learns to code late at night, alone, with AI tools and online courses he bought on sale.&lt;br&gt;
He gets hired anyway. Because in 2025, that's enough to get hired.&lt;br&gt;
His first job: build an internal ERP system for a manufacturing company. One developer. No team. No architect. A requirements doc written in bullet points by someone who once saw SAP and thought: make it like that, but simple.&lt;br&gt;
Oran opens his AI coding tool and starts prompting.&lt;br&gt;
What happens next is the series.&lt;/p&gt;

&lt;p&gt;Why I'm writing this&lt;br&gt;
I've spent years building production systems — ERP, WMS, permission management, traceability systems. Real systems, for real factories, with real consequences when something breaks at 2am on a Tuesday.&lt;br&gt;
I've watched the tools change. I've watched what AI makes easier, and I've watched what it quietly makes worse.&lt;br&gt;
The gap between working prototype and production-ready system is not smaller than it used to be. If anything, it's wider — because now you can generate the prototype in a day, and spend the next six months discovering what it didn't know it didn't know.&lt;br&gt;
Oran is how I write about that gap honestly. Fiction lets me be more precise than a technical post does.&lt;/p&gt;

&lt;p&gt;What the series is&lt;br&gt;
Coding Cat Oran is a serialized fiction about a solo developer building real systems with AI tools — and learning, episode by episode, what the tools can and cannot carry.&lt;br&gt;
It's not anti-AI. Oran uses AI constantly. So do I.&lt;br&gt;
It's about the judgment layer that sits above the tools. The part that knows when a five-table schema is actually a trap. The part that asks who maintains this in two years. The part that no prompt can replace.&lt;br&gt;
Each episode is short — under 5 minutes. Each one ends at the edge of a real engineering problem.&lt;/p&gt;

&lt;p&gt;Start here&lt;br&gt;
&lt;a href="https://dev.to/syslayer/coding-cat-oran-ep1-the-prompt-programmer-2i9d"&gt;→ Ep1: The Prompt Programmer — Oran gets the job and ships a prototype by Friday.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/syslayer/coding-cat-oran-ep2-what-they-said-vs-what-they-meant-339m"&gt;→ Ep2: What They Said vs. What They Meant — The requirements doc was three pages. The real requirements were not written anywhere.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/syslayer/coding-cat-oran-ep3-five-tables-changed-everything-1094"&gt;→ Ep3: Five Tables Changed Everything — The permission system gets a schema. It's almost right.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/syslayer/coding-cat-oran-ep4-speaking-human-3452"&gt;→ Ep4: Speaking Human — The GM wants a dashboard. Oran learns that "simple" is a political statement.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/syslayer/coding-cat-oran-ep5-the-it-manager-nobody-hired-4hao"&gt;→ Ep5: The IT Manager Nobody Hired — Six months in. Oran gets promoted to a job that doesn't have a title.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;New episodes publish weekly. Follow SysLayer on dev.to to catch them.&lt;br&gt;
If you build systems for a living — or want to — Oran is for you.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>Coding Cat Oran Ep5, The IT Manager Nobody Hired</title>
      <dc:creator>SysLayer</dc:creator>
      <pubDate>Mon, 20 Apr 2026 01:13:47 +0000</pubDate>
      <link>https://dev.to/syslayer/coding-cat-oran-ep5-the-it-manager-nobody-hired-4hao</link>
      <guid>https://dev.to/syslayer/coding-cat-oran-ep5-the-it-manager-nobody-hired-4hao</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnio25q059fj4in6x1hap.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnio25q059fj4in6x1hap.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Six months at Rust-Belt Manufacturing. The permission system was running. Inventory was live. The approval workflow hadn't broken once.&lt;/p&gt;

&lt;p&gt;The GM called Oran into his office.&lt;/p&gt;

&lt;p&gt;"We need a new system for production scheduling. And I want you to lead it — not just the coding. The whole thing. Requirements, design, timeline, rollout."&lt;/p&gt;

&lt;p&gt;Oran blinked. "That sounds like a project manager's job."&lt;/p&gt;

&lt;p&gt;"It sounds like your job. You're the one who knows how to talk to the teams and turn it into something that works."&lt;/p&gt;




&lt;p&gt;Oran walked out with a new title on his business card: &lt;strong&gt;IT Manager&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No raise negotiation. No interview panel. It just happened. Because in a small company, titles don't come from HR — they come from trust. And Oran had earned it the hard way.&lt;/p&gt;

&lt;p&gt;He sat down and thought about how he got here.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Month 1:&lt;/strong&gt; He was a prompt programmer. He typed descriptions into AI and shipped whatever came out. He thought speed was the skill. Build fast, demo fast, move on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 2:&lt;/strong&gt; He met the users. He learned that requirements documents lie — not on purpose, but because the people who write them aren't the people who do the work. He learned to watch before he asked, and to ask before he built.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 3:&lt;/strong&gt; He discovered that the database isn't just storage — it's where business rules live. Permission boundaries, approval thresholds, audit trails. When logic lives in SQL, it survives everything: framework changes, rewrites, developer turnover. He learned to think in tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 4:&lt;/strong&gt; He stood in front of a room and failed. Then he stood in front of the same room and succeeded. The difference wasn't the system — it was the language. He learned to translate technology into outcomes. Not "five tables with junction mappings" but "you see only what's relevant to your job."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 5–6:&lt;/strong&gt; People started coming to &lt;em&gt;him&lt;/em&gt;. Not with bug reports — with ideas. "Can we track supplier lead times?" "Can we see which orders are late?" "Can we give the external auditor a login?" Each conversation was a mini requirements session. And Oran was running them naturally, without a methodology or a framework. Just a notebook, good questions, and the habit of listening before building.&lt;/p&gt;




&lt;p&gt;Here's what Oran knows now that he didn't know on day one:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI is a tool, not a teacher.&lt;/strong&gt; It writes code when you tell it what to write. But it can't sit with Duke and watch how receiving actually works. It can't read Ms. Lin's face when she says "who changed that number." It can't stand in a conference room and feel the silence when nobody understands your slide. The decisions that matter — what to build, for whom, and why — those are still yours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SQL is a thinking language.&lt;/strong&gt; Not just a query language. When you model a business process in tables and relationships, you're forced to be precise. "Approval" stops being a vague word and becomes: who approves, at what threshold, in what order, and what's the record. The database doesn't accept hand-waving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Translation is the real skill.&lt;/strong&gt; A developer who can explain a system to the warehouse manager AND model it in SQL AND implement it in code — that person isn't just a programmer. That person is the architect, the analyst, and the project manager. In a small company, that's the whole IT department.&lt;/p&gt;




&lt;p&gt;Oran started the production scheduling project the next Monday. This time, he didn't open Cursor first.&lt;/p&gt;

&lt;p&gt;He grabbed his notebook and walked to the factory floor.&lt;/p&gt;




&lt;p&gt;One year later, Rust-Belt Manufacturing has four internal systems — all designed by Oran, all running on the same permission model, all speaking human to the teams that use them.&lt;/p&gt;

&lt;p&gt;Oran still writes prompts. He still uses AI to code faster. But he decides &lt;em&gt;what&lt;/em&gt; to build before he decides &lt;em&gt;how&lt;/em&gt; to build it.&lt;/p&gt;

&lt;p&gt;He's an orange cat with no CS degree who became the IT backbone of a factory.&lt;/p&gt;

&lt;p&gt;Not because he could code.&lt;/p&gt;

&lt;p&gt;Because he could listen, design, and translate.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Thanks for following Oran's story. If the permission system chapters sounded familiar — the 5-table schema, the audit trail, the feature-level access controls — I wrote the complete technical guide:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;📘 &lt;strong&gt;&lt;a href="https://syslayer.gumroad.com/l/rbac-permission-system-sql" rel="noopener noreferrer"&gt;How to Build an RBAC Permission System — Complete SQL Edition&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;85 pages. PostgreSQL, MySQL 8+, SQL Server. The guide Oran wished he had on day one.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://syslayer.gumroad.com" rel="noopener noreferrer"&gt;SysLayer&lt;/a&gt; — Practical backend guides for developers who build real products.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Try it Now! &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://syslayer.it.com/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;syslayer.it.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>programming</category>
      <category>systemdesign</category>
      <category>sql</category>
    </item>
    <item>
      <title>Coding Cat Oran Ep4, Speaking Human</title>
      <dc:creator>SysLayer</dc:creator>
      <pubDate>Fri, 17 Apr 2026 00:59:49 +0000</pubDate>
      <link>https://dev.to/syslayer/coding-cat-oran-ep4-speaking-human-3452</link>
      <guid>https://dev.to/syslayer/coding-cat-oran-ep4-speaking-human-3452</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xii9gq6qfjo8uff4hls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xii9gq6qfjo8uff4hls.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The boss called a company-wide meeting. Twenty minutes, conference room, Friday 2pm.&lt;/p&gt;

&lt;p&gt;"Oran, you'll present the new system. Show everyone how it works."&lt;/p&gt;

&lt;p&gt;Oran had three days to prepare. He felt ready. He'd rebuilt the permission layer, redesigned the inventory module, added the approval workflow. The system was solid.&lt;/p&gt;

&lt;p&gt;He made a slide deck. Fifteen slides. Entity-relationship diagrams. SQL snippets. A flowchart of the permission check logic. Technical. Thorough. Accurate.&lt;/p&gt;

&lt;p&gt;Friday came. Oran stood in front of the room. Duke and the warehouse crew in the back row. Ms. Lin in the front. The factory floor supervisor. The sales team. The GM.&lt;/p&gt;

&lt;p&gt;Oran clicked to the first slide: an ER diagram with five tables and foreign key arrows.&lt;/p&gt;

&lt;p&gt;The room went silent. Not the good kind.&lt;/p&gt;




&lt;p&gt;He lost them in ninety seconds.&lt;/p&gt;

&lt;p&gt;Duke leaned over to a coworker and whispered something. Ms. Lin politely took out her phone. The GM was nodding — but the way people nod when they want you to finish faster.&lt;/p&gt;

&lt;p&gt;Oran made it through seven slides before the GM raised his hand.&lt;/p&gt;

&lt;p&gt;"Oran. I believe you. The system works. But I have one question."&lt;/p&gt;

&lt;p&gt;"Yes?"&lt;/p&gt;

&lt;p&gt;"Can you tell me, in plain words, what this system does for us? Not how it's built. What it &lt;em&gt;does&lt;/em&gt;."&lt;/p&gt;

&lt;p&gt;Oran opened his mouth. Then closed it.&lt;/p&gt;

&lt;p&gt;He had spent weeks building the system. He could explain every table, every join, every constraint. But he couldn't say, in one sentence, what it meant for the people in this room.&lt;/p&gt;




&lt;p&gt;That weekend, Oran sat at his kitchen table and rewrote everything.&lt;/p&gt;

&lt;p&gt;Not the code. The words.&lt;/p&gt;

&lt;p&gt;He realized that technical people think in &lt;strong&gt;structure&lt;/strong&gt; — tables, relationships, data flow. But everyone else thinks in &lt;strong&gt;outcomes&lt;/strong&gt; — what can I do, what changes for me, what problems go away.&lt;/p&gt;

&lt;p&gt;He needed to translate.&lt;/p&gt;

&lt;p&gt;He made a new deck. Three slides.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slide 1: "What changes for you"&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"You'll log in and see only what's relevant to your job. Warehouse sees inventory. Finance sees billing. No clutter, no confusion."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Slide 2: "What you can trust"&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Every approval, every change, every access grant is recorded. If you ever need to ask 'who did this and when' — the system has the answer."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Slide 3: "What you control"&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"New hire? Your department head assigns them a role. No ticket to IT. They get exactly the access they need — nothing more, nothing less."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No ER diagrams. No SQL. No arrows.&lt;/p&gt;




&lt;p&gt;Monday. Oran presented again. Same room. Same people.&lt;/p&gt;

&lt;p&gt;This time, Duke nodded — the real kind. Ms. Lin put her phone away. The sales team asked questions. Good questions. "Can I get a weekly report of my orders?" "Can we add a read-only role for the auditor who comes quarterly?"&lt;/p&gt;

&lt;p&gt;The GM said, "This is what I wanted to hear last week."&lt;/p&gt;

&lt;p&gt;Oran learned something that day that wasn't in any course he'd bought:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The system doesn't exist until people understand it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can build the most elegant schema in the world. If you can't explain it to Duke in one sentence, it doesn't matter.&lt;/p&gt;




&lt;p&gt;And here's the thing — this skill made Oran a better developer too.&lt;/p&gt;

&lt;p&gt;When he forced himself to describe the permission system as "you see only what's relevant to your job," he immediately spotted a gap in his own design. He hadn't built a dashboard that showed users their own access. He'd built the backend but forgot the human-facing layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Translating tech into human language isn't dumbing it down. It's a design review in disguise.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every time you explain a feature in plain words and it sounds confusing — that's a sign the feature itself is confused.&lt;/p&gt;




&lt;p&gt;Oran went back to his desk and added three things to his system:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A "My Access" page where users see their own permissions in plain language&lt;/li&gt;
&lt;li&gt;A role summary page for department heads — no SQL, just a clean table&lt;/li&gt;
&lt;li&gt;Notification emails when access changes: &lt;em&gt;"You've been granted the Warehouse Staff role by Duke on March 15."&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Small features. Huge difference. Because now the system spoke human.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Next episode:&lt;/strong&gt; Six months later. The GM asks Oran to lead the next project. Oran isn't just the developer anymore — he's the one who decides what gets built. The orange cat grows into a role nobody hired him for.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Oran's journey is brought to you by &lt;a href="https://syslayer.gumroad.com" rel="noopener noreferrer"&gt;SysLayer&lt;/a&gt; — practical backend guides for developers who build real products.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Try SQL Generator Now! &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://syslayer.it.com/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;syslayer.it.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>sql</category>
      <category>developer</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Coding Cat Oran Ep3, Five Tables Changed Everything</title>
      <dc:creator>SysLayer</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:12:43 +0000</pubDate>
      <link>https://dev.to/syslayer/coding-cat-oran-ep3-five-tables-changed-everything-1094</link>
      <guid>https://dev.to/syslayer/coding-cat-oran-ep3-five-tables-changed-everything-1094</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flg30u92igm6zm5u10u5u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flg30u92igm6zm5u10u5u.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oran spent two weeks doing something that felt like not working.&lt;/p&gt;

&lt;p&gt;He sat with the warehouse team during morning receiving. He watched Ms. Lin process purchase orders after lunch. He stood on the factory floor while the supervisor assigned shifts. He even attended the Monday management meeting — the only cat in a room full of dogs — and took notes.&lt;/p&gt;

&lt;p&gt;He didn't write a single line of code.&lt;/p&gt;

&lt;p&gt;But he filled an entire notebook.&lt;/p&gt;




&lt;p&gt;Patterns started showing up.&lt;/p&gt;

&lt;p&gt;Every department had the same complaint in different words:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Warehouse: "We shouldn't see pricing."&lt;/li&gt;
&lt;li&gt;Finance: "We need to know who approved what."&lt;/li&gt;
&lt;li&gt;Production: "The supervisor can assign shifts, but only the manager can approve overtime."&lt;/li&gt;
&lt;li&gt;Sales: "I need to see orders but not cost breakdowns."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oran stared at his notebook. All of these were the same problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who can do what. And who said they could.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;He went back to his AI tools and prompted: &lt;em&gt;"best way to handle permissions in a web application."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The AI gave him a middleware snippet with hardcoded role checks. &lt;code&gt;if role == 'admin'&lt;/code&gt;. &lt;code&gt;if role == 'manager'&lt;/code&gt;. The same pattern he'd already built. The same pattern that broke.&lt;/p&gt;

&lt;p&gt;So Oran did something he hadn't done before. He closed the AI and opened Google. Then a textbook. Then a blog post from someone who had clearly been through the same pain.&lt;/p&gt;

&lt;p&gt;He found RBAC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Role-Based Access Control.&lt;/strong&gt; Not a framework. Not a library. A design pattern. And at its core, a data model — five tables in a relational database.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;users&lt;/code&gt;. &lt;code&gt;roles&lt;/code&gt;. &lt;code&gt;permissions&lt;/code&gt;. And two mapping tables to connect them.&lt;/p&gt;

&lt;p&gt;The idea was simple: &lt;strong&gt;permissions are data, not code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You don't write &lt;code&gt;if role == 'warehouse_lead'&lt;/code&gt; in your application. You store &lt;code&gt;warehouse_lead → inventory:read, inventory:update&lt;/code&gt; in the database. The app asks one question: &lt;em&gt;does this user have this permission?&lt;/em&gt; A single SQL query answers it.&lt;/p&gt;




&lt;p&gt;This changed how Oran thought about everything.&lt;/p&gt;

&lt;p&gt;Suddenly, Duke's requirement — "my guys shouldn't see pricing" — wasn't a special case. It was a permission row: &lt;code&gt;warehouse_staff&lt;/code&gt; role gets &lt;code&gt;inventory:read&lt;/code&gt; but not &lt;code&gt;pricing:read&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Ms. Lin's approval chain? The &lt;code&gt;granted_by&lt;/code&gt; and &lt;code&gt;granted_at&lt;/code&gt; columns on the role assignment table. Every permission change is a row. Every row is an audit record.&lt;/p&gt;

&lt;p&gt;The production supervisor approving shifts but not overtime? Two different permissions: &lt;code&gt;shifts:assign&lt;/code&gt; and &lt;code&gt;overtime:approve&lt;/code&gt;. One role has both. One role has only the first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No &lt;code&gt;if/else&lt;/code&gt;. No spaghetti. Just data.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;But here's what really clicked for Oran. The 5-table model wasn't just a technical solution. It was a &lt;strong&gt;communication tool&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;He drew the schema on a whiteboard and walked Ms. Lin through it. "This table is your list of people. This table is the list of roles — think of them as job titles for system access. This table is every action the system can do. And these two tables connect them."&lt;/p&gt;

&lt;p&gt;Ms. Lin nodded. "So if I want to give the new accountant the same access as me, you just..."&lt;/p&gt;

&lt;p&gt;"Copy your role assignments. One query. No code change."&lt;/p&gt;

&lt;p&gt;"And I can see who has what access?"&lt;/p&gt;

&lt;p&gt;"One report. Anytime."&lt;/p&gt;

&lt;p&gt;Ms. Lin smiled for the first time since Oran started.&lt;/p&gt;




&lt;p&gt;That night, Oran rebuilt the permission layer. AI helped him write the SQL faster — but the design was his. Every table, every column, every constraint came from the notebook he filled during those two weeks of watching and listening.&lt;/p&gt;

&lt;p&gt;He was learning a lesson most developers take years to learn:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SQL isn't just storage. It's where business logic lives.&lt;/strong&gt; The approval threshold ($5,000) is a value in a table. The permission boundary is a row in a mapping table. The audit trail is a timestamp on every change.&lt;/p&gt;

&lt;p&gt;When business rules live in the database, they survive framework migrations, language rewrites, and developer turnover. They survive even when the only dev at the company is one orange cat.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Next episode:&lt;/strong&gt; The boss asks Oran to present the system to the whole company. Oran learns that explaining a database to non-technical people is a skill nobody taught him — and maybe the most important one.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Oran's journey is brought to you by &lt;a href="https://syslayer.gumroad.com" rel="noopener noreferrer"&gt;SysLayer&lt;/a&gt; — practical backend guides for developers who build real products.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Try SQL Generator Now! &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://syslayer.it.com/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;syslayer.it.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>sql</category>
      <category>systemdesign</category>
      <category>programming</category>
      <category>backend</category>
    </item>
    <item>
      <title>Coding Cat Oran Ep2, What They Said vs. What They Meant</title>
      <dc:creator>SysLayer</dc:creator>
      <pubDate>Wed, 15 Apr 2026 12:06:15 +0000</pubDate>
      <link>https://dev.to/syslayer/coding-cat-oran-ep2-what-they-said-vs-what-they-meant-339m</link>
      <guid>https://dev.to/syslayer/coding-cat-oran-ep2-what-they-said-vs-what-they-meant-339m</guid>
      <description>&lt;p&gt;Meets real users, gets humbled&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdaj0ma4xbsl7qr3c7790.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdaj0ma4xbsl7qr3c7790.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Monday morning. Oran walked into Rust-Belt Manufacturing feeling good. The prototype was live on a staging server. The boss loved it. Time to collect feedback and polish.&lt;/p&gt;

&lt;p&gt;He started with the warehouse team.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The warehouse manager, a bulldog named Duke&lt;/strong&gt;, stared at the screen for thirty seconds. Then he said:&lt;/p&gt;

&lt;p&gt;"Where's the receiving log?"&lt;/p&gt;

&lt;p&gt;"The... what?"&lt;/p&gt;

&lt;p&gt;"When parts come in, we log them. Quantity, supplier, condition. Then we confirm against the purchase order. Then we shelf it. Your system just has 'inventory.' That's not how this works."&lt;/p&gt;

&lt;p&gt;Oran opened his prompt history. He had typed &lt;em&gt;"inventory tracking."&lt;/em&gt; The AI gave him a table with &lt;code&gt;item_name&lt;/code&gt;, &lt;code&gt;quantity&lt;/code&gt;, and &lt;code&gt;location&lt;/code&gt;. Clean. Simple. Completely wrong.&lt;/p&gt;

&lt;p&gt;Duke wasn't done. "Also — my guys on the floor shouldn't see pricing. Ever. But they need to adjust quantities when they do a physical count. Your system shows everything or nothing."&lt;/p&gt;

&lt;p&gt;Oran wrote it all down on paper. His paw was shaking a little.&lt;/p&gt;




&lt;p&gt;Next stop: &lt;strong&gt;finance. A Persian cat named Ms. Lin&lt;/strong&gt; who had been doing the books for 15 years.&lt;/p&gt;

&lt;p&gt;"This purchase order screen," she said, adjusting her glasses. "Who approves it?"&lt;/p&gt;

&lt;p&gt;"The admin can approve—"&lt;/p&gt;

&lt;p&gt;"No. Department head approves under $5,000. GM approves above. And I need to see the approval chain afterward. Who requested, who approved, when."&lt;/p&gt;

&lt;p&gt;Oran looked at his system. He had one field: &lt;code&gt;status: approved/pending&lt;/code&gt;. No &lt;code&gt;approved_by&lt;/code&gt;. No &lt;code&gt;approved_at&lt;/code&gt;. No threshold logic. No chain.&lt;/p&gt;

&lt;p&gt;Ms. Lin looked at him the way only a Persian cat can.&lt;/p&gt;

&lt;p&gt;"Young cat, let me tell you something. The old system was an Excel sheet. It was terrible. But at least I could see who changed what in the edit history. Your new system doesn't even have that."&lt;/p&gt;

&lt;p&gt;That one hurt.&lt;/p&gt;




&lt;p&gt;Oran went back to his desk and stared at his code. He realized something that no online course had taught him:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Users don't describe systems. They describe their day.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Duke didn't say "I need a goods receiving module with PO matching." He said "when parts come in, we log them." Ms. Lin didn't say "I need a multi-level approval workflow with an audit trail." She said "who approves it?"&lt;/p&gt;

&lt;p&gt;The requirements doc had said &lt;strong&gt;"manage inventory"&lt;/strong&gt; and &lt;strong&gt;"role-based access."&lt;/strong&gt; Those words were technically correct. But they were a summary of a summary. The real requirements were buried inside the daily routines of people who never think in database tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oran's job was to translate.&lt;/strong&gt; Not from English to Python. From &lt;em&gt;human workflow&lt;/em&gt; to &lt;em&gt;system design&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;And AI couldn't do that part. AI never met Duke. AI never saw Ms. Lin's face when she said "who changed what."&lt;/p&gt;




&lt;p&gt;That night, Oran didn't write any code. He made a list instead:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go back to every department&lt;/li&gt;
&lt;li&gt;Watch them work — don't just ask what they need&lt;/li&gt;
&lt;li&gt;Write down what they &lt;em&gt;do&lt;/em&gt;, not what they &lt;em&gt;say&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Then — only then — design the tables&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;He taped it above his monitor.&lt;/p&gt;

&lt;p&gt;He was starting to think like an SA without knowing what an SA was.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Next episode:&lt;/strong&gt; Oran redesigns the system. He discovers that the hardest part isn't building features — it's deciding who gets to see what, and why.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Oran's journey is brought to you by &lt;a href="https://syslayer.gumroad.com" rel="noopener noreferrer"&gt;SysLayer&lt;/a&gt; — practical backend guides for developers who build real products.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Try SQL Generator Now! &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://syslayer.it.com/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;syslayer.it.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>programming</category>
      <category>systemdesign</category>
      <category>interview</category>
    </item>
    <item>
      <title>Coding Cat Oran Ep1, The Prompt Programmer.</title>
      <dc:creator>SysLayer</dc:creator>
      <pubDate>Tue, 14 Apr 2026 06:30:03 +0000</pubDate>
      <link>https://dev.to/syslayer/coding-cat-oran-ep1-the-prompt-programmer-2i9d</link>
      <guid>https://dev.to/syslayer/coding-cat-oran-ep1-the-prompt-programmer-2i9d</guid>
      <description>&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtg2gef2k9jjqry6ytqh.png" alt=" " width="800" height="800"&gt;
&lt;/h2&gt;

&lt;p&gt;title: "Oran the Dev Cat — Ep.1: The Prompt Programmer"&lt;br&gt;
published: true&lt;br&gt;
series: "Oran the Dev Cat"&lt;/p&gt;
&lt;h2&gt;
  
  
  tags: beginners, webdev, career, programming
&lt;/h2&gt;

&lt;p&gt;Oran is an orange cat with no computer science degree.&lt;/p&gt;

&lt;p&gt;He learned to code the way most cats do — late at night, alone, watching online courses he bought on sale. JavaScript. Python. A little SQL. Enough to build things that work, not enough to explain why they work.&lt;/p&gt;

&lt;p&gt;But Oran could build. And in 2025, that was enough to get hired.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Rust-Belt Manufacturing&lt;/strong&gt; is a mid-size factory two hours from the nearest tech hub. They make industrial parts — bolts, brackets, fittings. The kind of stuff that holds bridges together but never trends on Twitter.&lt;/p&gt;

&lt;p&gt;They posted one job listing: &lt;strong&gt;"IT Developer — build our internal systems."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No mention of a team. No mention of an architect or a QA engineer. Just one line at the bottom:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"We need someone who can figure things out."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Oran applied. Oran got the job.&lt;/p&gt;



&lt;p&gt;Day one. Oran got a desk, a laptop, and a requirements doc — three pages, written by the factory manager in bullet points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track production orders&lt;/li&gt;
&lt;li&gt;Manage inventory&lt;/li&gt;
&lt;li&gt;Let different departments see different things&lt;/li&gt;
&lt;li&gt;"Make it like SAP but simple"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oran opened Cursor, cracked his knuckles, and started prompting.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Build a production order management system with 
 inventory tracking, user login, and role-based 
 access. Use Python, FastAPI, PostgreSQL."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Code poured out. Models, routes, schemas, migrations. Oran reviewed it, tweaked a few things, prompted again. By Wednesday he had a working prototype. By Friday he demoed it to the boss.&lt;/p&gt;

&lt;p&gt;"This is great," the boss said. "Ship it."&lt;/p&gt;

&lt;p&gt;Oran felt invincible. He wrote a tweet that night:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Day 5 at new job. Full system prototype done. AI is the real senior developer. 🐱"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He got 47 likes. A reply said "king." Another said "this is the future of engineering."&lt;/p&gt;

&lt;p&gt;Oran believed them.&lt;/p&gt;



&lt;p&gt;But here's what Oran didn't notice during his speed run:&lt;/p&gt;

&lt;p&gt;He never talked to the warehouse team. He never sat with the finance department. He never asked anyone what "different departments see different things" actually meant in practice.&lt;/p&gt;

&lt;p&gt;He built what the requirements doc said. Word for word. Prompt for prompt.&lt;/p&gt;

&lt;p&gt;He didn't know it yet, but &lt;strong&gt;the requirements doc was wrong.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not wrong as in typos. Wrong as in — the factory manager wrote what he &lt;em&gt;thought&lt;/em&gt; the system should do, not what the teams &lt;em&gt;actually needed&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;And Oran, riding high on demo-day dopamine, didn't think to question it.&lt;/p&gt;

&lt;p&gt;That would come on Monday.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Next episode:&lt;/strong&gt; Oran meets the users. And learns that "role-based access" means something very different to the warehouse manager, the accountant, and the factory floor supervisor.&lt;/p&gt;



&lt;p&gt;&lt;em&gt;Oran's journey is brought to you by &lt;a href="https://syslayer.gumroad.com" rel="noopener noreferrer"&gt;SysLayer&lt;/a&gt; — practical backend guides for developers &lt;br&gt;
who build real products.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Try SQL Generator Now! &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://syslayer.it.com/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;syslayer.it.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>development</category>
      <category>systemdesign</category>
      <category>junior</category>
      <category>database</category>
    </item>
  </channel>
</rss>
