<?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: Fabio J Raminhuk</title>
    <description>The latest articles on Forem by Fabio J Raminhuk (@raminhuk).</description>
    <link>https://forem.com/raminhuk</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%2F1409335%2F96efe1d0-5d3a-4611-8785-355e340a730c.jpeg</url>
      <title>Forem: Fabio J Raminhuk</title>
      <link>https://forem.com/raminhuk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/raminhuk"/>
    <language>en</language>
    <item>
      <title>Introducing DevShowcase: The Platform Where Developers Shine and Connect</title>
      <dc:creator>Fabio J Raminhuk</dc:creator>
      <pubDate>Mon, 12 May 2025 23:12:23 +0000</pubDate>
      <link>https://forem.com/raminhuk/introducing-devshowcase-the-platform-where-developers-shine-and-connect-1blc</link>
      <guid>https://forem.com/raminhuk/introducing-devshowcase-the-platform-where-developers-shine-and-connect-1blc</guid>
      <description>&lt;p&gt;If you're a developer looking for a professional and efficient way to showcase your portfolio, connect with the tech community, and get discovered by recruiters, meet DevShowcase — the new platform built by developers, for developers.&lt;/p&gt;

&lt;p&gt;🌐 What is &lt;a href="https://devshowcase.dev" rel="noopener noreferrer"&gt;DevShowcase&lt;/a&gt;?&lt;br&gt;
&lt;a href="https://devshowcase.dev" rel="noopener noreferrer"&gt;devshowcase.dev&lt;/a&gt; is a platform designed to help developers share their portfolios, discover new talent, and connect with others in the industry. Whether you’re junior, mid-level, or senior, DevShowcase gives you a spotlight to show what you’re capable of.&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%2Fjzi2em1zkt8h2jhnu483.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%2Fjzi2em1zkt8h2jhnu483.png" alt="Image description" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👨‍💻 For Developers&lt;br&gt;
Sign up using Google or GitHub&lt;/p&gt;

&lt;p&gt;Add your portfolio, tech stack, short bio, and social links&lt;/p&gt;

&lt;p&gt;Gain visibility through a public developer directory&lt;/p&gt;

&lt;p&gt;Discover and connect with other developers in the community&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%2Fdl503ytn3shtc9vzddxn.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%2Fdl503ytn3shtc9vzddxn.png" alt="Image description" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧑‍💼 For Recruiters &amp;amp; Companies&lt;br&gt;
Tired of sifting through generic platforms to find skilled developers?&lt;/p&gt;

&lt;p&gt;With DevShowcase, you can:&lt;/p&gt;

&lt;p&gt;Browse developer profiles filtered by technology, seniority, or name&lt;/p&gt;

&lt;p&gt;View real portfolios with links, project highlights, and stacks&lt;/p&gt;

&lt;p&gt;Find the right talent faster and more effectively&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%2Fpruzjsym47mrbzp9u2v5.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%2Fpruzjsym47mrbzp9u2v5.png" alt="Image description" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎯 Our Mission&lt;br&gt;
We believe every developer deserves a platform to showcase their talent and connect with meaningful opportunities. DevShowcase exists to strengthen the developer community by offering a free, intuitive, and visibility-focused platform.&lt;/p&gt;

&lt;p&gt;🛠️ How It Works&lt;br&gt;
Sign in with Google or GitHub&lt;br&gt;
Fast and secure. We use your public profile info to get you started.&lt;/p&gt;

&lt;p&gt;Build Your Portfolio&lt;br&gt;
Add your portfolio link, tech stack, a short bio, and social media handles.&lt;/p&gt;

&lt;p&gt;Get Discovered&lt;br&gt;
Your profile is indexed and searchable by tech stack, seniority, and name.&lt;/p&gt;

&lt;p&gt;Connect&lt;br&gt;
Explore other developers, make connections, and grow your network.&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%2Fficef46ad50xhf6dunf1.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%2Fficef46ad50xhf6dunf1.png" alt="Image description" width="800" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🤝 Join the DevShowcase Community&lt;br&gt;
More than just a portfolio platform, DevShowcase is a vibrant and growing network of developers passionate about learning, building, and advancing their careers.&lt;/p&gt;

&lt;p&gt;Sign up now at &lt;a href="https://devshowcase.dev" rel="noopener noreferrer"&gt;devshowcase.dev&lt;/a&gt; and be part of the next wave of developer visibility and connection.&lt;/p&gt;

&lt;p&gt;📢 Spread the Word!&lt;br&gt;
If you love what we’re building, share it with fellow devs, tech recruiters, or post your DevShowcase profile on LinkedIn using the hashtag #DevShowcase. Together, we can highlight the talent that powers the tech world.&lt;/p&gt;

</description>
      <category>developer</category>
      <category>development</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>Leveraging useRef in TypeScript for Efficient DOM Manipulation</title>
      <dc:creator>Fabio J Raminhuk</dc:creator>
      <pubDate>Sat, 06 Apr 2024 14:08:25 +0000</pubDate>
      <link>https://forem.com/raminhuk/leveraging-useref-in-typescript-for-efficient-dom-manipulation-1e3e</link>
      <guid>https://forem.com/raminhuk/leveraging-useref-in-typescript-for-efficient-dom-manipulation-1e3e</guid>
      <description>&lt;p&gt;When it comes to managing DOM elements in React applications, the useRef hook emerges as a powerful ally, particularly when working with TypeScript. useRef allows us to reference DOM elements directly, facilitating tasks such as focusing inputs, measuring elements, or even integrating with third-party libraries.&lt;/p&gt;

&lt;p&gt;Understanding useRef in TypeScript:&lt;br&gt;
In TypeScript, useRef is declared with a generic type parameter, specifying the type of the referenced element. This enhances type safety, ensuring that the referenced element matches the expected type.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useRef } from 'react';

