<?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: Adedoyin OLANIPEKUN</title>
    <description>The latest articles on DEV Community by Adedoyin OLANIPEKUN (@aolanipekun).</description>
    <link>https://dev.to/aolanipekun</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%2F780850%2F83b29a3d-c1ef-41bf-9be2-2c8d2901a3f3.jpeg</url>
      <title>DEV Community: Adedoyin OLANIPEKUN</title>
      <link>https://dev.to/aolanipekun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aolanipekun"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Adedoyin OLANIPEKUN</dc:creator>
      <pubDate>Wed, 04 Dec 2024 16:26:04 +0000</pubDate>
      <link>https://dev.to/aolanipekun/-4b6k</link>
      <guid>https://dev.to/aolanipekun/-4b6k</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/aolanipekun" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F780850%2F83b29a3d-c1ef-41bf-9be2-2c8d2901a3f3.jpeg" alt="aolanipekun"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/aolanipekun/socketio-vs-websocket-pros-and-cons-for-beginners-1ba" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Socket.IO vs. WebSocket: Pros and Cons for Beginners&lt;/h2&gt;
      &lt;h3&gt;Adedoyin OLANIPEKUN ・ Dec 4&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#websocket&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#socketio&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Socket.IO vs. WebSocket: Pros and Cons for Beginners</title>
      <dc:creator>Adedoyin OLANIPEKUN</dc:creator>
      <pubDate>Wed, 04 Dec 2024 16:19:26 +0000</pubDate>
      <link>https://dev.to/aolanipekun/socketio-vs-websocket-pros-and-cons-for-beginners-1ba</link>
      <guid>https://dev.to/aolanipekun/socketio-vs-websocket-pros-and-cons-for-beginners-1ba</guid>
      <description>&lt;p&gt;If you're new to real-time communication for your apps, you’ve likely come across Socket.IO and WebSocket. These technologies enable live data exchange between clients (e.g., browsers) and servers, although they have distinct differences. Let’s break it down!&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%2F4txi5933cu8ukteuq0dp.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%2F4txi5933cu8ukteuq0dp.png" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Are They?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;WebSocket:&lt;/strong&gt; A protocol that establishes a direct, two-way communication channel between the server and the client. It’s part of the HTML5 standard and operates over a single TCP connection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Socket.IO:&lt;/strong&gt; A library built on WebSocket offers additional features like fallbacks for older browsers, event handling, and reconnection support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and Cons&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1.WebSocket&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Pros:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;High Performance:&lt;/strong&gt;&lt;br&gt;
WebSocket is lightweight, with minimal overhead, making it faster and more efficient for real-time applications like live chats or financial tickers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standards-Based:&lt;/strong&gt;&lt;br&gt;
It’s a native browser technology supported by most modern browsers, with no need for external libraries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flexibility:&lt;/strong&gt;&lt;br&gt;
Works across multiple platforms and programming languages without requiring a specific library on both sides.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplicity:&lt;/strong&gt;&lt;br&gt;
WebSocket is straightforward to implement if you only need a basic real-time connection.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Cons:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Manual Handling:&lt;/strong&gt;&lt;br&gt;
You need to handle reconnection, event management, and error handling yourself.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compatibility Issues:&lt;/strong&gt;&lt;br&gt;
Older browsers may not fully support WebSocket. Without fallback mechanisms, users on older devices may face issues.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No Built-in Features:&lt;/strong&gt;&lt;br&gt;
Lacks higher-level abstractions like rooms, namespaces, or built-in event acknowledgements.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Socket.IO&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Pros:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ease of Use:&lt;/strong&gt;&lt;br&gt;
Simplifies real-time app development with an event-driven API (e.g., socket.emit and socket.on for sending and receiving messages).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Browser Compatibility:&lt;/strong&gt;&lt;br&gt;
Offers fallbacks like HTTP long polling for browsers that don’t support WebSocket.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic Reconnection:&lt;/strong&gt;&lt;br&gt;
Handles network interruptions by automatically retrying connections.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Built-In Features:&lt;/strong&gt;&lt;br&gt;
Rooms and Namespaces: Organize clients into groups (e.g., chat rooms) or separate communication channels.&lt;br&gt;
Event Acknowledgment: Confirms that messages were delivered.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rich Ecosystem:&lt;/strong&gt;&lt;br&gt;
Provides middleware support for tasks like authentication or message validation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Cons:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance Overhead:&lt;/strong&gt;&lt;br&gt;
Socket.IO adds extra abstraction layers, making it slightly slower than pure WebSocket.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dependency:&lt;/strong&gt;&lt;br&gt;
Both the client and server must use the Socket.IO library, which locks you into its ecosystem.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Complex Internals:&lt;/strong&gt;&lt;br&gt;
For advanced developers, debugging or customizing Socket.IO’s internals can be challenging.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Which One Should You Choose?&lt;/strong&gt;&lt;br&gt;
Use WebSocket If...&lt;br&gt;
Your project needs maximum speed and minimal overhead.&lt;br&gt;
You’re comfortable handling reconnections, message delivery, and other low-level features by yourself.&lt;br&gt;
You have full control over the client and server implementations.&lt;br&gt;
&lt;strong&gt;Example Use Case:&lt;/strong&gt; Stock market tickers or IoT devices streaming data.&lt;/p&gt;

