<?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: Oluwatimilehin Odubola</title>
    <description>The latest articles on DEV Community by Oluwatimilehin Odubola (@timiodubola).</description>
    <link>https://dev.to/timiodubola</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%2F800809%2Fa1342745-dd6d-425d-b41a-a7f76842e022.jpeg</url>
      <title>DEV Community: Oluwatimilehin Odubola</title>
      <link>https://dev.to/timiodubola</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/timiodubola"/>
    <language>en</language>
    <item>
      <title>Streamlining Workflows for Efficiency and Resilience: Leveraging Lambda and Step Functions.</title>
      <dc:creator>Oluwatimilehin Odubola</dc:creator>
      <pubDate>Tue, 26 Sep 2023 14:21:53 +0000</pubDate>
      <link>https://dev.to/inrange/streamlining-workflows-for-efficiency-and-resilience-leveraging-lambda-and-step-functions-2d06</link>
      <guid>https://dev.to/inrange/streamlining-workflows-for-efficiency-and-resilience-leveraging-lambda-and-step-functions-2d06</guid>
      <description>&lt;p&gt;Having recently participated in an enlightening workshop on  Building Event-Driven App moderated by &lt;a href="https://twitter.com/theburningmonk"&gt;Yan Cui&lt;/a&gt;, I gained valuable insights into how to use AWS lambda and AWS Steps functions for orchestrating serverless workflows.&lt;/p&gt;

&lt;p&gt;In cloud-based application development, Lambda and Step Functions are two great tools provided by Amazon Web Services for managing serverless operations. &lt;/p&gt;

&lt;p&gt;Developers can execute code with Lambda without setting up or maintaining servers. It is perfect for doing quick, focused tasks within an application. Examples of tasks can include updating data in a DynamoDB table or executing an ETL and data transformation process in data pipelines.&lt;/p&gt;

&lt;p&gt;In comparison, Step Functions is a service that enables the coordination of distributed applications and microservices using visual workflows. It provides a way to design, execute, and debug complex workflows, making it indispensable for managing intricate, crucial business operations.&lt;br&gt;
Example of tasks where Step Functions shines includes managing multi-step approval processes in an application or orchestrating the deployment and management of cloud infrastructure, including provisioning resources, configuring services, etc.&lt;/p&gt;

&lt;p&gt;Let's explore the unique qualities of Lambda and Step Functions below to see where each technology excels.&lt;/p&gt;

&lt;p&gt;Using Lambda for Workflow Orchestration : &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Event-Driven Execution: Lambda functions are triggered in response to events, such as changes to data in an Amazon S3 bucket or updates to a DynamoDB table. This event-driven execution model ensures efficient resource utilization, as the function only runs when needed, thus minimizing costs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lambda functions have extremely low startup times, allowing near-instantaneous execution. This speed and agility make Lambda suitable for quick, responsive applications where latency and responsiveness are critical factors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability: Lambda automatically scales based on the number of incoming requests. This scalability allows cost optimization by avoiding over-provisioning of resources, ensuring that you pay for only what you use, especially during low-demand periods.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Using Step Functions for Workflow Orchestration: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Reliability and Error Handling: Step Functions offer robust error handling and retries for each step in a workflow, enhancing reliability. The ability to define error recovery strategies at each step ensures smooth and consistent workflow execution in a scenario where failure occurs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;State Management: Step Functions maintain the state of each step in a workflow, making it easier to track progress and debug issues. This capability is essential for business-critical applications where tracking the status of various steps and understanding the flow of execution is crucial for successful operation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Visual Representation and Debugging: The visual representation of workflows in Step Functions simplifies the debugging process. Developers can easily identify bottlenecks, optimize performance, and troubleshoot issues by visually inspecting the flow of steps, making debugging more accessible and effective.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Although Lambda and Step Functions can both work separately, a robust system architecture can be created to take advantage of both of their strengths in parallel. Step Functions can be utilized to orchestrate and manage the overall workflow process, seamlessly integrating with Lambda to handle each "stateful" step within the workflow. &lt;/p&gt;

