<?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>Forem: SysLayer</title>
    <description>The latest articles on Forem by SysLayer (@syslayer).</description>
    <link>https://forem.com/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>Forem: SysLayer</title>
      <link>https://forem.com/syslayer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/syslayer"/>
    <language>en</language>
    <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://forem.com/syslayer/coding-cat-oran-ep4-speaking-human-3452</link>
      <guid>https://forem.com/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;

</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://forem.com/syslayer/coding-cat-oran-ep3-five-tables-changed-everything-1094</link>
      <guid>https://forem.com/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;

</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://forem.com/syslayer/coding-cat-oran-ep2-what-they-said-vs-what-they-meant-339m</link>
      <guid>https://forem.com/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;title: "Oran the Dev Cat — Ep.2: What They Said vs. What They Meant"&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;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;

</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://forem.com/syslayer/coding-cat-oran-ep1-the-prompt-programmer-2i9d</link>
      <guid>https://forem.com/syslayer/coding-cat-oran-ep1-the-prompt-programmer-2i9d</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%2Fjtg2gef2k9jjqry6ytqh.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%2Fjtg2gef2k9jjqry6ytqh.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&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 who build real products.&lt;/em&gt;&lt;/p&gt;

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