&lt;p&gt;Use Socket.IO If...&lt;br&gt;
You need a beginner-friendly solution with out-of-the-box features.&lt;br&gt;
Your app targets a wide audience, including users on older browsers or unstable networks.&lt;br&gt;
You want features like rooms, namespaces, or automatic reconnections without extra coding.&lt;br&gt;
&lt;strong&gt;Example Use Case:&lt;/strong&gt; A chat app where users join specific rooms.&lt;/p&gt;

&lt;p&gt;For beginners, Socket.IO is often the better choice because of its developer-friendly abstractions and reliability in real-world scenarios. But as you gain experience, you might choose WebSocket for projects that require more control and better performance.&lt;/p&gt;

&lt;p&gt;Got an idea for your next real-time app? Choose the right tool and start building! 🚀&lt;/p&gt;

</description>
      <category>websocket</category>
      <category>socketio</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>An overview of SLO, SLA, and SLI, definitions, key characteristics, and its importance.</title>
      <dc:creator>Adedoyin OLANIPEKUN</dc:creator>
      <pubDate>Thu, 25 Apr 2024 09:35:37 +0000</pubDate>
      <link>https://dev.to/aolanipekun/an-overview-of-slo-sla-and-sli-definitions-key-characteristics-and-its-importance-14o6</link>
      <guid>https://dev.to/aolanipekun/an-overview-of-slo-sla-and-sli-definitions-key-characteristics-and-its-importance-14o6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Service Level Objective (SLO)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is SLO?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A Service Level Objective (SLO) is a specific, quantifiable target that defines the expected performance or reliability of a service. It serves as a measurable goal that helps teams and organizations assess the quality of their services.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Key Characteristics of SLO:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Measurable: SLOs are based on quantifiable metrics such as availability, response time, or error rate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Specific: They provide clear expectations for performance or reliability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Achievable: SLOs should be realistic based on current capabilities and resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time-bound: They often include a defined time frame within which the objective should be achieved.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Importance of SLO:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Performance Measurement: Helps in assessing and measuring the actual performance of services.&lt;/li&gt;
