<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ubong Patrick</title>
    <description>The latest articles on DEV Community by Ubong Patrick (@ubong_patrick).</description>
    <link>https://dev.to/ubong_patrick</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%2F1693629%2Face035ac-ce73-4ba5-aa07-aff0f9116e86.jpeg</url>
      <title>DEV Community: Ubong Patrick</title>
      <link>https://dev.to/ubong_patrick</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ubong_patrick"/>
    <language>en</language>
    <item>
      <title>Why I Want to Be a Front-End Developer and How HNG Will Help Me Achieve My Goals</title>
      <dc:creator>Ubong Patrick</dc:creator>
      <pubDate>Thu, 30 Jan 2025 06:31:54 +0000</pubDate>
      <link>https://dev.to/ubong_patrick/why-i-want-to-be-a-front-end-developer-and-how-hng-will-help-me-achieve-my-goals-448o</link>
      <guid>https://dev.to/ubong_patrick/why-i-want-to-be-a-front-end-developer-and-how-hng-will-help-me-achieve-my-goals-448o</guid>
      <description>&lt;h2&gt;
  
  
  My Motivation for Becoming a Frontend Developer
&lt;/h2&gt;

&lt;p&gt;The world of technology has always fascinated me, especially how web applications come to life through intuitive and engaging interfaces. My journey into frontend development started with a deep interest in designing and building user-friendly experiences. Seeing how HTML, CSS, and JavaScript work together to create stunning and functional websites inspired me to dive deeper into frameworks like React.js and Next.js. The ability to bring ideas to life through code and design is what fuels my passion for frontend development.&lt;/p&gt;

&lt;p&gt;Additionally, the demand for skilled frontend developers continues to rise. Companies are constantly looking for professionals who can create seamless and interactive user experiences. Learning frontend development not only aligns with my passion but also opens doors to exciting career opportunities.&lt;/p&gt;

&lt;h2&gt;
  
  
  How HNG Will Help Me Grow in the Field
&lt;/h2&gt;

&lt;p&gt;The HNG Internship is an excellent opportunity to sharpen my skills, gain hands-on experience, and collaborate with talented developers. One of the main reasons I joined this internship is its structured learning approach, real-world projects, and mentorship from industry experts.&lt;/p&gt;

&lt;p&gt;Through HNG, I will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Work on real-life projects that simulate professional frontend development tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improve my skills in React.js, Next.js, and other relevant technologies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gain insights into best practices for writing clean and maintainable code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect with a community of like-minded developers and mentors who can guide me in my career path.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By participating in this internship, I am confident that I will improve both my technical and soft skills, making me a better developer and team player.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Goals for the Internship and How I Plan to Achieve Them
&lt;/h2&gt;

&lt;p&gt;I have set clear goals for my time at HNG, and I plan to achieve them by staying consistent and committed to the learning process. Here are some of my key goals:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Master Frontend Technologies
&lt;/h2&gt;

&lt;p&gt;I aim to enhance my knowledge of React.js, Next.js, and JavaScript. I will achieve this by actively participating in internship tasks and following industry best practices. For example, companies often &lt;a href="https://hng.tech/hire/reactjs-developers" rel="noopener noreferrer"&gt;Hire React.js Developers&lt;/a&gt; to build scalable web applications, and I want to develop the expertise required to meet such demands.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Build a Strong Portfolio
&lt;/h2&gt;

&lt;p&gt;A solid portfolio is essential for career growth. I will contribute to open-source projects and document my work throughout the internship. Hosting my work on platforms like GitHub, Netlify, and Vercel will help showcase my skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Improve Collaboration and Problem-Solving Skills
&lt;/h2&gt;

&lt;p&gt;Frontend development is not just about writing code—it involves working with teams, UI/UX designers, and backend developers. Through HNG, I will collaborate with other interns, participate in discussions, and learn effective problem-solving strategies.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Expand My Professional Network
&lt;/h2&gt;

&lt;p&gt;Networking is crucial in the tech industry. HNG provides an excellent platform to connect with mentors, experienced developers, and fellow interns. I plan to take full advantage of this opportunity by engaging with the community and learning from their experiences.&lt;/p&gt;

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

&lt;p&gt;Joining the HNG Internship is a significant step toward achieving my dream of becoming a skilled frontend developer. With its hands-on approach, mentorship, and real-world projects, I am confident that this experience will help me grow and refine my skills. By the end of the program, I aim to be proficient in building high-quality web applications and positioning myself for exciting career opportunities.&lt;/p&gt;

