<?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: Jean-philippe Ulpiano</title>
    <description>The latest articles on Forem by Jean-philippe Ulpiano (@jeanphilippe_ulpiano_46b).</description>
    <link>https://forem.com/jeanphilippe_ulpiano_46b</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%2F3202011%2F68f07918-3031-4032-9114-57695272ba8b.jpg</url>
      <title>Forem: Jean-philippe Ulpiano</title>
      <link>https://forem.com/jeanphilippe_ulpiano_46b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jeanphilippe_ulpiano_46b"/>
    <language>en</language>
    <item>
      <title>Why the Junior Ghost Town is our biggest threat</title>
      <dc:creator>Jean-philippe Ulpiano</dc:creator>
      <pubDate>Sun, 25 Jan 2026 12:18:08 +0000</pubDate>
      <link>https://forem.com/jeanphilippe_ulpiano_46b/why-the-junior-ghost-town-is-our-biggest-threat-1apb</link>
      <guid>https://forem.com/jeanphilippe_ulpiano_46b/why-the-junior-ghost-town-is-our-biggest-threat-1apb</guid>
      <description>&lt;p&gt;💡 &lt;strong&gt;TL;DR:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blind prompting kills intuition,&lt;/li&gt;
&lt;li&gt;Refactoring must be human-led, &lt;/li&gt;
&lt;li&gt;Strong fundamentals matter more than ever. &lt;/li&gt;
&lt;li&gt;The future belongs to high-impact architects who can direct intent, mentor juniors, and keep the steering wheel as AI accelerates everything.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The era of the "Keyboard Monkey" is dying.
&lt;/h2&gt;

&lt;p&gt;Complexity used to be a wall. Now, it’s a choice.&lt;/p&gt;

&lt;p&gt;I just turned a &lt;strong&gt;2-week multi stack project&lt;/strong&gt; (&lt;a href="https://dev.to/jeanphilippe_ulpiano_46b/your-child-is-still-awake-raising-kids-in-a-world-of-screens-and-ai-1kk7"&gt;here!&lt;/a&gt;) into a &lt;strong&gt;24-hour "Vibe Coding"&lt;/strong&gt; session. By using &lt;strong&gt;LLMs as a force multiplier&lt;/strong&gt; rather than a replacement. The "Keyboard Monkey" era—the age of syntax-grinding and boilerplate-battling—is officially over.&lt;/p&gt;

&lt;p&gt;We are transitioning from typists to orchestrators, and &lt;strong&gt;if you aren't prepared for the "Dark Side" of this shift&lt;/strong&gt;, you're already behind.&lt;/p&gt;

&lt;p&gt;AI is not a replacement for human talent; it is a force multiplier that reaches its peak only in deep &lt;strong&gt;collaboration with us&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;By &lt;em&gt;Vibe Coding,&lt;/em&gt; I don’t mean prompting blindly—I mean rapidly iterating with an LLM while keeping architectural intent and final control firmly human.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Velocity: 2 Weeks of Work in 24 Hours
&lt;/h2&gt;

&lt;p&gt;The "vibe" isn't just about speed; it's about the removal of friction and the quality.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Boilerplate is dead:&lt;/strong&gt; Low-value configuration that used to eat hours is now gone in seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Skeleton" Strategy:&lt;/strong&gt; I found that letting the LLM generate the initial architecture is incredibly powerful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Practices by Default:&lt;/strong&gt; Even in areas where I wasn't a master, the generated code followed solid design patterns I might have overlooked under a tight manual deadline.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Dark Side
&lt;/h2&gt;

&lt;p&gt;But let’s be real—&lt;strong&gt;this isn't a free lunch&lt;/strong&gt;. There is a "darkness" creeping into our workflow that we must address.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Death of Intuition
&lt;/h3&gt;

&lt;p&gt;I noticed a &lt;strong&gt;dangerous reflex&lt;/strong&gt;: the moment something broke, my first instinct wasn't to analyze the root cause—it was to describe it to the LLM. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We are trading our diagnostic intuition for &lt;strong&gt;prompt-response loops&lt;/strong&gt;. &lt;/li&gt;
&lt;li&gt;If we lose our "gut feeling" for why a system fails, we become nothing more than high-paid copy-pasters.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. The Refactoring Trap
&lt;/h3&gt;