&lt;li&gt;Prioritization: Guides teams in prioritizing work and improvements based on defined objectives.&lt;/li&gt;
&lt;li&gt;User Expectations: Ensures that the service meets or exceeds user expectations.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Less Commonly Discussed Information:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Error Budgets: An Error Budget is a concept closely tied to SLOs. It represents the acceptable amount of downtime or errors within a given time frame. Teams can use error budgets to decide when to invest in new features versus improving reliability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service Level Agreement (SLA)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is SLA?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A Service Level Agreement (SLA) is a formal contract or agreement between a service provider and a customer that defines the expected level of service. It outlines the responsibilities, guarantees, and remedies in case of service disruptions or failures.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Key Components of SLA:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Service Description: Details of the services provided.&lt;/li&gt;
&lt;li&gt;Service Level Objectives (SLOs): Specific performance targets.&lt;/li&gt;
&lt;li&gt;Metrics and Measurement: Methods for measuring performance.&lt;/li&gt;
&lt;li&gt;Responsibilities: Roles and responsibilities of both parties.&lt;/li&gt;
&lt;li&gt;Remedies and Penalties: Actions to be taken in case of breaches.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Importance of SLA:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Accountability: Holds service providers accountable for meeting agreed-upon standards.&lt;/li&gt;
&lt;li&gt;Customer Satisfaction: Ensures that customers receive the level of service they expect.&lt;/li&gt;
&lt;li&gt;Risk Management: Provides a framework for managing risks and resolving disputes.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Less Commonly Discussed Information:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Termination Clauses: While many focus on the penalties for non-compliance, SLAs also often include termination clauses that allow either party to end the agreement under certain conditions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service Level Indicator (SLI)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is SLI?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A Service Level Indicator (SLI) is a specific metric or measurement used to assess the performance or behavior of a service. It provides real-time data on how well a service is meeting its objectives.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Key Characteristics of SLI:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Real-time Measurement: Provides current data on service performance.&lt;/li&gt;
&lt;li&gt;Quantifiable: Based on specific metrics such as latency, throughput, or error rate.&lt;/li&gt;
&lt;li&gt;Aligned with SLO: Used to measure and track progress towards achieving SLOs.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Importance of SLI:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Performance Monitoring: Helps in monitoring and tracking the actual performance of services.&lt;/li&gt;
&lt;li&gt;Data-driven Decisions: Enables data-driven decisions for improvements and optimizations.&lt;/li&gt;
&lt;li&gt;Alignment with SLO: Ensures that services are meeting the defined objectives and targets.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Less Commonly Discussed Information:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Normalization: SLIs may need to be normalized to account for changes in the volume or scale of services. Normalization ensures that SLIs remain relevant and comparable over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources for Understanding SLO, SLA, and SLI:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Books:&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;"Site Reliability Engineering: How Google Runs Production Systems" by Niall Richard Murphy, Betsy Beyer, Chris Jones, and Jennifer Petoff.&lt;/p&gt;

&lt;p&gt;"The Art of Capacity Planning: Scaling Web Resources" by John Allspaw.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Online Courses:&lt;br&gt;
Coursera: Site Reliability Engineering Foundations&lt;br&gt;
Udacity: Scalable Microservices with Kubernetes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Communities and Forums:&lt;br&gt;
Reddit r/SRE&lt;br&gt;
SRE Weekly Newsletter&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By exploring these resources and lesser-known aspects, you can gain a more comprehensive understanding of SLOs, SLAs, and SLIs, and how they contribute to building reliable and scalable services.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Continuous Learning as a Backend Engineer</title>
      <dc:creator>Adedoyin OLANIPEKUN</dc:creator>
      <pubDate>Wed, 31 May 2023 08:20:33 +0000</pubDate>
      <link>https://dev.to/aolanipekun/continuous-learning-as-a-backend-engineer-271h</link>
      <guid>https://dev.to/aolanipekun/continuous-learning-as-a-backend-engineer-271h</guid>
      <description>&lt;p&gt;Learning is a continuous process, and staying up to date in the ever-changing field of Software Development requires continuous effort and dedication. &lt;/p&gt;

&lt;p&gt;You need to constantly embrace the learning mindset, be persistent, and enjoy the journey of expanding your skills and knowledge as an engineer.&lt;/p&gt;