&lt;p&gt;This journey is not just about learning to code; it’s about becoming a well-rounded developer ready to take on challenges and make an impact in the tech industry. I look forward to embracing every opportunity and making the most out of this internship.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Solving User Authorization Issues for Deposits in a Fintech Project</title>
      <dc:creator>Ubong Patrick</dc:creator>
      <pubDate>Fri, 28 Jun 2024 15:27:24 +0000</pubDate>
      <link>https://dev.to/ubong_patrick/solving-user-authorization-issues-for-deposits-in-a-fintech-project-566l</link>
      <guid>https://dev.to/ubong_patrick/solving-user-authorization-issues-for-deposits-in-a-fintech-project-566l</guid>
      <description>&lt;p&gt;The fintech world is constantly changing and securing financial transactions is of utmost importance. Recently, I faced a particularly challenging problem in a fintech project I was working on. The task was to ensure that only authorized users could make deposits into their accounts. Despite using JSON Web Tokens (JWT) for authentication and authorization, I ran into some significant roadblocks. Here's a personal account of how I tackled this issue and finally found a solution.&lt;/p&gt;

&lt;p&gt;Imagine this: You’ve done a decent job building a fintech application using Node.js, Express, MongoDB, and JWT. You’re feeling pretty good about it, but then you realize that your user authorization isn't working as expected. Valid tokens aren’t being recognized, and worse, invalid tokens are slipping through the cracks. This isn’t just a bug; it’s a security nightmare waiting to happen. Frustration sets in as you try to figure out what went wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;These Are The Steps I Followed To Resolve The Issue&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 1: Identifying the Root Cause&lt;/strong&gt;&lt;br&gt;
First, I needed to relax my mind and carefully identify why the JWT authorization was failing. This meant digging deep into the potential issues and these where the questions I asked myself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Was the token generation process flawed?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Were tokens being stored and retrieved correctly?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Was the middleware for token verification functioning as intended?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Were the authorization checks in the deposit route properly configured?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Correcting JWT Generation&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Making sure to use a strong secret key and including necessary user information in the token payload was the first step toward regaining control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Storing and Retrieving Tokens&lt;/strong&gt;&lt;br&gt;
Next, I ensured that tokens were correctly sent to the client and stored securely. Tokens should typically be stored in HTTP-only cookies or local storage on the client side. Here's an example of how to set an HTTP-only cookie in Express:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Step 4: Implementing Token Verification Middleware&lt;/strong&gt;&lt;br&gt;
The next step was to verify tokens for protected routes. I implemented middleware to check if the token provided in the request header was valid. Here's how I did it:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Step 5: Implementing Authorization in the Deposit Route&lt;/strong&gt;&lt;br&gt;
With the token verification in place, I added the authorization check in the deposit route. This ensured that only authenticated users could make deposits. Here’s the implementation:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Step 6: Testing the Implementation&lt;/strong&gt;&lt;br&gt;
Finally, after implementing these steps, I tested the authorization flow rigorously:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Verified that valid tokens allowed access to the deposit route.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensured that invalid or expired tokens were correctly rejected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Checked that unauthorized users couldn't make deposits.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I saw everything working perfectly, it was a moment of great relief. The frustration and uncertainty I felt earlier were replaced with satisfaction and fulfilment. It was a reminder that persistence pays off and that every problem, no matter how daunting, has a solution if approached methodically.&lt;/p&gt;

&lt;p&gt;Reflecting on this challenging yet rewarding experience, I eagerly anticipate the journey ahead with the HNG Internship. Known for pushing interns to their limits and fostering growth, this program offers invaluable real-world experience. My aim in joining HNG Internship is to refine my skills, engage in impactful projects, and learn from industry leaders.&lt;/p&gt;

&lt;p&gt;Beyond coding, HNG promotes collaboration, innovation, and pushing boundaries. It's a chance to contribute to meaningful projects that drive change. Whether you're seeking talented developers or aiming to enhance your skills, explore HNG's hiring platform &lt;a href="https://hng.tech/hire"&gt;https://hng.tech/hire&lt;/a&gt;. Discover top talent ready to tackle complex challenges at &lt;a href="https://hng.tech/internship"&gt;https://hng.tech/internship&lt;/a&gt;, or Premium opportunities &lt;a href="https://hng.tech/premium"&gt;https://hng.tech/premium&lt;/a&gt;. Join us in shaping the future of tech!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Vue.js vs ReactJS: A Deep Dive into Two Frontend Titans</title>
      <dc:creator>Ubong Patrick</dc:creator>
      <pubDate>Thu, 27 Jun 2024 13:24:44 +0000</pubDate>
      <link>https://dev.to/ubong_patrick/vuejs-vs-reactjs-a-deep-dive-into-two-frontend-titans-2ph3</link>
      <guid>https://dev.to/ubong_patrick/vuejs-vs-reactjs-a-deep-dive-into-two-frontend-titans-2ph3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
