<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Denis Dev]]></title><description><![CDATA[Denis Dev]]></description><link>https://dev.degomon.com</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 18:34:46 GMT</lastBuildDate><atom:link href="https://dev.degomon.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Eating my own dog food. Why I Built OwnCMS: A Modern, Zero-Cost, Edge-First Personal CMS]]></title><description><![CDATA[If you have spent any time running a blog or personal portfolio, you have likely faced the classic dilemma: WordPress is too heavy and prone to maintenance fatigue, static site generators (SSGs) like ]]></description><link>https://dev.degomon.com/owncms-my-own-dog-food</link><guid isPermaLink="true">https://dev.degomon.com/owncms-my-own-dog-food</guid><category><![CDATA[cms]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[cloudflare-pages]]></category><dc:creator><![CDATA[Denis González]]></dc:creator><pubDate>Fri, 14 Aug 2026 21:11:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6516ed08b5301fab675e90cd/f4089087-3387-4809-82ea-680e1bfbd8c0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you have spent any time running a blog or personal portfolio, you have likely faced the classic dilemma: <strong>WordPress is too heavy and prone to maintenance fatigue, static site generators (SSGs) like Astro or Hugo require git pushes and full rebuilds for simple edits, and SaaS CMS platforms quickly become expensive.</strong></p>
<p>For years, my agency website and blog at <a href="https://devomatik.com">Devomatik</a> ran on Blogger. It worked, but it felt outdated, lacked custom layout flexibility, had awkward URLs, and provided zero integration with modern edge databases and clean design systems.</p>
<p>I wanted something different:</p>
<ul>
<li><p><strong>Instant publishing</strong>: An admin panel where I can write and publish from any device without triggering a 3-minute static build.</p>
</li>
<li><p><strong>Zero or near-zero operating cost</strong>: Running on serverless free tiers without virtual machines or always-on databases.</p>
</li>
<li><p><strong>Full SEO &amp; Social Sharing</strong>: Server-Side Rendered (SSR) HTML for search engine crawlers and rich OpenGraph social cards.</p>
</li>
<li><p><strong>Instant multi-theming</strong>: The ability to switch between Corporate, Magazine, and Minimalist blog layouts with a single click without data migrations.</p>
</li>
<li><p><strong>Privacy &amp; Lightweight Footprint</strong>: Zero heavy npm bloat on the edge, built-in interactive Captchas, and provider-agnostic analytics.</p>
</li>
</ul>
<p>This is the story of how and why I built <a href="https://github.com/degomon/owncms"><strong>OwnCMS</strong></a>.</p>
<hr />
<h2>1. The Architecture: Edge-First and Truly Serverless</h2>
<p>To achieve maximum performance and virtually $0/month in hosting costs, OwnCMS is built on three modern infrastructure pillars:</p>
<pre><code class="language-plaintext">┌─────────────────────────────────────────────────────────────┐
│                      Cloudflare Network                     │
│                                                             │
│  ┌───────────────────────┐       ┌───────────────────────┐  │
│  │   Cloudflare Pages    │       │ Cloudflare Functions  │  │
│  │   (Static Assets/UI)  │       │     (Edge SSR API)    │  │
│  └───────────────────────┘       └───────────┬───────────┘  │
└──────────────────────────────────────────────┼──────────────┘
                                               │ HTTP v2 Pipeline
                                               ▼
                                    ┌───────────────────────┐
                                    │      Turso libSQL     │
                                    │    (Serverless DB)    │
                                    └───────────────────────┘
</code></pre>
<ol>
<li><p><strong>Cloudflare Pages &amp; Pages Functions</strong>: Delivers global CDN distribution, automatic SSL, and serverless TypeScript functions executing in under 10ms worldwide.</p>
</li>
<li><p><strong>Turso (libSQL / SQLite on the Edge)</strong>: A fast, serverless database with a generous free tier (billions of row reads and 9GB storage included).</p>
</li>
<li><p><strong>Cloudflare R2</strong>: S3-compatible object storage with zero egress fees for uploaded media and featured images.</p>
</li>
</ol>
<hr />
<h2>2. Overcoming Key Technical Challenges</h2>
<h3>A. Zero-Dependency Database Connector at the Edge</h3>
<p>Standard ORMs and even official client bundles can introduce unnecessary overhead or packaging complications during edge builds.</p>
<p>Instead of relying on heavy drivers, we implemented a custom, lightweight HTTP client that communicates directly with Turso's <code>/v2/pipeline</code> endpoint using native Web API <code>fetch</code>:</p>
<pre><code class="language-typescript">export class TursoClient {
  private url: string;
  private token: string;

  constructor(url: string, token: string) {
    this.url = url.replace('libsql://', 'https://').replace(/\/$/, '');
    this.token = token;
  }

  async execute(stmt: { sql: string; args?: any[] }) {
    const payload = {
      requests: [
        {
          type: 'execute',
          stmt: {
            sql: stmt.sql,
            args: (stmt.args || []).map((arg) =&gt; {
              if (arg === null || arg === undefined) return { type: 'null' };
              if (typeof arg === 'number') return { type: 'integer', value: String(arg) };
              if (typeof arg === 'boolean') return { type: 'integer', value: arg ? '1' : '0' };
              return { type: 'text', value: String(arg) };
            }),
          },
        },
        { type: 'close' },
      ],
    };

    const res = await fetch(`${this.url}/v2/pipeline`, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${this.token}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(payload),
    });

    const data = await res.json();
    return this.formatRows(data);
  }
}
</code></pre>
<h3>B. Solving the SPA SEO Paradox with Edge SSR</h3>
<p>Single Page Applications (SPAs) offer smooth client-side transitions, but raw client-side rendering often delivers empty HTML (<code>&lt;div id="app"&gt;&lt;/div&gt;</code>) to web crawlers and social media preview bots.</p>
<p>We solved this by implementing <strong>Edge Server-Side Rendering (SSR)</strong> directly in <code>functions/[[path]].ts</code>. When a crawler or browser visits <code>/</code>, <code>/post/:slug</code>, or <code>/page/:slug</code>:</p>
<ol>
<li><p>The Edge Function fetches post data and site configurations in parallel from Turso.</p>
</li>
<li><p>It injects full semantic HTML, <code>&lt;title&gt;</code>, meta descriptions, and <code>&lt;meta property="og:image"&gt;</code> tags into the initial response.</p>
</li>
<li><p>The browser hydrates the UI seamlessly, allowing the client-side router (<code>History API</code>) to handle instant transitions for human visitors.</p>
</li>
</ol>
<h3>C. A 100% Free, Canvas-Based Slider Puzzle Captcha</h3>
<p>Spam bots targeting contact forms are a constant annoyance. Third-party CAPTCHA services either charge money, introduce privacy concerns, or slow down page loads.</p>
<p>We built an interactive, zero-dependency <strong>HTML5 Canvas Slider Puzzle</strong>:</p>
<ul>
<li><p>Generates procedural background textures and cutout puzzle shapes in real-time.</p>
</li>
<li><p>Requires the user to drag a slider to fit the piece with pixel accuracy.</p>
</li>
<li><p>Issues a cryptographically validated, timestamped token verified on the server before storing any contact submission.</p>
</li>
</ul>
<pre><code class="language-plaintext">[ Security Check: Slide to complete the puzzle ]
┌───────────────────────────────┐
│ ▒▒▒▒▒▒▒▒▒▒▒  [█]  ▒▒▒▒▒▒▒▒▒▒▒ │
└───────────────────────────────┘
  ───●──────────────────────────