&lt;p&gt;Vibe coding is a &lt;strong&gt;chainsaw, not a scalpel.&lt;/strong&gt; When I tried to hand over the "steering wheel" to the LLM for deep refactoring or consolidation, the &lt;strong&gt;results were disastrous&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;code drifted&lt;/strong&gt;, &lt;/li&gt;
&lt;li&gt;Requirements blurred, &lt;/li&gt;
&lt;li&gt;And I felt control slipping through my fingers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The solution was not less AI—it was a &lt;strong&gt;reversal of control&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I started analyzing the code myself first, manually identifying exactly what needed to improve. &lt;/li&gt;
&lt;li&gt;Only then did I bring in the LLM—not to "fix it," but to offer targeted suggestions on specific designs, architectures, or logic blocks. &lt;/li&gt;
&lt;li&gt;The result of this targeted approach was &lt;strong&gt;impressive&lt;/strong&gt; no matter whether I was drilling into 

&lt;ul&gt;
&lt;li&gt;the React frontend, &lt;/li&gt;
&lt;li&gt;the node &lt;strong&gt;backend&lt;/strong&gt;, &lt;/li&gt;
&lt;li&gt;a DB design,&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;low-level Linux&lt;/strong&gt; command.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;By &lt;strong&gt;iterating&lt;/strong&gt; on this approach, the quality didn't just improve; it compounded. This process proved a fundamental point: &lt;strong&gt;The collaboration between human and LLM is incredibly powerful&lt;/strong&gt;, but &lt;strong&gt;it requires a very clear technical understanding&lt;/strong&gt; to succeed. &lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;not a shortcut for the lazy&lt;/strong&gt;. For this to work, both the human and the LLM need to be operating at the highest level. You provide the surgical intent; the LLM provides the specialized execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The Requirement Paradox
&lt;/h3&gt;

&lt;p&gt;Even with a crystal-clear vision, the LLM remains a "black box" of intent. It can &lt;strong&gt;hallucinate on even the smallest tasks&lt;/strong&gt;, delivering a "mostly-right" application that is riddled with bugs and &lt;strong&gt;misses your core objectives&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Despite the leaps in model capability, the power dynamic hasn't changed: &lt;strong&gt;the LLM is the engine, but you must remain the steering wheel&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Future belongs to the "High-Impact" Architect
&lt;/h2&gt;

&lt;p&gt;The days of coasting by with &lt;strong&gt;sub optimal technical knowledge&lt;/strong&gt; are over. To thrive in the era of Vibe Coding, you need a stronger technical foundation than ever before. You must:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Understand every line&lt;/strong&gt; of generated code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anticipate side effects&lt;/strong&gt; between the client, server, and OS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Master the fundamentals&lt;/strong&gt; (Linux, Architecture, Logic) to keep the LLM from veering off-course.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The shift is clear:&lt;/strong&gt; Our jobs are moving from "typing code" to "directing intent." We are becoming &lt;strong&gt;orchestrators&lt;/strong&gt; of &lt;strong&gt;immense complexity&lt;/strong&gt; at an &lt;strong&gt;unmatched pace&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Looming Crisis: The "Junior" Ghost Town
&lt;/h2&gt;

&lt;p&gt;There is a &lt;strong&gt;dangerous trend&lt;/strong&gt; emerging: the neglect of junior developers.&lt;/p&gt;

&lt;p&gt;We see the logic being pushed by LLM CEOs—selling a dream where senior "Prompt Engineers" replace entire teams. &lt;/p&gt;

&lt;p&gt;This is a short-sighted delusion. &lt;/p&gt;

&lt;p&gt;LLMs are the tools of tomorrow meant to help us build a vastly more sophisticated world. Using them merely to replace developers for today’s complexity problems is &lt;strong&gt;missing the point entirely&lt;/strong&gt;. It is a &lt;strong&gt;strategy born of investor-driven myopia&lt;/strong&gt;—seeking maximal profits while &lt;strong&gt;possessing minimal vision&lt;/strong&gt;. They aren't just optimizing; they are cannibalizing the future of technology.&lt;/p&gt;

&lt;p&gt;I will likely be retiring in less than 15 years, followed by a massive cohort of current senior architects. If we stop hiring and training juniors now because "the AI can do the entry-level work," we are burning the bridge to the future.&lt;/p&gt;