&lt;p&gt;This synergistic approach ensures efficient coordination and execution of complex workflows while leveraging the capabilities of both tools for optimal performance and reliability.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Q_Nk13G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yw8b8sseizpabmaeddis.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Q_Nk13G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yw8b8sseizpabmaeddis.png" alt="Running AWS Lambda and Step functions in parallel" width="800" height="1051"&gt;&lt;/a&gt;&lt;br&gt;
Illustration of using both tools in parallel&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt;&lt;br&gt;
Lambda functions are great for attaining operational efficiency, cost optimization, and easy workflows. Step Functions, on the other hand, are perfect for handling intricate and important business procedures, maintaining dependability, and facilitating the debugging process. &lt;/p&gt;

&lt;p&gt;Both orchestration tools are potent instruments that meet various requirements in serverless workflow orchestration. &lt;/p&gt;

</description>
      <category>aws</category>
      <category>serverless</category>
      <category>microservices</category>
    </item>
    <item>
      <title>Streamline Your Development Process Using AWS Amplify's Deployment Environment</title>
      <dc:creator>Oluwatimilehin Odubola</dc:creator>
      <pubDate>Mon, 08 May 2023 16:25:24 +0000</pubDate>
      <link>https://dev.to/inrange/streamline-your-development-workflow-with-aws-amplifys-deployment-environment-4lg2</link>
      <guid>https://dev.to/inrange/streamline-your-development-workflow-with-aws-amplifys-deployment-environment-4lg2</guid>
      <description>&lt;p&gt;As a software team, it's crucial to have a streamlined process for testing and deploying new features. With AWS Amplify, deploying and testing your application becomes easy by creating separate environments for pull requests and ensuring seamless integration into the main software branch.&lt;/p&gt;

&lt;p&gt;The development team can generate separate testing environments where work can be evaluated before going live without affecting production.&lt;/p&gt;