In the dynamic world of frontend development, picking the right framework is crucial. Today, we’ll dive into a comparison between Vue.js and ReactJS, two powerful JavaScript libraries. Understanding their differences and strengths will help you make the best choice for your next project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vue.js: The Progressive Framework&lt;/strong&gt;&lt;br&gt;
Vue.js, created by Evan You, is a progressive JavaScript framework that's become quite popular. Its main goal is to offer a flexible and adaptable way to build user interfaces. Vue.js is loved for its simplicity and ease of integration, making it a favorite among developers who appreciate a quick learning curve and smooth transitions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features of Vue.js:&lt;/strong&gt;&lt;br&gt;
Declarative Rendering: Vue.js lets developers declaratively render data to the DOM with simple template syntax.&lt;br&gt;
Component-Based Architecture: Like other modern frameworks, Vue.js uses a component-based structure, promoting reusability and modularity.&lt;br&gt;
Reactive Data Binding: Vue’s reactivity system ensures changes to data automatically reflect in the DOM, reducing manual DOM manipulation.&lt;br&gt;
Single-File Components: Vue’s single-file components (.vue files) encapsulate HTML, CSS, and JavaScript, keeping things neat and organized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ReactJS: The UI Library&lt;/strong&gt;&lt;br&gt;
ReactJS, developed by Facebook, is a JavaScript library designed for building user interfaces. It's known for its performance and flexibility, making it ideal for large-scale applications and complex UIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features of ReactJS:&lt;/strong&gt;&lt;br&gt;
Virtual DOM: React’s virtual DOM efficiently updates the actual DOM by comparing the virtual DOM tree, minimizing performance issues.&lt;br&gt;
JSX: React uses JSX, a syntax extension allowing you to write HTML within JavaScript, enhancing readability and maintainability.&lt;br&gt;
Component-Based Architecture: Similar to Vue.js, React promotes reusable components, enabling developers to break down complex UIs into manageable parts.&lt;br&gt;
Unidirectional Data Flow: React’s unidirectional data flow ensures predictable state management, simplifying debugging and enhancing stability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comparing Vue.js and ReactJS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Curve:&lt;/strong&gt;&lt;br&gt;
Vue.js: Vue’s gentle learning curve is one of its best features. Its intuitive syntax and clear documentation make it accessible for both beginners and experienced developers.&lt;br&gt;
ReactJS: React’s learning curve is steeper due to the need to understand JSX and the component lifecycle. However, once mastered, React offers powerful tools and patterns for building sophisticated applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community and Ecosystem:&lt;/strong&gt;&lt;br&gt;
Vue.js: Vue has a growing, passionate community. Its ecosystem includes Vue Router for routing and Vuex for state management, providing a well-rounded development experience.&lt;br&gt;
ReactJS: React boasts a massive community and extensive ecosystem. With numerous libraries and tools like Redux for state management and React Router for routing, React is ideal for large-scale projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance:&lt;/strong&gt;&lt;br&gt;
Vue.js: Vue’s performance is impressive, especially for smaller to medium-sized applications. Its reactivity system and efficient rendering ensure a smooth user experience.&lt;br&gt;
ReactJS: React’s virtual DOM and fine-grained control over component updates give it a performance edge, particularly for complex and dynamic applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My HNG Journey with ReactJS&lt;/strong&gt;&lt;br&gt;
As an HNG Intern, I'm thrilled to dive deep into ReactJS. The HNG Internship program offers an incredible opportunity to learn and grow as a developer. With ReactJS, I look forward to building interactive and high-performance web applications that can handle real-world challenges. The hands-on experience and mentorship from industry experts at HNG are invaluable, and I'm excited to contribute to meaningful projects and collaborate with like-minded peers.&lt;/p&gt;

&lt;p&gt;For those interested in learning more about the HNG Internship program, check out &lt;a href="https://hng.tech/internship"&gt;https://hng.tech/internship&lt;/a&gt;, &lt;a href="https://hng.tech/hire"&gt;https://hng.tech/hire&lt;/a&gt; and explore opportunities for hiring interns or joining the premium program at &lt;a href="https://hng.tech/premium"&gt;https://hng.tech/premium&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
In the battle between Vue.js and ReactJS, there’s no definitive winner. Each has its strengths and is suited for different types of projects. Vue.js shines with its simplicity and ease of integration, making it ideal for smaller to medium-sized applications. ReactJS excels in performance and flexibility, perfect for large-scale and complex projects.&lt;/p&gt;

&lt;p&gt;Choosing the right tool depends on your specific needs, team expertise, and project requirements. As for me, the journey with ReactJS at HNG is just beginning, and I can’t wait to see where it leads me!&lt;/p&gt;

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