&lt;p&gt;By not preparing a path for the next generation of "High-Impact" developers, we aren't just killing a career path; we are killing the industry. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LLMs are trained on the output of human brilliance.&lt;/strong&gt; If we stop cultivating new human experts, the models themselves will eventually stagnate on a loop of their own mediocrity. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We need juniors to become the masters of tomorrow, or there will be no one left to hold the steering wheel.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;We are no longer defined by our ability to remember syntax or grind out boilerplate. &lt;/p&gt;

&lt;p&gt;We are defined by our taste, our architectural judgment, and our ability to mentor the next generation in a world moving at an incredible new speed.&lt;/p&gt;

&lt;p&gt;But don't be fooled by the fables of LLM CEOs pitching to investors; these models are &lt;strong&gt;stochastic&lt;/strong&gt;, not sentient. They are inherently non-deterministic, and that is precisely why they are both incredibly powerful and dangerously unpredictable. &lt;strong&gt;To master them, you must stop thinking of yourself as a typist and start seeing yourself as a pilot.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Think of it like the AMP (Amplified Mobility Platform) suits in Avatar: you are sitting inside an immense, powerful machine that you can control with just a few fingers. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The machine provides the brute strength and you provide the balance, the intent, and the soul.&lt;/strong&gt; But because it is not deterministic it can hallucinate,  you must ensure each action is carefully reviewed before it is ever applied or you will lose control.&lt;/p&gt;

&lt;p&gt;Much like the dawn of Cloud Computing, we are standing on the edge of a new frontier. When the cloud arrived, we didn't just get "faster hardware"; we unlocked new paradigms like serverless, auto-scalin, global resilience and many more at an incredible scale totally not imaginable a couple of years before. &lt;/p&gt;

&lt;p&gt;Vibe Coding is our next "Cloud moment." It is opening a door to use cases and features so complex they haven't even been defined yet.&lt;/p&gt;

&lt;p&gt;The "Keyboard Monkey" is dead. Long live the &lt;strong&gt;Human Orchestrator.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The tools have changed, the stakes have risen, and the horizon has just expanded. Now, it’s time to see what we can actually build when the impossible of yesterday becomes the baseline of tomorrow.&lt;/p&gt;




&lt;p&gt;I’m curious how you are balancing speed vs. intuition—especially when refactoring with LLMs. Where have you been burned?&lt;/p&gt;




&lt;p&gt;Special Thanks to &lt;a href="https://www.linkedin.com/in/ssarfraz76/" rel="noopener noreferrer"&gt;Sarfraz Siddiqui&lt;/a&gt; for reviewing this piece and providing invaluable feedback.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>📱 Your Child Is Still Awake: Raising Kids in a World of Screens and AI</title>
      <dc:creator>Jean-philippe Ulpiano</dc:creator>
      <pubDate>Sun, 18 Jan 2026 12:23:00 +0000</pubDate>
      <link>https://forem.com/jeanphilippe_ulpiano_46b/your-child-is-still-awake-raising-kids-in-a-world-of-screens-and-ai-1kk7</link>
      <guid>https://forem.com/jeanphilippe_ulpiano_46b/your-child-is-still-awake-raising-kids-in-a-world-of-screens-and-ai-1kk7</guid>
      <description>&lt;h2&gt;
  
  
  🕰️ Behind Closed Doors - The Night Parents Don’t See
&lt;/h2&gt;

&lt;p&gt;Giving children unrestricted access to the internet isn’t freedom—it’s exposure.&lt;/p&gt;

&lt;p&gt;Phones offer parental controls, limits, and visibility. Desktop computers don’t. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No curfews. &lt;/li&gt;
&lt;li&gt;No clear insight into when “homework” turns into hours of algorithm-driven content.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the time we notice the impact, habits are already formed: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fractured attention.&lt;/li&gt;
&lt;li&gt;Shifting motivation.&lt;/li&gt;
&lt;li&gt;Conflicts that strain trust at home.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technology is necessary for learning—but necessity doesn’t mean surrender.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If technology is shaping our children, then that’s exactly where the solution needs to start.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚠️ The New Frontier: Risks of Unrestricted Access
&lt;/h2&gt;