// Example of useRef with TypeScript
const myRef = useRef&amp;lt;HTMLDivElement&amp;gt;(null);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Practical Examples:&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessing DOM Elements:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useRef, useEffect } from 'react';

const MyComponent: React.FC = () =&amp;gt; {
  const inputRef = useRef&amp;lt;HTMLInputElement&amp;gt;(null);

  useEffect(() =&amp;gt; {
    if (inputRef.current) {
      inputRef.current.focus();
    }
  }, []);

  return &amp;lt;input ref={inputRef} /&amp;gt;;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Managing Previous State:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useRef, useEffect } from 'react';

const MyComponent: React.FC = () =&amp;gt; {
  const prevValueRef = useRef&amp;lt;number&amp;gt;(0);
  const [value, setValue] = useState&amp;lt;number&amp;gt;(0);

  useEffect(() =&amp;gt; {
    prevValueRef.current = value;
  }, [value]);

  return (
    &amp;lt;&amp;gt;
      &amp;lt;p&amp;gt;Previous Value: {prevValueRef.current}&amp;lt;/p&amp;gt;
      &amp;lt;input
        type="number"
        value={value}
        onChange={(e) =&amp;gt; setValue(parseInt(e.target.value))}
      /&amp;gt;
    &amp;lt;/&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Interfacing with Third-party Libraries:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useRef, useEffect } from 'react';
import * as d3 from 'd3';

const MyD3Component: React.FC = () =&amp;gt; {
  const svgRef = useRef&amp;lt;SVGSVGElement&amp;gt;(null);

  useEffect(() =&amp;gt; {
    if (svgRef.current) {
      const svg = d3.select(svgRef.current);
      // D3 code for visualization
    }
  }, []);

  return &amp;lt;svg ref={svgRef}&amp;gt;&amp;lt;/svg&amp;gt;;
};

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benefits of useRef in TypeScript:&lt;br&gt;
Type Safety: TypeScript ensures that the referenced elements adhere to the specified type, reducing runtime errors.&lt;br&gt;
Efficient DOM Manipulation: useRef facilitates direct access to DOM elements, enabling efficient operations like focusing inputs or integrating with external libraries.&lt;br&gt;
Enhanced Code Readability: By providing a clear reference to DOM elements, useRef improves code readability and maintainability.&lt;/p&gt;

&lt;p&gt;In conclusion, the useRef hook in TypeScript significantly enhances the management of DOM elements in React applications. Its integration provides type safety, efficiency, and clarity, empowering developers to build robust and scalable user interfaces.&lt;/p&gt;

&lt;p&gt;Reference:&lt;br&gt;
&lt;a href="https://fabra.dev/blog/leveraging-useref-typescript-efficient-dom-manipulation"&gt;Leveraging useRef in TypeScript for Efficient DOM Manipulation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>react</category>
      <category>useref</category>
      <category>dom</category>
    </item>
    <item>
      <title>Understanding Intersection Types in TypeScript</title>
      <dc:creator>Fabio J Raminhuk</dc:creator>
      <pubDate>Sat, 06 Apr 2024 13:59:19 +0000</pubDate>
      <link>https://forem.com/raminhuk/understanding-intersection-types-in-typescript-2bd3</link>
      <guid>https://forem.com/raminhuk/understanding-intersection-types-in-typescript-2bd3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Intersection types are an essential feature in TypeScript that allow developers to combine multiple types into a single type. This powerful tool enhances type safety and flexibility in codebases. In this article, we'll delve into what intersection types are, how they work, and explore some practical use cases in TypeScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Intersection Types?
&lt;/h2&gt;

&lt;p&gt;Intersection types in TypeScript are denoted by the &amp;amp; symbol and are used to combine multiple types into a single type that has all the features of each constituent type. When a value is of an intersection type, it must satisfy all the types included in the intersection.&lt;/p&gt;

&lt;p&gt;Syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;type CombinedType = Type1 &amp;amp; Type2;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;type Dog = {
  name: string;
  breed: string;
};

type Bird = {
  name: string;
  wingspan: number;
};

type Pet = Dog &amp;amp; Bird;

const myPet: Pet = {
  name: "Charlie",
  breed: "Labrador",
  wingspan: 30,
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use Cases:&lt;/p&gt;

&lt;h2&gt;
  
  
  Extending Object Types:
&lt;/h2&gt;

&lt;p&gt;Intersection types are useful when extending object types with additional properties while retaining the original properties.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;type User = {
  id: number;
  name: string;
};

type Admin = {
  id: number;
  role: string;
};

type SuperAdmin = User &amp;amp; Admin;

const superAdminUser: SuperAdmin = {
  id: 1,
  name: "John Doe",
  role: "Super Admin",
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Combining Function Signatures:
&lt;/h2&gt;

&lt;p&gt;Intersection types can combine multiple function signatures, allowing functions to accept different parameter types or return multiple types.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;type Logger = (message: string) =&amp;gt; void;
type Formatter = (message: string) =&amp;gt; string;

type LogFormatter = Logger &amp;amp; Formatter;

const logAndFormat: LogFormatter = (message) =&amp;gt; {
  console.log(message);
  return `Formatted: ${message}`;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Intersection types in TypeScript provide a powerful mechanism for creating complex types by combining multiple types. They offer enhanced type safety and flexibility, enabling developers to express richer data structures and function signatures in their code.&lt;/p&gt;

&lt;p&gt;Explore more about TypeScript's intersection types and unleash their potential in your projects!&lt;/p&gt;

&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://fabra.dev/blog/intersection-types-typescript-guide"&gt;Understanding Intersection Types in TypeScript&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html"&gt;Intersection Types&lt;/a&gt;&lt;/p&gt;

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