&lt;p&gt;Some of the learning goals that can effectively guide your continuous learning as a backend engineer are listed below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming language&lt;/strong&gt;: Choose and master a programming language commonly used in backend development, such as Python, Java, Ruby, or Go, and aim to become proficient in it. Learn the language's syntax, features, and best practices to write clean, efficient, and maintainable code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend frameworks&lt;/strong&gt;: Identify and learn popular backend frameworks like Django (Python), Spring (Java), Ruby on Rails (Ruby), or Express (JavaScript). Gain hands-on experience with these frameworks to build scalable and robust web applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database skills&lt;/strong&gt;: Gain expertise in working with databases, both SQL and NoSQL. Learn about database design, data modeling, query optimization, and performance tuning. Familiarize yourself with popular databases like MySQL, PostgreSQL, MongoDB, or Redis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API development&lt;/strong&gt;: Application Programming Interfaces (API) in backend engineering are very important. Explore different API design principles, authentication methods, and data serialization formats (such as JSON and XML). Understand how to build RESTful APIs or explore newer approaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud platforms&lt;/strong&gt;: Deepen your knowledge of cloud platforms, there are various cloud platforms widely used in backend development such as Amazon Web Services (AWS), Google Cloud Platform (GCP), or Microsoft Azure. Learn the fundamentals of cloud computing and explore various services like serverless computing, containers, and data storage to deploy and scale your applications. &lt;br&gt;
In addition, stay updated with DevOps practices to deploy and manage applications. Get familiar with DevOps concepts such as continuous integration/deployment (CI/CD), containerization (Docker or Kubernetes), and infrastructure automation tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security practices&lt;/strong&gt;: You must improve your security practices and must understand common security vulnerabilities and how to protect applications against them. More insight into authentication, authorization, data encryption, and secure coding practices helps to develop secure and robust backend systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance Optimization&lt;/strong&gt;: Enhance your performance optimisation skills by learning techniques such as caching, asynchronous processing, and load balancing to ensure your applications can handle high traffic and deliver optimal response times.&lt;br&gt;
Also, improve your problem-solving skills by practising algorithms and data structures, you can also leverage on platforms such as LeetCode or HackerRank to solve coding challenges.&lt;/p&gt;

&lt;p&gt;In conclusion, always stay updated with emerging technologies by keeping an eye on emerging technologies and trends in backend engineering, such as serverless computing, microservices architecture, or event-driven architectures. Stay curious and explore new tools and frameworks that can improve your productivity and efficiency.&lt;br&gt;
Learning goals vary based on your interests, career goals, and specific projects or organizations' requirements.  &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>developers</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>6 Ways To Improve As A Developer</title>
      <dc:creator>Adedoyin OLANIPEKUN</dc:creator>
      <pubDate>Tue, 30 May 2023 10:17:33 +0000</pubDate>
      <link>https://dev.to/aolanipekun/6-ways-to-improve-as-a-developer-4ci2</link>
      <guid>https://dev.to/aolanipekun/6-ways-to-improve-as-a-developer-4ci2</guid>
      <description>&lt;p&gt;While reflecting on the ongoing 2nd quarter, I decided to list my routing as a Developer 👩‍💻 , these steps have continually supported me every single time.&lt;/p&gt;

&lt;p&gt;📚 Learn &amp;amp; Re-learn -&amp;gt; Read books, blogs, articles and online resources.&lt;/p&gt;

&lt;p&gt;📽 Solve Coding Challenges -&amp;gt; Platforms like Leetcode Challenge, HackerRank, or CodeSignal.&lt;/p&gt;

&lt;p&gt;👩‍💻 Good coding practices -&amp;gt; Clean code, documentation, use version control systems.&lt;/p&gt;

&lt;p&gt;🎯 Collaborate and Network -&amp;gt; Conferences, workshops, and meetups physically or virtually&lt;/p&gt;

&lt;p&gt;🔌 Code Review and Collaboration -&amp;gt; Constructive criticism helps to identify areas for improvement and best practices.&lt;/p&gt;

&lt;p&gt;🚀 Personal Projects -&amp;gt; Challenge and apply what you've learned.&lt;/p&gt;

&lt;p&gt;Listed above are a few ways you can improve yourself as a developer. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>coding</category>
    </item>
  </channel>
</rss>