&lt;p&gt;Beyond the familiar distractions of social media, we are now facing &lt;strong&gt;new and documented dangers&lt;/strong&gt; in the digital landscape:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Impact of Constant Connectivity:&lt;/strong&gt; Research continues to highlight the &lt;a href="https://futurism.com/health-medicine/grim-happenings-kids-smartphones" rel="noopener noreferrer"&gt;grim effects of unrestricted smartphone and internet access&lt;/a&gt; on children, impacting mental health, sleep, and cognitive development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The YouTube “Attention Trap”:&lt;/strong&gt; Rapid, short-form video content is increasingly linked to &lt;a href="https://www.sciencealert.com/short-videos-could-have-an-insidious-effect-on-childrens-brains" rel="noopener noreferrer"&gt;reduced attention spans and hijacked reward systems&lt;/a&gt;, making it harder for children to focus on slower, effort-based tasks like studying.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The LLM “Empathy Gap”:&lt;/strong&gt; Large Language Models such as ChatGPT, Gemini, and Claude introduce unique psychological risks. Experts warn of an &lt;a href="https://www.cam.ac.uk/research/news/ai-chatbots-have-shown-they-have-an-empathy-gap-that-children-are-likely-to-miss?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;“empathy gap”&lt;/a&gt;, where children over-trust AI responses or mistake simulated understanding for human intent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Academic Erosion:&lt;/strong&gt; Recent MIT and Stanford research suggests that &lt;a href="https://time.com/7295195/ai-chatgpt-google-learning-school/" rel="noopener noreferrer"&gt;over-reliance on LLMs for schoolwork&lt;/a&gt; can lead to “cognitive laziness,” trading long-term brain development for short-term convenience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These risks aren’t hypothetical. They’re already here.&lt;/p&gt;




&lt;h2&gt;
  
  
  🦊 Introducing Firefox Manager
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Firefox Manager&lt;/strong&gt; is an open-source application designed to bring structure and boundaries back to desktop browsing.&lt;/p&gt;

&lt;p&gt;It allows parents to manage Firefox by creating a &lt;strong&gt;highly regulated environment&lt;/strong&gt;, where access is intentional, visible, and time-bound—without turning the computer into a constant source of conflict.&lt;/p&gt;




&lt;h2&gt;
  
  
  📸 Application Preview
&lt;/h2&gt;

&lt;p&gt;Here’s a glimpse of the interface and how straightforward it is to define rules and limits:&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%2Fp7t0in7bsm2xleda7qgr.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%2Fp7t0in7bsm2xleda7qgr.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow this link for a live demo: 👉 &lt;a href="https://timegate-ninja-prod.vercel.app/" rel="noopener noreferrer"&gt;Timegate Demo Env&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Quick Start: Setting Up Your Secure Environment
&lt;/h2&gt;

&lt;p&gt;Ready to take back control of your household’s digital wellness? Here’s how to get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Prepare the OS
&lt;/h3&gt;

&lt;p&gt;For the best balance between performance and security, I recommend installing &lt;strong&gt;XUbuntu&lt;/strong&gt; on your child’s computer. It’s lightweight, stable, and makes setup significantly easier than most other Linux distributions for this application. See below some blogs to support you.&lt;br&gt;
👉 &lt;a href="https://pendrivelinux.com/put-xubuntu-on-usb-flash-drive-with-windows/" rel="noopener noreferrer"&gt;Put Xubuntu on USB Flash Drive | Windows or Linux&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://documentation.ubuntu.com/desktop/en/latest/how-to/create-a-bootable-usb-stick/" rel="noopener noreferrer"&gt;Create a bootable USB stick&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://medium.com/studevs/create-bootable-usb-media-in-ubuntu-using-balenaetcher-53f4b4010111" rel="noopener noreferrer"&gt;Create Bootable USB Media in Ubuntu Using BalenaEtcher&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Get the Application
&lt;/h3&gt;