&lt;p&gt;In this article, we will explore using AWS Amplify to deploy a React application and setting up a deployment environment for pull requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Make sure to have Node/NPM installed on your computer. To install,[click here for a guide (&lt;a href="https://nodejs.org/en/download"&gt;https://nodejs.org/en/download&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify you have Node.js installed by using the following terminal command - type node -v .&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Basic understanding of JavaScript / ReactJs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Understanding of Version Control systems i.e. Github, Gitlab, Bitbucket, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An AWS account where you can access Amplify&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To complete this course, you will need a React application hosted on a remote repository. To expedite the process, I will assume that you already have a React project hosted on your preferred source code repository hosting site. In this case, we will be using GitHub.&lt;/p&gt;

&lt;p&gt;If not, you can take a look at &lt;a href="https://create-react-app.dev/docs/getting-started/"&gt;create-react-app&lt;/a&gt; docs and &lt;a href="https://docs.github.com/en/migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github"&gt;push to a remote GitHub repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wu2i-6ZO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rqvdzbwh684l9kmf8dio.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wu2i-6ZO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rqvdzbwh684l9kmf8dio.png" alt="Hosted React app on GitHub" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we're done with housekeeping, so let's hop over to AWS Amplify to connect to our git repository and launch the application.&lt;/p&gt;

&lt;p&gt;On the Amplify dashboard, we are going to be clicking on - &lt;strong&gt;"Amplify Hosting Option"&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SPwgecQ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e0uc35ym1677y9vsaqdb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SPwgecQ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e0uc35ym1677y9vsaqdb.png" alt="AWS Amplify dashboard" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After which, we will connect our source code repository, as stated earlier, I am using Github, so I will be selecting Github and giving it the necessary permissions to the code repository. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--em0J2Lb0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lh1wnnlr6igze92ko8tp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--em0J2Lb0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lh1wnnlr6igze92ko8tp.png" alt="source code repository selection" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FiwIRzy9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o6texkzwlwrhvtmdlg3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FiwIRzy9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o6texkzwlwrhvtmdlg3l.png" alt="Granting AWS Amplify necessary permission" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the necessary permissions are granted, Amplify will display a list of permitted project repositories. From here, we can select the application we want to deploy, choose the branch, and set any necessary environment variables. After that, we can click on &lt;strong&gt;Save &amp;amp; Deploy&lt;/strong&gt; to initiate the deployment process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Uhp6Tbed--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9y9va0n8lil3mczgqnhy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Uhp6Tbed--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9y9va0n8lil3mczgqnhy.png" alt="AWS Amplify  settings page" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now Amplify will start building and after a couple of minutes, you'll be presented with the deployed app link. &lt;br&gt;
If you modify your code and push it into the master branch, it will rebuild and re-deploy your app automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ijqbghCN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ddr7q8dbc4wt4j9y76f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ijqbghCN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ddr7q8dbc4wt4j9y76f.png" alt="Completed Deployment portal page" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, let's configure Amplify to work with branches created on the repository, once this is done we can have a deployment link for each branch before merging a pull request. To do this, click on &lt;strong&gt;Preview&lt;/strong&gt; located on the right side of the options panel and enable it by selecting &lt;strong&gt;Enable Preview&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3blRs2SV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ayqnm1163v4o87dgz9rz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3blRs2SV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ayqnm1163v4o87dgz9rz.png" alt="Previews Page" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once, that is done, we can test by creating a new branch, making some code changes, and raising a PR against the main. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PJFPm-pV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/il24hirseiepc2o5cdp8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PJFPm-pV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/il24hirseiepc2o5cdp8.png" alt="New Brach deployed" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As demonstrated, AWS Amplify enables the creation of a new deployment link for PR branches, allowing for testing in a separate environment before merging with the main branch. This tool can greatly enhance your development process, and I hope this article has been helpful in showcasing its capabilities. &lt;/p&gt;

&lt;p&gt;If you have any questions or contributions, please let me know in the comments below. Don't forget to like and share. Thank you for reading!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>react</category>
      <category>cicd</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How React App sharing on a Local Network Works</title>
      <dc:creator>Oluwatimilehin Odubola</dc:creator>
      <pubDate>Sat, 25 Mar 2023 19:29:59 +0000</pubDate>
      <link>https://dev.to/timiodubola/how-react-app-sharing-on-a-local-network-works-2bb1</link>
      <guid>https://dev.to/timiodubola/how-react-app-sharing-on-a-local-network-works-2bb1</guid>
      <description>&lt;p&gt;Have you ever wondered how a React application launched on your local machine becomes available over a local network to other devices?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZPT8--7S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9keiv1hm1ylhgls3kazz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZPT8--7S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9keiv1hm1ylhgls3kazz.png" alt="React share on Local Network" width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default, the React development team makes the application server of your React application accessible on a local network when you initiate it on your computer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wFWFweiV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fxcl5gucvk5sxqx1qhbw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wFWFweiV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fxcl5gucvk5sxqx1qhbw.png" alt="React server started on a developer's machine" width="880" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The purpose of this article is to provide an explanation of the underlying concepts involved in this process. Specifically, this article will focus on the networking concepts that facilitate this functionality. If you don’t have much experience with networking, don’t worry — this article will cover everything you need to know. So let’s get started!&lt;/p&gt;

&lt;p&gt;The three main networking components we will be discussing are Servers, Ports, and Firewalls. Let’s imagine that we are running a food restaurant service and we want to explain the concepts of servers, ports, and firewalls using this scenario.&lt;/p&gt;

&lt;p&gt;Server&lt;br&gt;
A server is a computer program or device that provides a service or resource to other programs or devices on a network. In our restaurant, the server is the person called the waiter who takes orders from customers, communicates with the kitchen staff (network resource in this case), and delivers the food to the customers’ tables.&lt;/p&gt;

&lt;p&gt;Ports&lt;br&gt;
A Port is a network protocol that receives or transmits a communication for a specific service. Each port is assigned a unique number called a port number. Illustrating our restaurant scenario, the port is each with a designated number or name, which allows the server to identify which table needs to receive which order. In our restaurant, every server is assigned a table and serves only requests at that table alone.&lt;/p&gt;

&lt;p&gt;That is why when you run a React application (server) on your machine and decide to run another, it asks for its own table (another port number) if the default is taken — ideally, port 3000 by the initial application or another service as the case may be. Hence, the famous error — “Something is already running on port 3000”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9tS4X29N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nm67c3t22wk3zko6f26c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9tS4X29N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nm67c3t22wk3zko6f26c.jpg" alt="Port error message" width="880" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Firewall&lt;br&gt;
A Firewall is a security system designed to monitor and control incoming and outgoing network traffic based on predetermined security rules. In our restaurant, the kitchen staff may want to prevent certain ingredients or dishes from being served to a certain customer because of the customer's allergy or preference, firewall can be regarded as the rule that identifies a customer by its table, in this case, port number and gives instructions on what allowed to be served or not to the customer.&lt;/p&gt;

&lt;p&gt;Now, that we have a good understanding of what a server, port, and firewall are, let's get down to how these components work together to make our React application available on a local network.&lt;/p&gt;

&lt;p&gt;When a react web server is started it gets bound to the network interface of the developer’s machine which gives it the ability to communicate on a network, this implies that inbound network requests from other devices on the same network can be handled by the web server running on the developer’s workstation. A device on the network will submit an HTTP request to the developer’s machine’s IP address and port number whenever it wishes to access the React app. The web server running on the developer’s computer then receives this request and responds by sending the pertinent files and data for the React app to the requesting device&lt;/p&gt;

&lt;p&gt;If this process does not work out of the box, the developer may need to set up the firewall settings on their computer to permit traffic on that port in order to accept incoming network connections on the port that the React app is running on.&lt;/p&gt;

&lt;p&gt;Although developers rarely use this functionality because remote collaboration is more common than local collaboration, there are a few situations where it can be useful.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Suppose a React app is accessible on a local network for an engineering team connected to that network, it enables them to work on the same project simultaneously, make changes to the app, and immediately see the results on their devices without having to go through the process of deploying the app to a remote server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It becomes easier to test and debug the app on different devices and platforms. This can help ensure that the app is functioning as intended across a range of devices and user environments.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The above advantages enumerated can lead to faster development and better collaboration among team members. Please remember to like and follow me if you enjoyed this article so you may be notified when I publish new articles.&lt;/p&gt;

</description>
      <category>react</category>
      <category>networking</category>
    </item>
    <item>
      <title>Data Analysis and Visualization with Power Bi</title>
      <dc:creator>Oluwatimilehin Odubola</dc:creator>
      <pubDate>Sat, 25 Mar 2023 19:07:20 +0000</pubDate>
      <link>https://dev.to/timiodubola/data-analysis-and-visualization-with-power-bi-lp3</link>
      <guid>https://dev.to/timiodubola/data-analysis-and-visualization-with-power-bi-lp3</guid>
      <description>&lt;p&gt;Well, Power Bi is my favorite Microsoft power platform tool. Over the weekend I gave a talk to a group of students on what Power bi is and how to use it to generate insight from a data store. We spoke on what data visualization, data analysis entails and also had few minutes of hands-on on the bi platform.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---iIhHOMO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pbzx485eu029bpul2q71.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---iIhHOMO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pbzx485eu029bpul2q71.jpeg" alt="Image description" width="540" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Therefore, I won't be writing about what Power bi is in this blog post but, I want to point you to a recorded resource of the event for your own learning.&lt;/p&gt;

&lt;p&gt;Below is the recorded video of my talk…cheers!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/2aTwuCKB5n4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Data structure and algorithm not difficult like you think</title>
      <dc:creator>Oluwatimilehin Odubola</dc:creator>
      <pubDate>Sat, 25 Mar 2023 19:01:10 +0000</pubDate>
      <link>https://dev.to/timiodubola/data-structure-and-algorithm-not-difficult-like-you-think-23mo</link>
      <guid>https://dev.to/timiodubola/data-structure-and-algorithm-not-difficult-like-you-think-23mo</guid>
      <description>&lt;p&gt;Data structure and blah blah blah not again! Well, that’s how I felt anytime conversation around that topic comes up. Maybe, it was because of how I was taught in my computer science undergraduate course or because of how complex and abstract it could be. Well, whatever be the case, I found out later it’s not as difficult as I thought. While scrolling down twitter today, on my feed I saw some “tech bro” talking about a data structure concept, they made a mountain out of a molehill. Found out that this topic is usually perceived as difficult because of how abstract it can be and it’s “lack” of usage in day to day coding by software engineers. Thought to myself, why not write a series on this topic by giving real life scenarios to these concepts and turning that “mountain” to molehill.Yes that’s why you are here, so let’s get started.&lt;/p&gt;

&lt;p&gt;What is data structure?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bifxQQld--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r5lgp7ytf6vdysg3llhk.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bifxQQld--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r5lgp7ytf6vdysg3llhk.jpeg" alt="Data structure illustration " width="880" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Data structure is a way to store, organize and manage information(data) in a way that enables efficient access to that information. For example, the oxford dictionary is used to look up the meaning of an English word. Words in the dictionary are arranged in an alphabetical order. This is done so that lookup of words will be very easy for dictionary users. Words in this context can be referred to as data, while the order in which they are arranged or presented in the dictionary which is alphabetical order can be referred to as the data structure . Hurrah, you are now a data structure expert! oops not yet, but you’re going to be one very soon… Well, in computer science we have several ways in which data can be stored. I.e Arrays, Stacks, Queue. e.t.c. The key is knowing how various data structure works, when to use them and which to use while proffering solution to a problem.&lt;/p&gt;

&lt;p&gt;Now, let’s talk about algorithms.&lt;/p&gt;

&lt;p&gt;Algorithm is a process or set of rules to be followed in order to solve a problem. I love taking coffee, this is how I make my coffee when I want one. Heat up a cup of water, add 1 to 2 teaspoons of coffee to a mug then I dissolve the coffee with a tablespoon of cold water. Pour the hot water into the mug. Finally, I stir the coffee and serve it. I love my coffee black no milk or cream, you can add that to yours when making. Yummy, coffee is ready! Well, the simple process listed out is an algorithm for making coffee. Easy right? If you have a simpler way you can let me know in the comment….lol.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zCclCtLO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/syq1zrnnx89b4pmlnh8t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zCclCtLO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/syq1zrnnx89b4pmlnh8t.jpg" alt="Scenario illustration " width="564" height="688"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we have defined what data structure and algorithm is, the next thing we are going to talk about is what Big-O is and how to analyze the running time of algorithms.This knowledge is used to measure the performance of an algorithm or data structure. Like I stated earlier, it’s a series aimed to equip you with the knowledge on how to apply data structure knowledge to software development process and relate the learning process to real life scenarios, also approach and breakdown technical problems with performance in mind. So, in coming writings we will be talking about arrays, binary trees, hash tables, graphs, stacks, queues…and go as far into advanced concepts like dynamic programming. So I enjoin you to subscribe to my newsletter placed at the end of this article so you get notified as posts roll out.&lt;/p&gt;

&lt;p&gt;While not “knowing” data structure and algorithms does not make you “less” of a developer, yeah no gate keeping…but it certainly makes you a better one. So why not become a better one?&lt;/p&gt;

&lt;p&gt;Thanks for reading! If you liked this post don’t forget to clap, also you can consider entering your email here if you’d like to be added to my &lt;a href="https://buttondown.email/Itz_timilehin"&gt;once-weekly email list&lt;/a&gt;.You can also follow me on &lt;a href="https://twitter.com/itz_timilehin"&gt;Twitter&lt;/a&gt; &amp;amp; &lt;a href="https://github.com/timiodubola"&gt;Github&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>algorithms</category>
      <category>datastructure</category>
    </item>
    <item>
      <title>Hello World into HNG Internship 5.0</title>
      <dc:creator>Oluwatimilehin Odubola</dc:creator>
      <pubDate>Sat, 25 Mar 2023 18:52:44 +0000</pubDate>
      <link>https://dev.to/timiodubola/hello-world-into-hng-internship-50-5b4o</link>
      <guid>https://dev.to/timiodubola/hello-world-into-hng-internship-50-5b4o</guid>
      <description>&lt;p&gt;The Hotels.ng Internship, the biggest remote software developer program in Nigeria commenced some days ago.&lt;/p&gt;

&lt;p&gt;It is well known for its training of upcoming software developers all over Africa through its well structured program, provision of resources and payment of basic allowance…yaay!! they give money too…Aside from that, you have the opportunity to meet and network with seasoned developers who will serve as mentors throughout the program.&lt;/p&gt;

&lt;p&gt;Want to develop and move your career to the next level? HNG 5.0 is for you!&lt;/p&gt;

&lt;p&gt;To join follow hng on twitter : &lt;a href="https://twitter.com/hnginternship"&gt;https://twitter.com/hnginternship&lt;/a&gt; and follow the application process on the page.&lt;/p&gt;

&lt;p&gt;Signup to the internship closes 1st April 2019.&lt;/p&gt;

&lt;p&gt;You can follow me on twitter @itz_timilehin to get more news update.&lt;/p&gt;

&lt;p&gt;Don’t forget to clap!! thanks.&lt;/p&gt;

</description>
      <category>internship</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