</code></pre>
<hr />
<h2>3. Core Features Built-in</h2>
<ul>
<li><p><strong>3 Out-of-the-Box Themes</strong>:</p>
<ul>
<li><p><strong>Corporate</strong>: Includes hero presentation, service highlights, project showcases, and blog previews.</p>
</li>
<li><p><strong>Magazine</strong>: Editorial layout with featured hero articles and structured topic grids.</p>
</li>
<li><p><strong>Personal</strong>: Minimalist, distraction-free blog for developers and thinkers.</p>
</li>
</ul>
</li>
<li><p><strong>Provider-Agnostic Analytics</strong>: Paste your tracking script (Matomo, StatCounter, Plausible, or Google Analytics) directly into the settings dashboard.</p>
</li>
<li><p><strong>Multi-Admin Management</strong>: Secure account management, display names, and password resets using Web Crypto API HMAC SHA-256 JWT tokens.</p>
</li>
<li><p><strong>Real-Time Sitemap</strong>: Dynamically generated <code>/sitemap.xml</code> listing all published posts and static pages with accurate <code>lastmod</code> timestamps.</p>
</li>
</ul>
<hr />
<h2>4. How to Deploy Your Own in 2 Minutes</h2>
<p>OwnCMS is fully open source. You can spin up your own instance for free:</p>
<ol>
<li><p><strong>Clone the Repo</strong>:</p>
<pre><code class="language-bash">git clone https://github.com/degomon/owncms.git
cd owncms
npm install
</code></pre>
</li>
<li><p><strong>Initialize Database</strong>: Create a free database on <a href="https://turso.tech">Turso</a> and run:</p>
<pre><code class="language-bash">node tools/db-init.js
</code></pre>
</li>
<li><p><strong>Deploy to Cloudflare Pages</strong>:</p>
<ul>
<li><p>Push your repo to GitHub.</p>
</li>
<li><p>Link the repo in the <a href="https://dash.cloudflare.com/">Cloudflare Dashboard</a> under <strong>Pages</strong>.</p>
</li>
<li><p>Set Build Output Directory to <code>public</code>.</p>
</li>
<li><p>Add your <code>TURSO_DATABASE_URL</code>, <code>TURSO_AUTH_TOKEN</code>, and <code>JWT_SECRET</code> environment variables.</p>
</li>
</ul>
</li>
</ol>
<hr />
<h2>Challenge completed?</h2>
<p>You don't need a heavy virtual machine, an expensive hosting tier, or complicated deployment pipelines to run a high-performance, beautiful website. By combining modern edge functions with serverless SQLite, OwnCMS provides complete autonomy over your content with instantaneous publishing and enterprise-grade performance. Of course <strong>Design</strong> isn't really my area of expertise, but I am proud of my ugly but functional CMS.</p>
<ul>
<li><p><strong>GitHub Repository</strong>: <a href="https://github.com/degomon/owncms">https://github.com/degomon/owncms</a></p>
</li>
<li><p><strong>Live Implementation</strong>: <a href="https://devomatik.com">Devomatik</a></p>
</li>
</ul>
<p>Feel free to fork, experiment, and contribute!</p>
]]></content:encoded></item><item><title><![CDATA[DevTask: Why I Built a Specialized TUI Process Manager in Go to Hunt Down Hung Java and Gradle Daemons]]></title><description><![CDATA[Every developer who works with Android Studio, Gradle, Kotlin, or the JVM ecosystem on Linux knows that familiar moment of frustration: your laptop fans sound like a jet engine, you pop open a termina]]></description><link>https://dev.degomon.com/devtask-why-hung-java-and-gradle-daemons</link><guid isPermaLink="true">https://dev.degomon.com/devtask-why-hung-java-and-gradle-daemons</guid><category><![CDATA[Go Language]]></category><category><![CDATA[Java]]></category><category><![CDATA[Android]]></category><category><![CDATA[task management]]></category><dc:creator><![CDATA[Denis González]]></dc:creator><pubDate>Fri, 14 Aug 2026 07:20:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6516ed08b5301fab675e90cd/5e1c1525-979a-4445-bfd9-15baa68f0be6.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every developer who works with Android Studio, Gradle, Kotlin, or the JVM ecosystem on Linux knows that familiar moment of frustration: your laptop fans sound like a jet engine, you pop open a terminal, run a quick inspection command, and discover that 15 to 20 gigabytes of your RAM have quietly evaporated into thin air.</p>
<p>This is the story of how a routine terminal diagnosis turned into DevTask, an open-source terminal user interface (TUI) process manager built in Go using the Bubble Tea framework.</p>
<h2>The Real Problem: The Mystery of Ghost Daemons</h2>
<p>I was in the middle of development when my system started feeling unusually sluggish. Running the classic terminal check:</p>
<p>ps aux | grep java</p>
<p>The output was eye-opening: A Gradle Daemon 8.14 running under OpenJDK 17 hoarding more than 5 GB of RAM. A Gradle Daemon 8.14 running under Android Studio JBR holding several hundred megabytes. A Kotlin Compile Daemon 2.0.21 that had been sitting idle for over an hour. Another Kotlin Compile Daemon 2.2.20 consuming another gigabyte of memory.</p>
<p>Standard tools like htop or the raw ps command present a wall of text filled with 500-character classpath arguments. Distinguishing which process is actively compiling and which one has been hung for the past 45 minutes doing nothing requires patience, tedious parsing, and custom bash scripts.</p>
<p>That sparked an idea: Why not build an interactive, specialized terminal task manager for developers that runs seamlessly in the console?</p>
<h2>The Vision: Designing DevTask</h2>
<p>The goal was not to clone general-purpose monitors like btop or htop, but to tackle the specific pain points of modern software development environments:</p>
<p>Intelligent Categorization: The tool parses messy JVM command-line strings and tells you clearly: This is Gradle Daemon 8.14 (JBR) or This is Kotlin Daemon 2.2.</p>
<p>Automated Idle Heuristics: If a process has been running for more than 15 minutes and its CPU consumption is below 1.0 percent, it gets flagged with an amber IDLE badge as an obvious candidate for cleanup.</p>
<p>Hierarchical Tree Navigation with Drill-Down: Group processes by category such as Java and JVM, Kotlin, Node.js, and Docker, and allow developers to expand or collapse each cluster using the arrow keys or Enter.</p>
<p>Minimum Memory Filter: Automatically filter out lightweight background processes to keep your attention focused strictly on heavy daemons using 100 MB of RAM or more.</p>
<p>Permanent Slash Command Prompt: Type runtime commands like /config idle 20m, /config mem 150, or /kill-single to configure thresholds and take action without leaving the terminal view.</p>
<h2>The Tech Stack: Why Go and Bubble Tea</h2>
<p>For the terminal user interface, the Charm ecosystem was the natural choice: Bubble Tea: The Elm-inspired architecture (Model, Update, View) ensures state management, periodic sampling ticks, and view transitions remain clean and predictable. Lipgloss: Provides a modern, vibrant dark theme with custom borders and clear badges for active versus idle states. Gopsutil: Delivers fast, non-blocking process sampling and system metrics on Linux without freezing the terminal rendering loop.</p>
<h2>How the User Experience Works</h2>
<p>When you launch DevTask in your terminal, you are greeted with a header showing visual CPU and RAM meters alongside a live count of detected idle daemons.</p>
<p>The main table presents clean grouped categories. You navigate using arrow keys or vim shortcuts (j and k). Hitting Enter on a group expands it, displaying each child process with its exact PID, memory footprint in megabytes, CPU percentage, runtime duration, and idle status.</p>
<p>At the bottom of the screen: A dedicated inspector panel automatically extracts JVM memory flags like -Xmx, -Xms, and Metaspace, plus the current working directory. A permanent command prompt lets you update thresholds on the fly and persist them to your local JSON configuration.</p>
<p>When it comes to terminating stubborn daemons, pressing a key opens a confirmation modal where you can toggle between a graceful SIGTERM and a forced SIGKILL (-9) with a single keystroke.</p>
<h2>Open Source under GPLv3</h2>
<p>I chose to release DevTask under the GNU General Public License v3.0 (GPLv3). The reason is straightforward: I want any developer to be able to use, inspect, extend, and learn from this tool freely, while ensuring that the project and any derivatives remain free and open source for the developer community.</p>
<p>You can check out the source code, try it out, or contribute on GitHub: <a href="https://github.com/degomon/devtask">https://github.com/degomon/devtask</a></p>
<p>If you also struggle with rogue daemons eating away your system memory during daily builds, give DevTask a spin. Contributions, issues, and feature suggestions are warmly welcome!</p>
]]></content:encoded></item><item><title><![CDATA[The Origins of Scrum and Kanban: A History of Two Agile Methodologies]]></title><description><![CDATA[Scrum: From Inspiration to Agile Development
Origins
Scrum has its roots in the 1990s, when Jeff Sutherland and Ken Schwaber sought a way to address the challenges of software development, which was often plagued by delays, constant changes, and a la...]]></description><link>https://dev.degomon.com/the-origins-of-scrum-and-kanban-a-history-of-two-agile-methodologies</link><guid isPermaLink="true">https://dev.degomon.com/the-origins-of-scrum-and-kanban-a-history-of-two-agile-methodologies</guid><category><![CDATA[Scrum, Kanban, Agile, Agile Methodologies, Lean, Project Management, Software Development, Jeff Sutherland, Ken Schwaber, Taiichi Ohno, David J. Anderson, Toyota Production System, History, IT, Continuous Improvement]]></category><dc:creator><![CDATA[Denis González]]></dc:creator><pubDate>Tue, 08 Jul 2025 14:20:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751984399172/7f58c42e-9a7b-413c-bb7a-1400a4e803f8.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-scrum-from-inspiration-to-agile-development"><strong>Scrum: From Inspiration to Agile Development</strong></h3>
<h4 id="heading-origins"><strong>Origins</strong></h4>
<p>Scrum has its roots in the 1990s, when <strong>Jeff Sutherland</strong> and <strong>Ken Schwaber</strong> sought a way to address the challenges of software development, which was often plagued by delays, constant changes, and a lack of clarity. They were directly inspired by the 1986 article <em>"The New New Product Development Game"</em> by Hirotaka Takeuchi and Ikujiro Nonaka, published in the Harvard Business Review. This article described how companies like Honda and Canon used small, cross-functional, self-organizing teams to develop innovative products quickly, comparing them to a rugby team moving forward together toward the goal (hence the name "Scrum").</p>
<p>Scrum was also nurtured by the intellectual climate of the time, which included ideas such as:</p>
<ul>
<li><p><strong>Iterative Development</strong>: Promoted by figures like Barry Boehm, who advocated for building software in short cycles to gather constant feedback.</p>
</li>
<li><p><strong>Team Management</strong>: Concepts from management theorists like Peter Drucker on the importance of autonomy and responsibility for "knowledge workers."</p>
</li>
</ul>
<p>In 1995, Sutherland and Schwaber formalized Scrum as a framework. Its consolidation came in 2001, when they were two of the 17 signatories of the <strong>Agile Manifesto</strong>, a document that defined the key values of the movement: customer collaboration, adaptability, and frequent delivery of value. This manifesto was instrumental in Scrum's rapid gain in popularity.</p>
<h4 id="heading-implementation-in-software-development"><strong>Implementation in Software Development</strong></h4>
<p>Scrum was specifically designed for software, where projects are often complex and requirements are subject to change. Its structure includes:</p>
<ul>
<li><p><strong>Sprints</strong>: Short cycles (usually 1 to 4 weeks) to deliver functional product increments.</p>
</li>
<li><p><strong>Roles</strong>: The Product Owner (defines business priorities), the Scrum Master (facilitates the process and removes impediments), and the Development Team (executes the work).</p>
</li>
<li><p><strong>Events</strong>: Meetings such as the Daily Scrum, Sprint Planning, Sprint Review, and Sprint Retrospective to maintain communication and continuous improvement.</p>
</li>
</ul>
<p>Companies like Microsoft and Google adopted Scrum to manage technology projects, making it an industry standard in software for its ability to adapt to change and deliver results predictably.</p>
<h4 id="heading-expansion-into-other-corporate-areas"><strong>Expansion into Other Corporate Areas</strong></h4>
<p>Although born in software development, Scrum's principles—iteration, self-organization, and a focus on value—made it useful in many other contexts. Today, it is used in:</p>
<ul>
<li><p><strong>Education</strong>: To plan curricula or student projects in short cycles.</p>
</li>
<li><p><strong>Healthcare</strong>: By medical teams developing new treatments or implementing technologies.</p>
</li>
<li><p><strong>Manufacturing</strong>: To design innovative products with iterative prototypes.</p>
</li>
</ul>
<p>For example, in a marketing firm, Scrum could be used to launch an advertising campaign, breaking the work into Sprints and adjusting the strategy based on market feedback. Its adaptability has made it a valuable tool far beyond technology.</p>
<hr />
<h3 id="heading-kanban-from-the-factory-to-knowledge-work"><strong>Kanban: From the Factory to Knowledge Work</strong></h3>
<h4 id="heading-origins-1"><strong>Origins</strong></h4>
<p>Kanban comes from the Japanese manufacturing industry, specifically from Toyota in the 1950s. <strong>Taiichi Ohno</strong>, a Toyota engineer, developed it as part of the Toyota Production System (TPS) to optimize manufacturing in a post-war Japan with scarce resources. Ohno was inspired by the replenishment model of American supermarkets, where shelves are restocked only after customers empty them. He applied this idea to production: parts were manufactured only when needed, using <em>kanban</em> cards (Japanese for "visual card" or "signal") to indicate what to produce and when.</p>
<p>This "pull system" drastically reduced waste (unnecessary inventory), improved efficiency, and allowed the factory to respond quickly to changes in demand. Toyota's success led Kanban to spread to other factories as a fundamental pillar of lean thinking.</p>
<h4 id="heading-implementation-in-software-development-1"><strong>Implementation in Software Development</strong></h4>
<p>In the mid-2000s, <strong>David J. Anderson</strong> pioneered the adaptation of Kanban to software development and IT work. He observed that technology teams faced problems like work overload and bottlenecks, similar to those in factories. Anderson proposed a method based on four key principles:</p>
<ol>
<li><p><strong>Visualize the Workflow</strong>: Use a Kanban board to display the workflow and the status of each task.</p>
</li>
<li><p><strong>Limit Work in Progress (WIP)</strong>: Restrict the amount of active work to prevent overload and improve focus.</p>
</li>
<li><p><strong>Manage Flow</strong>: Measure and optimize how tasks move through the process.</p>
</li>
<li><p><strong>Continuous Improvement</strong>: Use data and team feedback to adjust and evolve the process.</p>
</li>
</ol>
<p>Anderson formalized his method in the book <em>Kanban: Successful Evolutionary Change for Your Technology Business</em>, published in 2010. Unlike Scrum, Kanban does not prescribe fixed roles or ceremonies, making it highly flexible and easy to adopt in teams with existing workflows.</p>
<h4 id="heading-expansion-into-other-corporate-areas-1"><strong>Expansion into Other Corporate Areas</strong></h4>
<p>Kanban's simplicity and visual approach facilitated its expansion beyond software. Areas like marketing, human resources, and operations adopted it to:</p>
<ul>
<li><p><strong>Marketing</strong>: Manage content flow, from idea to publication.</p>
</li>
<li><p><strong>Human Resources</strong>: Track hiring processes on visual boards.</p>
</li>
<li><p><strong>Operations</strong>: Coordinate administrative workflows and service requests.</p>
</li>
</ul>
<p>For example, a human resources team could use a Kanban board to visualize candidates in stages like "CV Received," "Interview," and "Offer," limiting WIP to focus on a manageable number of candidates at a time. This flexibility has made Kanban an almost universal tool in agile companies.</p>
<hr />
<h3 id="heading-similarities-and-conclusion"><strong>Similarities and Conclusion</strong></h3>
<p>Both Scrum and Kanban share a DNA based on agile and lean principles:</p>
<ul>
<li><p><strong>Eliminate Waste</strong>: Scrum does this by prioritizing the most valuable work; Kanban by optimizing flow and reducing wait times.</p>
</li>
<li><p><strong>Improve Efficiency</strong>: Scrum through focused work cycles (Sprints); Kanban by limiting Work in Progress (WIP).</p>
</li>
<li><p><strong>Customer Focus</strong>: Both aim to deliver value frequently and continuously, adapting to changes in customer needs.</p>
</li>
</ul>
<p>Scrum was born to solve the complexity of software development and expanded thanks to its clear structure. Kanban, originating from manufacturing efficiency, arrived in knowledge work due to its simplicity and flexibility. Today, both are essential frameworks in organizations seeking agility, from tech startups to large corporations in industries as diverse as healthcare, education, and finance.</p>
<h3 id="heading-references"><strong>References</strong></h3>
<ol>
<li><p><strong>Takeuchi, H., &amp; Nonaka, I. (1986).</strong> <em>The New New Product Development Game</em>. Harvard Business Review.</p>
</li>
<li><p><strong>Beck, K., et al. (2001).</strong> <em>Manifesto for Agile Software Development</em>. Agile Alliance. <a target="_blank" href="https://agilemanifesto.org/">https://agilemanifesto.org</a></p>
</li>
<li><p><strong>Schwaber, K., &amp; Sutherland, J.</strong> <em>The Scrum Guide</em>. Scrum.org. (This is a living document that is updated periodically). <a target="_blank" href="https://scrumguides.org/">https://scrumguides.org</a></p>
</li>
<li><p><strong>Anderson, D. J. (2010).</strong> <em>Kanban: Successful Evolutionary Change for Your Technology Business</em>. Blue Hole Press.</p>
</li>
<li><p><strong>Ohno, T. (1988).</strong> <em>Toyota Production System: Beyond Large-Scale Production</em>. Productivity Press.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Stop Wasting Time: The Definitive Guide to Leading and Participating in Productive Meetings]]></title><description><![CDATA[Originally published at Productividad.Dev
Meetings are one of the most powerful tools in any organization’s arsenal, but also one of the most dangerously misused. For many, a simple notification of a new meeting on the calendar triggers a sigh of res...]]></description><link>https://dev.degomon.com/stop-wasting-time-the-definitive-guide-to-leading-and-participating-in-productive-meetings</link><guid isPermaLink="true">https://dev.degomon.com/stop-wasting-time-the-definitive-guide-to-leading-and-participating-in-productive-meetings</guid><category><![CDATA[productive meetings, teamwork, professional collaboration, office environment, meeting preparation, business efficiency, leadership skills, time management, diverse professionals, modern office, meeting facilitation, action planning, virtual meetings, hybrid meetings]]></category><dc:creator><![CDATA[Denis González]]></dc:creator><pubDate>Mon, 07 Jul 2025 11:05:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751639004903/7ee46764-a990-4449-93b4-bd420b6c69f7.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<hr />
<p>Originally published at <a target="_blank" href="https://productividad.dev/?p=26"><strong>Productividad.Dev</strong></a></p>
<p>Meetings are one of the most powerful tools in any organization’s arsenal, but also one of the most dangerously misused. For many, a simple notification of a new meeting on the calendar triggers a sigh of resignation. Why? Because we’ve been conditioned by countless unproductive sessions: endless monologues, aimless discussions, and, worst of all, the feeling of having lost valuable time that will never return.</p>
<p>But it doesn’t have to be this way. A well-executed meeting can be a catalyst for innovation, alignment, and action. The key is understanding that a meeting’s productivity is not an accident; it’s the result of intentional design and discipline, a shared responsibility between the leader and the participants.</p>
<p>This article is your guide to transforming meetings from time thieves into productivity engines.</p>
<h3 id="heading-the-diagnosis-the-high-cost-of-bad-meetings">The Diagnosis: The High Cost of Bad Meetings</h3>
<p>Before seeking the cure, let’s understand the disease. Unproductive meetings are more than just a minor annoyance; they are a resource drain for companies. The statistics are alarming:</p>
<ul>
<li><p>Senior executives can spend up to <strong>50% of their time in meetings</strong>, with a significant portion of that time estimated to be unproductive.</p>
</li>
<li><p>A University of North Carolina study revealed that 65% of managers feel meetings prevent them from completing their own work.</p>
</li>
<li><p>Economically, unnecessary meetings are estimated to cost U.S. companies hundreds of billions of dollars annually in salaries and lost productivity.</p>
</li>
</ul>
<p>The impact goes beyond finances. Bad meetings generate frustration, lower morale, hinder employee engagement, and foster a culture of inefficiency.</p>
<h3 id="heading-phase-1-preparation-the-foundation-of-a-successful-meeting">Phase 1: Preparation - The Foundation of a Successful Meeting</h3>
<p>80% of a meeting’s success is determined before anyone enters the room (physical or virtual). For both the leader and the participant, preparation is non-negotiable.</p>
<h4 id="heading-for-the-meeting-leader">For the Meeting Leader:</h4>
<ol>
<li><p><strong>Define a Clear and Single Objective:</strong> Why does this meeting exist? If you can’t answer this with a single, clear, action-oriented sentence (“Decide on the vendor for Project X,” “Generate 3 strategies for the Q3 marketing campaign,” “Resolve the development team’s technical blockage”), don’t hold the meeting. A vague objective like “Catch up” is a recipe for disaster.</p>
</li>
<li><p><strong>Create an Effective Agenda:</strong> The agenda is the roadmap. A productive agenda is more than a list of topics; it should include:</p>
<ul>
<li><p><strong>Topics to Cover:</strong> Formulated as questions to stimulate discussion.</p>
</li>
<li><p><strong>Time Allocation:</strong> A realistic time limit for each point.</p>
</li>
<li><p><strong>Responsible Party:</strong> Who will lead the discussion on each topic.</p>
</li>
<li><p><strong>Objective for Each Point:</strong> Is the goal to inform, discuss, or decide?</p>
</li>
</ul>
</li>
<li><p><strong>Select the Right Participants:</strong> More is not better. Every person in the meeting should have a clear role: providing key information, making a decision, or being directly responsible for resulting actions. As a reference, Jeff Bezos’ famous <strong>“two-pizza rule”</strong> is an excellent gauge: if two pizzas aren’t enough to feed the group, there are likely too many people.</p>
</li>
<li><p><strong>Distribute Materials in Advance:</strong> Send the agenda and any pre-reading documents (reports, data, proposals) at least 24 hours in advance. This respects others’ time and allows participants to arrive prepared to contribute rather than process information for the first time.</p>
</li>
</ol>
<h3 id="heading-phase-2-execution-the-art-of-mastering-facilitation">Phase 2: Execution - The Art of Mastering Facilitation</h3>
<p>Once the meeting begins, the facilitator’s role is crucial to maintaining focus and energy.</p>
<ol>
<li><p><strong>Start on Time and with Purpose:</strong> Begin punctually, even if not everyone has arrived. Start by reaffirming the meeting’s objective and reviewing the agenda. This immediately centers the group.</p>
</li>
<li><p><strong>Maintain Focus and Manage Time:</strong> It’s your job to be the guardian of time and topic.</p>
<ul>
<li><p><strong>Redirect Kindly:</strong> When the conversation drifts, say something like: “That’s an interesting point, but for the sake of time, let’s return to the main agenda objective.”</p>
</li>
<li><p><strong>Use a “Parking Lot”:</strong> Have a visible space (physical or virtual whiteboard) to “park” important but off-topic ideas that arise. These can be addressed at the end if time allows or in another meeting.</p>
</li>
</ul>
</li>
<li><p><strong>Encourage Equitable Participation:</strong> Your goal is to tap into the group’s collective intelligence, not just hear from the most extroverted.</p>
<ul>
<li><p><strong>Round-Robin Technique:</strong> Ask for each person’s opinion sequentially.</p>
</li>
<li><p><strong>Engage the Quiet:</strong> Pose direct, kind questions like: “Ana, we haven’t heard your perspective on this, what do you think?”</p>
</li>
<li><p><strong>Use Interactive Tools:</strong> In virtual meetings, polls, chat, and virtual whiteboards can give a voice to those hesitant to speak.</p>
</li>
</ul>
</li>
</ol>
<h3 id="heading-the-role-of-the-productive-participant-you-are-not-a-spectator">The Role of the Productive Participant: You Are Not a Spectator</h3>
<p>Productivity isn’t solely the leader’s responsibility. As a participant, your active commitment is essential.</p>
<ul>
<li><p><strong>Prepare:</strong> Read the sent materials. Think about your contributions and questions in advance.</p>
</li>
<li><p><strong>Listen to Understand, Not to Respond:</strong> Practice active listening. Avoid formulating your response while someone else is speaking.</p>
</li>
<li><p><strong>Be Concise and to the Point:</strong> Respect everyone’s time. Present your ideas clearly and directly.</p>
</li>
<li><p><strong>Build on Others’ Ideas:</strong> Instead of presenting your idea in isolation, connect it to what’s been said: “Building on Carlos’ point, we could also consider…”</p>
</li>
<li><p><strong>Avoid Multitasking:</strong> Close email tabs and put your phone away. Your physical and mental presence signals respect and commitment.</p>
</li>
</ul>
<h3 id="heading-phase-3-follow-up-where-words-turn-into-action">Phase 3: Follow-Up - Where Words Turn into Action</h3>
<p>A meeting without clear follow-up is just a conversation. To be productive, it must yield tangible results.</p>
<ol>
<li><p><strong>Distribute a Summary and Clear Actions:</strong> Within 24 hours, the leader should send a concise summary including:</p>
<ul>
<li><p>Key decisions made.</p>
</li>
<li><p><strong>Concrete Actions (Action Items):</strong> The most critical part.</p>
</li>
</ul>
</li>
<li><p><strong>SMART Format for Actions:</strong> Each action should be:</p>
<ul>
<li><p><strong>S</strong>pecific: What exactly needs to be done?</p>
</li>
<li><p><strong>M</strong>easurable: How will we know it’s complete?</p>
</li>
<li><p><strong>A</strong>ssignable: Who is responsible? (One name only).</p>
</li>
<li><p><strong>R</strong>elevant: How does it contribute to the overall objective?</p>
</li>
<li><p><strong>T</strong>ime-bound: What is the deadline?</p>
</li>
</ul>
</li>
</ol>
<p><strong>Example:</strong></p>
<ul>
<li><p><strong>Bad:</strong> “Research new CRM tools.”</p>
</li>
<li><p><strong>Good (SMART):</strong> “<strong>Juan Pérez</strong> will create a comparative report of 3 CRM tools (HubSpot, Salesforce, Zoho) including costs and key features, and present it to the team by Friday, July 18.”</p>
</li>
</ul>
<h3 id="heading-adapting-to-the-new-environment-in-person-virtual-and-hybrid">Adapting to the New Environment: In-Person, Virtual, and Hybrid</h3>
<p>The meeting format imposes its own rules.</p>
<ul>
<li><p><strong>In-Person Meetings:</strong></p>
<ul>
<li><p><strong>Pro:</strong> Facilitate reading non-verbal cues, build relationships, and are ideal for complex debates or intense brainstorming sessions.</p>
</li>
<li><p><strong>Tip:</strong> Use the physical space. Whiteboards, sticky notes, and body movement can keep energy high.</p>
</li>
</ul>
</li>
<li><p><strong>Virtual Meetings:</strong></p>
<ul>
<li><p><strong>Pro:</strong> Offer flexibility, save travel time, and enable inclusion of people from different geographies.</p>
</li>
<li><p><strong>Tip:</strong> Zoom fatigue is real. Keep meetings shorter. Require <strong>cameras on</strong> to foster connection and actively use collaboration tools like polls, breakout rooms, and digital whiteboards.</p>
</li>
</ul>
</li>
<li><p><strong>Hybrid Meetings (the Biggest Challenge):</strong></p>
<ul>
<li><p><strong>Pro:</strong> Combine the best of both worlds but are the hardest to execute well.</p>
</li>
<li><p><strong>Tip:</strong> The key is <strong>equity</strong>. Invest in good audio and video technology. Appoint a moderator focused solely on remote participants, ensuring their voices are heard and they can participate equally. Everyone should feel like a first-class citizen.</p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-conclusion-productivity-is-a-shared-responsibility">Conclusion: Productivity Is a Shared Responsibility</h3>
<p>Meetings are not the enemy; the lack of discipline and purpose is. Transforming your organization’s meeting culture won’t happen overnight, but it begins with the individual commitment to treat time—your own and others’—as the valuable resource it is.</p>
<p>The pillars of a productive meeting are universal: <strong>rigorous preparation, focused execution, active participation, and impeccable follow-up.</strong></p>
<p>The next time you organize a meeting, ask yourself: “Is it really necessary? What is its single objective?” And the next time you attend one, ask yourself: “How can I actively contribute to its success?” When both leaders and participants adopt this mindset, meetings stop being a burden and become what they always should have been: the vibrant pulse of a productive organization.</p>
<hr />
<h4 id="heading-references-and-additional-reading">References and Additional Reading:</h4>
<ul>
<li><p>Information on the impact of unproductive meetings and best facilitation practices (Sources consulted in research: Atlassian, University of North Carolina, <a target="_blank" href="http://Fellow.app">Fellow.app</a>).</p>
</li>
<li><p>Time management and participation techniques (Sources consulted: <a target="_blank" href="http://Situational.com">Situational.com</a>, <a target="_blank" href="http://Wudpecker.io">Wudpecker.io</a>).</p>
</li>
<li><p>Comparisons and tips for virtual and hybrid meetings (Sources consulted: Slack Blog, WeWork Ideas, RingCentral Blog).</p>
</li>
<li><p>Guides on drafting effective minutes and actions (Sources consulted: <a target="_blank" href="http://Azeusconvene.com">Azeusconvene.com</a>).</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Managing Impostor Syndrome for Personal and Professional Growth]]></title><description><![CDATA[Introduction
This post was originally published in spanish.
Impostor syndrome is a psychological phenomenon that affects many people, even those who have achieved significant success in their careers. It is the feeling of being a fraud, the fear that...]]></description><link>https://dev.degomon.com/managing-impostor-syndrome-for-personal-and-professional-growth</link><guid isPermaLink="true">https://dev.degomon.com/managing-impostor-syndrome-for-personal-and-professional-growth</guid><category><![CDATA[Productivity]]></category><category><![CDATA[self-improvement ]]></category><category><![CDATA[professional development]]></category><dc:creator><![CDATA[Denis González]]></dc:creator><pubDate>Fri, 04 Jul 2025 13:54:54 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751637059583/64665c29-c47b-4e3c-89cd-1530aa6cf67a.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>This post was originally <a target="_blank" href="https://productividad.dev/2025/07/04/como-manejar-el-sindrome-del-impostor/"><strong>published in spanish</strong></a>.</p>
<p>Impostor syndrome is a psychological phenomenon that affects many people, even those who have achieved significant success in their careers. It is the feeling of being a fraud, the fear that at any moment others will discover that one is not as competent as believed. Despite evident achievements, individuals with this syndrome have a distorted perception of their own abilities, attributing their successes to luck or external factors rather than their own talent and effort.</p>
<p>Studies suggest that up to 70% of people have experienced impostor syndrome at some point in their lives, and in the United States, this figure is similar (<a target="_blank" href="https://www.unobravo.com/en/blog/impostor-syndrome">Unobravo</a>). This phenomenon not only impacts self-esteem but can also significantly affect job performance and mental health, potentially leading to anxiety, exhaustion, and procrastination.</p>
<p>In this article, we will explore what impostor syndrome is, its causes, symptoms, types, impact on personal and professional life, and practical strategies to manage it, both individually and organizationally. We will also highlight examples of famous individuals who have faced this syndrome and provide additional resources for those wishing to delve deeper into the topic.</p>
<h2 id="heading-what-is-impostor-syndrome">What is Impostor Syndrome?</h2>
<p>Impostor syndrome, also known as impostor phenomenon or fraud syndrome, is a psychological pattern in which individuals doubt their achievements and have a persistent fear of being exposed as impostors. It was first identified in 1978 by psychologists Pauline Clance and Suzanne Imes in their study of high-achieving women (<a target="_blank" href="https://psycnet.apa.org/record/1979-26502-001">Psycnet</a>). Although initially associated primarily with women, subsequent research has shown it affects people of all genders, with a prevalence estimated at 70% globally (<a target="_blank" href="https://www.anahuac.mx/en/blog/impostor-syndrome-what-is-it-and-why-does-it-occur">Anahuac</a>) and up to 82% according to some studies (<a target="_blank" href="https://link.springer.com/article/10.1007/s11606-019-05364-1">Journal of General Internal Medicine</a>).</p>
<p>The syndrome is not recognized as a disorder in diagnostic manuals like the DSM-5 or ICD-11 but is well-documented in psychological literature. People who experience it often minimize their achievements, attribute them to luck, and live with a constant fear of being "found out" as less competent than perceived.</p>
<h3 id="heading-prevalence-and-gender">Prevalence and Gender</h3>
<p>Impostor syndrome is particularly common in competitive environments, such as the workplace or academia, and disproportionately affects women and underrepresented groups due to social, cultural, and gender stereotype pressures (<a target="_blank" href="https://www.elgaronline.com/abstract/edcoll/9781785365591/9781785365591.00023.xml">Elgar Online</a>). For example, women may face expectations of perfection or feel they must prove themselves more to be recognized in leadership roles.</p>
<h2 id="heading-causes-and-symptoms">Causes and Symptoms</h2>
<h3 id="heading-causes">Causes</h3>
<p>The causes of impostor syndrome are multifaceted and may include:</p>
<ul>
<li><p><strong>High self-expectations and perfectionism</strong>: The need for everything to be perfect can lead to feeling that any mistake equates to incompetence.</p>
</li>
<li><p><strong>Constant comparisons</strong>: Comparing oneself to others can create the perception of not measuring up.</p>
</li>
<li><p><strong>Fear of failure</strong>: The fear of not meeting expectations can lead to overcompensation or avoidance of opportunities.</p>
</li>
<li><p><strong>Family dynamics</strong>: Pressures in childhood, such as controlling or overprotective parents, may contribute.</p>
</li>
<li><p><strong>Cultural factors</strong>: Social expectations about success, wage gaps, or gender stereotypes can exacerbate the syndrome.</p>
</li>
<li><p><strong>New environments</strong>: Changes like a new job or university enrollment can trigger insecurities.</p>
</li>
</ul>
<h3 id="heading-symptoms">Symptoms</h3>
<p>The most common symptoms include:</p>
<ul>
<li><p>Feeling that success is due to luck rather than skill.</p>
</li>
<li><p>Basing self-esteem on perceived abilities.</p>
</li>
<li><p>Needing work to be perfect to feel satisfied.</p>
</li>
<li><p>Sacrificing personal well-being for overwork.</p>
</li>
<li><p>Doubting one’s own abilities and feeling isolated.</p>
</li>
<li><p>Fearing exposure as a fraud.</p>
</li>
<li><p>Deterioration of mental health, such as anxiety, depression, or burnout (<a target="_blank" href="https://asana.com/resources/what-is-burnout">Asana</a>).</p>
</li>
</ul>
<p>These symptoms can form a cycle, as described by Pauline Clance in 1985, where an assigned task generates anxiety and self-criticism, leading to procrastination or perfectionism, which reinforces insecurities (<a target="_blank" href="https://en.wikipedia.org/wiki/Impostor_syndrome#Measuring_impostor_phenomenon">Wikipedia</a>).</p>
<h2 id="heading-types-of-impostor-syndrome">Types of Impostor Syndrome</h2>
<p>Psychologist Dr. Valerie Young identified five types of impostor syndrome, each with specific characteristics (<a target="_blank" href="https://www.lhh.com/en/insights/tips-to-overcome-impostor-syndrome/">LHH</a>, <a target="_blank" href="https://www.unobravo.com/en/blog/impostor-syndrome">Unobravo</a>):</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>Type</strong></td><td><strong>Description</strong></td></tr>
</thead>
<tbody>
<tr>
<td><strong>Perfectionist</strong></td><td>Seeks perfection in everything and feels dissatisfied with less-than-perfect results.</td></tr>
<tr>
<td><strong>Expert</strong></td><td>Believes they must know everything about a subject to be considered competent, constantly seeking training.</td></tr>
<tr>
<td><strong>Superhuman</strong></td><td>Feels they must work harder than others to prove their worth, often leading to burnout.</td></tr>
<tr>
<td><strong>Individualist</strong></td><td>Avoids asking for help, believing they must achieve everything on their own.</td></tr>
<tr>
<td><strong>Natural Genius</strong></td><td>Believes they should be naturally good at something without effort; hard work makes them feel like a fraud.</td></tr>
</tbody>
</table>
</div><h2 id="heading-impact-on-personal-and-professional-life">Impact on Personal and Professional Life</h2>
<p>Impostor syndrome can have significant consequences:</p>
<ul>
<li><p><strong>In the workplace</strong>: It can lead to avoiding new opportunities, overwork, low confidence, and burnout. It may also affect team productivity if leaders experience it (<a target="_blank" href="https://factorial.us/blog/impostor-syndrome-test/">Factorial</a>).</p>
</li>
<li><p><strong>In personal life</strong>: It can generate feelings of not deserving love or support, leading to insecurities and self-sabotage in relationships (<a target="_blank" href="https://www.unobravo.com/en/blog/impostor-syndrome">Unobravo</a>).</p>
</li>
<li><p><strong>Mental health</strong>: Constant self-criticism and fear of failure can contribute to anxiety, depression, and exhaustion.</p>
</li>
</ul>
<p>In competitive environments, such as tech or creative professions, the syndrome may manifest as "quiet quitting" (doing the minimum due to fear of failure) or overeffort to compensate for insecurities.</p>
<h2 id="heading-strategies-for-managing-impostor-syndrome">Strategies for Managing Impostor Syndrome</h2>
<h3 id="heading-personal-strategies">Personal Strategies</h3>
<ol>
<li><p><strong>Recognize and accept feelings</strong>: Accepting that impostor syndrome is common can reduce its impact. Knowing that up to 70% of people experience it helps normalize it (<a target="_blank" href="https://asana.com/resources/anatomy-of-work">Asana</a>).</p>
</li>
<li><p><strong>Share feelings</strong>: Talking with friends, colleagues, or mentors can provide perspective and support.</p>
</li>
<li><p><strong>Challenge negative thoughts</strong>: Analyze achievements and contrast them with objective evidence of competence.</p>
</li>
<li><p><strong>Set realistic goals</strong>: Reduce pressure by setting achievable objectives and celebrating small wins.</p>
</li>
<li><p><strong>Seek professional support</strong>: Therapies like cognitive-behavioral therapy (CBT) or mindfulness can help restructure distorted thoughts (<a target="_blank" href="https://www.unir.net/en/news/health/impostor-syndrome/">UNIR</a>).</p>
</li>
<li><p><strong>Celebrate achievements</strong>: Keep a record of successes and positive feedback to review during moments of doubt (<a target="_blank" href="https://www.osde.com.ar/en/health-and-wellness/impostor-syndrome-8-tips-to-avoid-it">OSDE</a>).</p>
</li>
</ol>
<h3 id="heading-strategies-for-managers-and-organizations">Strategies for Managers and Organizations</h3>
<ol>
<li><p><strong>Set clear expectations</strong>: Use tools like 30-60-90-day plans or SMART goals (<a target="_blank" href="https://asana.com/resources/30-60-90-day-plan">Asana</a>).</p>
</li>
<li><p><strong>Foster connections</strong>: Assign mentors or create support groups for new employees.</p>
</li>
<li><p><strong>Clarify communication norms</strong>: Establish clear channels to reduce insecurities (<a target="_blank" href="https://asana.com/resources/communication-plan">Asana</a>).</p>
</li>
<li><p><strong>Conduct frequent check-ins</strong>: Regular meetings to discuss progress and challenges.</p>
</li>
<li><p><strong>Provide feedback</strong>: Positive and constructive feedback to boost confidence (<a target="_blank" href="https://asana.com/resources/constructive-criticism">Asana</a>).</p>
</li>
<li><p><strong>Support professional growth</strong>: Offer development opportunities, such as leading projects (<a target="_blank" href="https://factorial.us/blog/impostor-syndrome-test/">Factorial</a>).</p>
</li>
</ol>
<h3 id="heading-prevention-in-the-workplace">Prevention in the Workplace</h3>
<p>Organizations can prevent impostor syndrome by:</p>
<ul>
<li><p><strong>Psychotherapy programs</strong>: Integrations like Doctor Chat can offer support (<a target="_blank" href="https://factorial.us/apps/integration/doctor-chat">Factorial</a>).</p>
</li>
<li><p><strong>Inclusive culture</strong>: Promote an environment that values diversity and recognizes achievements.</p>
</li>
<li><p><strong>Well-being surveys</strong>: Questions like "Do you feel your work must be perfect?" can detect the syndrome early (<a target="_blank" href="https://factorial.us/performance-evaluation">Factorial</a>).</p>
</li>
</ul>
<h2 id="heading-famous-examples">Famous Examples</h2>
<p>Impostor syndrome does not discriminate, affecting even highly successful individuals:</p>
<ul>
<li><p><strong>Shakira</strong>: Has shared feeling like an impostor in her music career (<a target="_blank" href="https://www.elperiodico.com/en/extra/20230302/shakira-suffers-impostor-syndrome-video-tiktok-dv-83981822">El Periódico</a>).</p>
</li>
<li><p><strong>Dani Martín</strong>: The singer has spoken about his insecurities regarding his success (<a target="_blank" href="https://cadenaser.com/castillalamancha/en/2023/02/01/the-impostor-syndrome-dani-martin-suffers-what-is-it-and-how-is-it-treated-ser-cuenca/">Cadena SER</a>).</p>
</li>
<li><p><strong>Jaime Lorente</strong>: The actor has revealed his struggle with the syndrome despite his success (<a target="_blank" href="https://www.laverdad.es/en/society/jaime-lorente-reveals-he-suffers-from-impostor-syndrome-20220131131917-nt.html">La Verdad</a>).</p>
</li>
<li><p><strong>Emma Watson</strong>: The actress has expressed feeling like an impostor in her role as an activist (<a target="_blank" href="https://www.lavoz.com.ar/en/entertainment/cinema/emma-watson-another-victim-of-impostor-syndrome-what-is-it/">La Voz</a>).</p>
</li>
</ul>
<p>These examples show that impostor syndrome is a shared experience, even among the most successful, which can be comforting for those facing it.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Impostor syndrome is a common challenge that can affect anyone, regardless of their level of success. However, with the right strategies, it is possible to manage and overcome it. Recognizing feelings, seeking support, challenging negative thoughts, and celebrating achievements are key steps to combat this syndrome. Organizations also play a crucial role in creating work environments that foster confidence and recognition.</p>
<p>If you think you are experiencing impostor syndrome, remember you are not alone. Seeking professional support, such as consulting a psychologist (<a target="_blank" href="https://www.unobravo.com/en">Unobravo</a>), can provide personalized tools to overcome it. With practice and support, you can learn to value your achievements and reach your true potential.</p>
<h2 id="heading-additional-resources">Additional Resources</h2>
<ul>
<li><p><strong>Recommended Books</strong>:</p>
<ul>
<li><p><em>The Impostor Syndrome: Why Women Still Don’t Believe in Themselves</em> by Elisabeth Cadoche (<a target="_blank" href="https://www.planetadelibros.com/en/book-the-impostor-syndrome/326774">Planeta de Libros</a>).</p>
</li>
<li><p><em>The Impostor Syndrome: When We Erroneously Believe Our Achievements Are Due to Luck</em> by Sandi Mann (<a target="_blank" href="https://www.casadellibro.com/en/book-the-impostor-syndrome-when-we-erroneously-believe-that-our-achievements-are-due-to-luck/9788416720972/11443305">Casa del Libro</a>).</p>
</li>
<li><p><em>The Impostor Syndrome: How to Overcome It and Unlock Your True Potential</em> by Aida Baida Gil.</p>
</li>
</ul>
</li>
<li><p><strong>Tools</strong>:</p>
<ul>
<li><p>Burnout test (<a target="_blank" href="https://www.unobravo.com/en/test/burnout">Unobravo</a>).</p>
</li>
<li><p>Daily planning templates (<a target="_blank" href="https://assets.asana.biz/m/3f9d7e709077d518/original/daily-schedule-template-en.pdf">Asana</a>).</p>
</li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Revamping a little bit the Radiomatik project]]></title><description><![CDATA[I launched Radiomatik.com back then in 2020. It's been a long journey and I never thought it would get as much attention from the search engines as it got. I am trying to give a little more care in these last few days.
I had to take care of two tasks...]]></description><link>https://dev.degomon.com/revamping-a-little-bit-the-radiomatik-project</link><guid isPermaLink="true">https://dev.degomon.com/revamping-a-little-bit-the-radiomatik-project</guid><category><![CDATA[buildinpublic]]></category><category><![CDATA[sidehustle]]></category><category><![CDATA[Flutter]]></category><category><![CDATA[flutter web]]></category><dc:creator><![CDATA[Denis González]]></dc:creator><pubDate>Tue, 10 Oct 2023 14:28:06 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1696947991437/36df6e7e-92ff-411b-b413-ce2af0067ea8.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I launched <a target="_blank" href="https://radiomatik.com">Radiomatik.com</a> back then in 2020. It's been a long journey and I never thought it would get as much attention from the search engines as it got. I am trying to give a little more care in these last few days.</p>
<p>I had to take care of two tasks mainly. The first one is to fix some overflows in some pages. I am using bootstrap for this project and it handles well the layout. Some stuff I don't like but I don't have the time to fix them now (tables mainly with bootstrap are a headache). The second stuff to fix (or to add in this case) is a form so radio station owners can request the inclusion of a new station.</p>
<p>This second task was primarily the most important to tackle. And because I am already very invested in Flutter, then I wanted to try how flutter fits into a web-only strategy. This is where the new station request form was built and is already online.</p>
<p>Let me tell you that I found it relatively easy to set up (or can I call it deploy? ) the form to the site. The main trouble that I didn't get the first time was to deploy the form to its path. Then I searched in the documentation and google, and found that I had to provide the --base-ref flag at the moment of building the app for the web.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1696947811877/ccbd6aa6-92e0-4e02-b8f0-de432651d4b7.png" alt class="image--center mx-auto" /></p>
<p>With the <code>--base-ref</code> flag you can specify what the path of your web app is going to be based. In my case, I did it at <code>/radioform/</code></p>
<p>It was a productive weekend, I feel, and I am ready to refactor some other stuff in Radiomatik and other projects that I have hanging around the web.</p>
]]></content:encoded></item><item><title><![CDATA[What would be a good Flutter Roadmap ?]]></title><description><![CDATA[So, you've decided to dive headfirst into the world of Flutter, where widgets are your best friends, state management is a riddle wrapped in an enigma, and the Flutter community is as vibrant as a kaleidoscope. Fear not, fellow adventurer! Whether yo...]]></description><link>https://dev.degomon.com/what-would-be-a-good-flutter-roadmap</link><guid isPermaLink="true">https://dev.degomon.com/what-would-be-a-good-flutter-roadmap</guid><category><![CDATA[Flutter]]></category><category><![CDATA[Roadmap]]></category><category><![CDATA[Dart]]></category><dc:creator><![CDATA[Denis González]]></dc:creator><pubDate>Fri, 29 Sep 2023 16:59:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1696006585886/4577b21d-720e-437f-bb39-4945fe8ab895.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>So, you've decided to dive headfirst into the world of Flutter, where widgets are your best friends, state management is a riddle wrapped in an enigma, and the Flutter community is as vibrant as a kaleidoscope. Fear not, fellow adventurer! Whether you're just starting your journey or plotting an epic Flutter conquest, this roadmap will be your trusty map through the widget wonderland. Get ready to Flutter, dance with Dart, and discover the secrets of making beautiful, whimsical apps that might just make your users chuckle (or at least smile). 🤖✨</p>
<h2 id="heading-beginner-level">Beginner Level:</h2>
<ol>
<li><p><strong>Introduction to Flutter</strong>:</p>
<ul>
<li><p>Understand what Flutter is and its benefits: here I would like you to understand that Flutter is truly multiplatform in the way that you can keep a single codebase.</p>
</li>
<li><p>Install Flutter and set up your development environment: The <a target="_blank" href="https://flutter.dev/learn">google guide</a> should be enough for this.</p>
</li>
</ul>
</li>
<li><p><strong>Dart Programming</strong>:</p>
<ul>
<li><p>Learn the Dart programming language, which is the foundation of Flutter.</p>
</li>
<li><p>Study basic Dart concepts like variables, functions, and data types.</p>
</li>
</ul>
</li>
<li><p><strong>Flutter Fundamentals</strong>:</p>
<ul>
<li><p>Explore Flutter widgets and how to build UI components.</p>
</li>
<li><p>Understand layout and design principles in Flutter.</p>
</li>
</ul>
</li>
<li><p><strong>State Management Basics</strong>:</p>
<ul>
<li>Learn about the different ways to manage state in Flutter, starting with <code>setState</code>. For small apps setState should be enough to begin with, but for more complex apps you should take a look at state management tools like <a target="_blank" href="https://riverpod.dev/">riverpod</a> and <a target="_blank" href="https://bloclibrary.dev">fluter_bloc</a>.</li>
</ul>
</li>
<li><p><strong>Navigation and Routing</strong>:</p>
<ul>
<li>Implement navigation between screens in your Flutter app.</li>
</ul>
</li>
</ol>
<h2 id="heading-intermediate-level">Intermediate Level:</h2>
<ol>
<li><p><strong>Advanced UI Design</strong>:</p>
<ul>
<li>Dive deeper into Flutter UI design, including custom widgets and animations.</li>
</ul>
</li>
<li><p><strong>State Management Techniques</strong>:</p>
<ul>
<li>Explore more advanced state management options like Provider, Bloc, MobX, and Riverpod.</li>
</ul>
</li>
<li><p><strong>Networking and API Integration</strong>:</p>
<ul>
<li>Learn how to make HTTP requests and integrate APIs into your Flutter app.</li>
</ul>
</li>
<li><p><strong>Database Integration</strong>:</p>
<ul>
<li>Explore data storage solutions like SQLite, Firebase Firestore, or local storage. There are newer packages like <a target="_blank" href="https://pub.dev/packages/hive">hive</a>, <a target="_blank" href="https://isar.dev/">Isar</a>, <a target="_blank" href="https://pub.dev/packages/sembast">sembast</a>, <a target="_blank" href="https://pub.dev/packages/objectbox">objectbox</a></li>
</ul>
</li>
<li><p><strong>Internationalization and Localization</strong>:</p>
<ul>
<li>Make your app accessible to a global audience by adding support for multiple languages.</li>
</ul>
</li>
</ol>
<h2 id="heading-advanced-level">Advanced Level:</h2>
<ol>
<li><p><strong>Flutter Testing</strong>:</p>
<ul>
<li>Master testing techniques for Flutter apps, including unit, widget, and integration testing.</li>
</ul>
</li>
<li><p><strong>Performance Optimization</strong>:</p>
<ul>
<li>Optimize your app's performance and efficiency, including handling large datasets and optimizing build sizes.</li>
</ul>
</li>
<li><p><strong>Deployment and Publishing</strong>:</p>
<ul>
<li>Understand the process of deploying your app to app stores (Google Play Store, Apple App Store) and web platforms.</li>
</ul>
</li>
<li><p><strong>Continuous Integration/Continuous Deployment (CI/CD)</strong>:</p>
<ul>
<li>Set up CI/CD pipelines for automated testing and deployment of your Flutter app.</li>
</ul>
</li>
<li><p><strong>Platform-Specific Features</strong>:</p>
<ul>
<li>Explore platform-specific integrations and features, such as camera access, geolocation, and sensors.</li>
</ul>
</li>
</ol>
<h2 id="heading-expert-level">Expert Level:</h2>
<ol>
<li><p><strong>Custom Plugins and Packages</strong>:</p>
<ul>
<li>Create custom Flutter plugins and packages to extend Flutter's capabilities.</li>
</ul>
</li>
<li><p><strong>Flutter for Web and Desktop</strong>:</p>
<ul>
<li>Learn how to adapt your Flutter app for web and desktop platforms.</li>
</ul>
</li>
<li><p><strong>Flutter Internals</strong>:</p>
<ul>
<li>Deep dive into the Flutter framework's source code and understand how it works under the hood.</li>
</ul>
</li>
<li><p><strong>Contributing to the Flutter Ecosystem</strong>:</p>
<ul>
<li>Contribute to the Flutter open-source community by fixing bugs, submitting pull requests, or creating plugins.</li>
</ul>
</li>
<li><p><strong>Mentoring and Sharing Knowledge</strong>:</p>
<ul>
<li>Share your expertise with others through blog posts, tutorials, or mentoring newcomers to Flutter.</li>
</ul>
</li>
</ol>
<p>Remember that this roadmap is flexible, and you can adjust it based on your goals and interests. Flutter is a rapidly evolving framework, so staying updated with the latest releases and best practices is essential throughout your journey.</p>
]]></content:encoded></item></channel></rss>