&lt;p&gt;Clone the repository to your local machine or server:&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/2BlackCoffees" rel="noopener noreferrer"&gt;
        2BlackCoffees
      &lt;/a&gt; / &lt;a href="https://github.com/2BlackCoffees/firefox-manager" rel="noopener noreferrer"&gt;
        firefox-manager
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A professional-grade parent control system for Ubuntu/Xubuntu that uses Firefox Enterprise Policies and systemd services to create a "Safe-by-Default" internet environment.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Firefox Managed Session Controller (2025)&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Disclaimer: This tool is a &lt;strong&gt;technical&lt;/strong&gt; aid. &lt;strong&gt;No software can replace active parental involvement&lt;/strong&gt; and open communication regarding internet safety.&lt;/p&gt;
&lt;p&gt;This project provides a robust &lt;strong&gt;system-wide lockdown and timer service&lt;/strong&gt; for Firefox on Ubuntu/Xubuntu. It is specifically designed to create a "Safe-by-Default" environment for children by maintaining a strict whitelist of educational sites while providing controlled, timed access to the broader internet via a command-line interface.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🛡️ Child Safety &amp;amp; Protection Features&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Modern technology is a double-edged sword: while access to AI and the open web is essential for digital literacy in 2026, it introduces significant risks to younger users. This tool implements a &lt;strong&gt;"Whitelist-Only" architecture&lt;/strong&gt;, recognized by safety experts as the gold standard for protecting children from unvetted content.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;The Challenge&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;While mobile devices often have robust parental controls, desktop environments (especially Linux) can be harder to secure. Research from 2024 and 2025…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/2BlackCoffees/firefox-manager" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;




&lt;h3&gt;
  
  
  3. Configure Whitelists &amp;amp; Limits
&lt;/h3&gt;

&lt;p&gt;Open Firefox Manager and define your rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🛡️ The Safe Zone:&lt;/strong&gt; Add educational websites to a &lt;strong&gt;Whitelist&lt;/strong&gt;. These sites remain accessible at all times and do &lt;em&gt;not&lt;/em&gt; count against daily usage limits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⏳ The Restricted Zone:&lt;/strong&gt; Add high-distraction platforms or AI tools such as &lt;strong&gt;YouTube&lt;/strong&gt;, &lt;strong&gt;ChatGPT&lt;/strong&gt;, or &lt;strong&gt;Claude&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌍 Remote “On-Demand” Access:&lt;/strong&gt; Need to grant 15 extra minutes while you’re at work? You can authorize time from &lt;strong&gt;anywhere in the world&lt;/strong&gt; via the web app, and the change applies in seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Define a “Digital Bedtime”
&lt;/h3&gt;

&lt;p&gt;Set &lt;strong&gt;Time Windows&lt;/strong&gt; to protect sleep and routines. For example, block all browser activity before 8:00 AM and after 8:30 PM to ensure the computer doesn’t quietly take over the night.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Because Firefox Manager is open source, you have full visibility into how your child’s data is handled. No hidden tracking. No cloud surveillance. Just local, transparent control.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🔑 Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Granular Whitelisting:&lt;/strong&gt; Define exactly which educational pages are always allowed.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Timed Access:&lt;/strong&gt; Grant specific daily limits, for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;30 minutes of &lt;strong&gt;YouTube&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;15 minutes of &lt;strong&gt;ChatGPT / Claude&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic Enforcement:&lt;/strong&gt; When time runs out, access is blocked—no arguments, no negotiations.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Time Windows:&lt;/strong&gt; Define the &lt;em&gt;earliest&lt;/em&gt; start time and &lt;em&gt;latest&lt;/em&gt; end time to prevent late-night browsing.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; You can even pre-authorize time for the next day. Access remains blocked until the next allowed window begins.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  📱 Cross-Platform Management
&lt;/h2&gt;

&lt;p&gt;Firefox Manager isn’t limited to the desktop. You can install it as a &lt;strong&gt;Progressive Web App (PWA)&lt;/strong&gt; on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;li&gt;iPhone&lt;/li&gt;
&lt;li&gt;Any modern browser&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows you to adjust limits, grant time, or check usage remotely—no matter where you are.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏁 Conclusion
&lt;/h2&gt;

&lt;p&gt;We can’t remove technology from our children’s lives—and we shouldn’t. But we &lt;em&gt;can&lt;/em&gt; remove chaos, invisibility, and unchecked influence.&lt;/p&gt;

&lt;p&gt;By using open-source tools like &lt;strong&gt;Firefox Manager&lt;/strong&gt;, we can give children access to the digital world they need for learning—while protecting them from the darker side of unrestricted AI, video platforms, and algorithm-driven content.&lt;/p&gt;

&lt;p&gt;This isn’t about control.&lt;br&gt;
It’s about guidance.&lt;br&gt;
And it’s about showing up &lt;em&gt;before&lt;/em&gt; the damage is done.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤝 Community Discussion: Let’s Share Ideas
&lt;/h2&gt;

&lt;p&gt;Managing digital wellness is an evolving challenge. I’ve shared my approach—&lt;em&gt;fighting tech with tech&lt;/em&gt;—through &lt;strong&gt;Firefox Manager&lt;/strong&gt;, but I’d love to hear from this community of builders and parents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What’s your approach?&lt;/strong&gt; Network-level blocking (Pi-hole, NextDNS), custom scripts, or behavioral rules?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feature Ideas:&lt;/strong&gt; What’s missing from desktop screen-time management today?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reducing Screen Time:&lt;/strong&gt; Beyond blocking, what strategies have actually worked in your home?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How are you protecting your family’s digital space? Share your projects, scripts, or ideas in the comments below.&lt;/strong&gt;&lt;/p&gt;




</description>
      <category>opensource</category>
      <category>parenting</category>
      <category>firefox</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Why Autogenerated Unit Tests Can Be An Anti-Pattern</title>
      <dc:creator>Jean-philippe Ulpiano</dc:creator>
      <pubDate>Sat, 09 Aug 2025 07:55:05 +0000</pubDate>
      <link>https://forem.com/jeanphilippe_ulpiano_46b/why-autogenerated-unit-tests-can-be-an-anti-pattern-3a4j</link>
      <guid>https://forem.com/jeanphilippe_ulpiano_46b/why-autogenerated-unit-tests-can-be-an-anti-pattern-3a4j</guid>
      <description>&lt;p&gt;We are all excited about the potential of Generative AI (GenAI) to boost our productivity. However, it's crucial to critically evaluate where and how we apply these tools, especially in areas like software testing. This post explores why relying solely on GenAI to &lt;em&gt;generate&lt;/em&gt; unit tests can be an anti-pattern, ultimately undermining the very purpose of testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Core Purpose of Unit Tests
&lt;/h3&gt;

&lt;p&gt;Unit tests are about verifying that the code &lt;em&gt;we&lt;/em&gt; write aligns with &lt;em&gt;our&lt;/em&gt; intended design and discover bugs as early as possible. They force us, as developers, to clearly articulate the behavior we expect from a specific unit of code. To focus purely on the implementation details, we strategically mock dependencies. This isolation allows us to confidently assess if the code behaves as &lt;em&gt;we&lt;/em&gt; designed it—a critical part of the development process.  It's a feedback loop that solidifies understanding.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Illusion of Green: Why GenAI-Generated Tests Can Be Misleading
&lt;/h3&gt;

&lt;p&gt;Let's assume, for a moment, that a GenAI LLM can consistently produce unit tests that compile and result in a "green" build status. Does this mean our code is bug-free? &lt;strong&gt;Absolutely not&lt;/strong&gt; . It simply means the LLM has crafted tests that &lt;strong&gt;pass&lt;/strong&gt;, regardless of underlying issues.&lt;/p&gt;

&lt;p&gt;Here’s where the real problem lies:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Testing the Tests, Not the Code:&lt;/strong&gt; If we discover a bug and fix it, the GenAI-generated test will likely &lt;em&gt;fail&lt;/em&gt; if by chance the assertion is well crafted.  The natural (and dangerously flawed) response might be to simply rerun the LLM on the corrected code to regenerate a passing test. This cycle demonstrates that the tests are validating the LLM's ability to create passing tests, not the correctness of &lt;em&gt;our&lt;/em&gt; code.  They offer a false sense of security.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Weak Assertions:&lt;/strong&gt; GenAI-generated tests often feature weak or overly general assertions. These assertions have a high probability of "sticking" even when the underlying code's behavior is flawed. It’s easy to pass a test that doesn't truly validate the logic. See below for an example.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Erosion of Trust:&lt;/strong&gt;  Historically, a suite of passing unit tests has signaled a degree of code quality and reliability.  When that signal is diluted by tests designed to pass &lt;em&gt;despite&lt;/em&gt; bugs, we lose a valuable indicator of quality and increase risk.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;See an example of source code here (&lt;a href="https://github.com/2BlackCoffees/document2llm/blob/master/infrastructure/ppt_reader.py#L44" rel="noopener noreferrer"&gt;Source code&lt;/a&gt;):&lt;br&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%2Fhmibeufx0kptxxx8icc1.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%2Fhmibeufx0kptxxx8icc1.png" alt=" " width="790" height="522"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;See LLM generated test here:&lt;br&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%2Fc8hp1qh1uxm3qmqslc9f.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%2Fc8hp1qh1uxm3qmqslc9f.png" alt=" " width="688" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We observe the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;By default, many crucial code paths are not adequately exercised, leading to a false sense of security indicated by a “green” build status.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The test assertion merely verifies the presence of certain fields within a data structure, without validating the correctness of their values. This constitutes a very weak and insufficient test.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below is another source code:&lt;br&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%2Fcx123jhfatq6sau9rlg2.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%2Fcx123jhfatq6sau9rlg2.png" alt=" " width="800" height="148"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Generated test is:&lt;br&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%2Fwjfoex89rrlyg5er6k8p.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%2Fwjfoex89rrlyg5er6k8p.png" alt=" " width="800" height="185"&gt;&lt;/a&gt;&lt;br&gt;
We observe the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The test case for the &lt;code&gt;test_str&lt;/code&gt; variable expects a Markdown-encoded table. The LLM’s failure to generate a valid test highlights a lack of clarity in the original code – valuable feedback if the generated tests are reviewed! However, without human review, this important insight would be lost.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The assertion remains weak, providing limited validation of the code’s behavior. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Is GenAI Useless for Unit Testing? Not Entirely.
&lt;/h3&gt;

&lt;p&gt;Despite these concerns, GenAI isn't without value in the unit testing workflow. The most promising application lies in &lt;strong&gt;human-LLM collaboration:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Boilerplate Generation:&lt;/strong&gt;  LLMs excel at generating the structural boilerplate of unit tests – setting up mocks, creating test methods, and ensuring comprehensive code coverage. This can significantly reduce the tedious and repetitive aspects of test creation, combating "test fatigue."&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Coverage Focus:&lt;/strong&gt;  An LLM can quickly identify untested code paths, helping ensure maximum code coverage with the framework for the test.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;However, the critical step remains with the developer:&lt;/strong&gt; &lt;em&gt;We&lt;/em&gt; must write the assertions. &lt;em&gt;We&lt;/em&gt; must define the specific, meaningful validations that confirm the code behaves as intended.  The LLM prepares the ground; the developer ensures the seeds of quality are sown.&lt;/p&gt;

&lt;p&gt;Below is an example how such a human LLM collaboration could happen:&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%2Fedcjq0isod6p3e3pj83g.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%2Fedcjq0isod6p3e3pj83g.png" alt=" " width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Following this schema, we begin by generating an initial set of unit tests. We then measure code coverage and compare the uncovered code paths—as identified by analysis of the Abstract Syntax Tree—to those exercised by the existing tests. This information is used to prompt the LLM to generate additional tests, specifically designed to activate the missing paths with appropriate parameter values.&lt;/p&gt;

&lt;p&gt;We consolidate each new set of tests and remeasure code coverage, repeating this process recursively until 100% coverage is achieved.&lt;/p&gt;

&lt;p&gt;Crucially, human intervention is then applied to craft robust and meaningful assertions for each test path, ensuring that each test genuinely validates the intended behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;While GenAI offers enticing possibilities, blindly accepting autogenerated unit tests as a substitute for thoughtful, developer-driven testing is a mistake.  Let’s leverage GenAI to &lt;em&gt;assist&lt;/em&gt; us in writing better tests, not to &lt;em&gt;replace&lt;/em&gt; the critical thinking and validation that are essential to building robust and reliable software.&lt;/p&gt;

</description>
      <category>unittest</category>
      <category>softwaretest</category>
      <category>bestpractices</category>
      <category>genai</category>
    </item>
    <item>
      <title>LLM Future Automation</title>
      <dc:creator>Jean-philippe Ulpiano</dc:creator>
      <pubDate>Sat, 24 May 2025 07:27:24 +0000</pubDate>
      <link>https://forem.com/jeanphilippe_ulpiano_46b/llm-future-automation-26gn</link>
      <guid>https://forem.com/jeanphilippe_ulpiano_46b/llm-future-automation-26gn</guid>
      <description>&lt;h1&gt;
  
  
  The Golden Eggs of Software Development: Why Replacing Human Developers with AI Might Not Be the Best Strategy
&lt;/h1&gt;

&lt;p&gt;As I reflect on the current trend of investors pushing for automation and replacement of human skilled developers through AI, I'm reminded of &lt;a href="https://en.wikipedia.org/wiki/The_Hen_That_Laid_the_Golden_Eggs" rel="noopener noreferrer"&gt;the classic fable of the hen that laid the golden eggs&lt;/a&gt;. Are we risking the long-term benefits of software development by prioritizing short-term gains?&lt;/p&gt;

&lt;p&gt;As a seasoned software and cloud architect, I have analyzed some facts that warrant consideration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1. &lt;a href="https://www.techradar.com/pro/over-half-of-uk-businesses-who-replaced-workers-with-ai-regret-their-decision" rel="noopener noreferrer"&gt;Over 50% of UK businesses that replaced workers with AI regret their decision&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2. &lt;a href="https://futurism.com/professors-company-ai-agents" rel="noopener noreferrer"&gt;Researchers found that even the best AI worker could only complete 24% of assigned tasks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;3. &lt;a href="https://www.prnewswire.com/news-releases/harness-releases-its-state-of-software-delivery-report-developers-excited-by-promise-of-ai-to-combat-burnout-but-security-and-governance-gaps-persist-302345391.html?tc=eml_cleartime" rel="noopener noreferrer"&gt;AI adoption introduces new complexities in workflows, oversight, and code quality&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meanwhile, the current layoffs and difficulty in finding new skilled developers &lt;a href="https://www.geekwire.com/2025/geekwire-podcast-box-ceo-aaron-levie-on-ai-agents-enterprise-data-and-the-future-of-work/?utm_source=GeekWire+Newsletters&amp;amp;utm_campaign=caee05b91b-daily-digest-email&amp;amp;utm_medium=email&amp;amp;utm_term=0_4e93fc7dfd-caee05b91b-1433215530&amp;amp;mc_cid=caee05b91b&amp;amp;mc_eid=c7331d8fb5" rel="noopener noreferrer"&gt;might become even more challenging in the future&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's essential to step back and assess the situation.&lt;/p&gt;

&lt;p&gt;The idea that we can create a Large Language Model (LLM) that can generate software as good as the best developer in the world might seem appealing, but it's a short-sighted approach. Even if LLMs could produce high-quality code, they would still be constrained by their training data and unable to surpass the capabilities of human developers.&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%2Fgw83jzxh8mxz0v3lms0g.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%2Fgw83jzxh8mxz0v3lms0g.png" alt="Image description" width="800" height="189"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To understand why LLMs are constrained by the data used to train them, let's dive into their basics. At their core, LLMs are statistical machines that produce coherent text by leveraging patterns and randomness. However, this approach comes with inherent constraints: they lack the nuance of human intuition, the capacity for diverse coding approaches, and the ability to seamlessly integrate new domain knowledge. The primary reason for these limitations is that LLMs can only generate responses based on the data they were trained on. As a result, their growth and evolution are directly tied to the quality and novelty of the data used to train them. If the new data doesn't introduce fresh perspectives, creativity, diversity, or domain expertise, the models will not be able to advance beyond their current capabilities, effectively capping their potential for improvement.&lt;/p&gt;

&lt;p&gt;Furthermore, if we rely solely on LLMs, assuming LLM can generate accurate software source code, companies will struggle to differentiate themselves. &lt;/p&gt;

&lt;p&gt;Instead, I propose we envision current LLM capabilities as a foundational seed for future technological advancements. By collaborating with humans, LLMs can generate new data under the human creativity guidance, leading to unprecedented code diversity. This closed-loop system will create a snowball effect, where new data will be generated, curated, and used to improve future models.&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%2Fgbe118ufwdk9gj1oul6s.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%2Fgbe118ufwdk9gj1oul6s.png" alt="Image description" width="800" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LLMs have the potential to unlock numerous opportunities, certainly exceeding the number of roles that may be automated or replaced in the short term. In my company, we're embracing this collaborative approach, recognizing that human developers and LLMs can work together to achieve unprecedented long-term quality and efficiency growth.&lt;/p&gt;

&lt;p&gt;This reality is not yet achieved, however, looking in depth, performing various analysis I could realize that LLMs excel at generating human-consumable assets but require additional support or complex RAGs when creating machine-consumable assets which are very often not reliable without human verification.&lt;/p&gt;

&lt;p&gt;Challenges and Questions are welcome&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
