<?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: COKER BUSAYO OLADIPUPO</title>
    <description>The latest articles on DEV Community by COKER BUSAYO OLADIPUPO (@bvodka).</description>
    <link>https://dev.to/bvodka</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%2F238153%2Fd083c750-52fe-4f9a-8732-fa55f34e138b.jpeg</url>
      <title>DEV Community: COKER BUSAYO OLADIPUPO</title>
      <link>https://dev.to/bvodka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bvodka"/>
    <language>en</language>
    <item>
      <title>From Code to Command: What Does an IT PM Really Do? (A Developer's Confession)</title>
      <dc:creator>COKER BUSAYO OLADIPUPO</dc:creator>
      <pubDate>Sun, 15 Mar 2026 12:58:53 +0000</pubDate>
      <link>https://dev.to/bvodka/from-code-to-command-what-does-an-it-pm-really-do-a-developers-confession-40mf</link>
      <guid>https://dev.to/bvodka/from-code-to-command-what-does-an-it-pm-really-do-a-developers-confession-40mf</guid>
      <description>&lt;p&gt;They told me I was hired for a new project. Q2. Marifa Tech, with offices across Africa. My FullStack developer background, cloud certs, and that database migration I mentioned in the interview—they were the ticket. I thought I was coming in as a Cloud Developer. Then the offer letter changed. IT Project Manager. Just like that, the keyboard was replaced by a whiteboard, and the code editor by a project brief.&lt;/p&gt;

&lt;p&gt;Project Atlas. Ten million customer records. A legacy SQL database, heavy with years, destined for a cloud-native CDP. Nine months. No margin for error. My first day, and I was neck-deep in the woods. The question burned: &lt;em&gt;What does an IT PM do, really?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As a developer, I built. I knew the elegance of a clean architecture, the satisfaction of a deployed feature. Now, I was informed that my task was all about a concept referred to as the Project Management Iron Triangle – Scope, Cost, and Time, whose core was Quality. And the harsh reality: almost every third IT project fails miserably without an IT Project Manager. This wasn't about writing the code anymore; it was about making sure the code had a chance to live, to thrive, to deliver.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Iron Triangle: My New Reality
&lt;/h3&gt;

&lt;p&gt;It’s not abstract. It’s the air we breathe on Project Atlas.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;1. Scope: Drawing the Line in the Sand&lt;/strong&gt;&lt;br&gt;
As a developer, I chased features. As an IT PM, I define the battlefield. For Atlas, the &lt;strong&gt;scope&lt;/strong&gt; is clear: migrate 10 million records on a cloud-native CDP to real-time marketing. The devil, however, is always in the details. What is actually mission critical? Which integrations are required; not desired? My job is to carve out the achievable, to say "no" to the unnecessary, to protect the core mission from the endless expansion of wants. Devoid of a set limit, Atlas would turn into an expansive, endless project, a drain of resources and spirit. It is all about making sure that we build the right thing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;2. Time: The Relentless Clock&lt;/strong&gt;&lt;br&gt;
Nine months. That is the hard deadline for Atlas. As a developer, I dealt with my sprint activities. As an IT PM, I am in charge of the whole project. This implies subdivision of the Atlas project into manageable stages: Initiation, Planning, Execution, Monitoring and Controlling and Closure. Every stage has milestones, its dependencies. To observe the entire clock, to predict the delays, to maintain the rhythm of the project is my business. It is about making sure that we get it done on schedule.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;3. Cost: The Fuel for the Journey&lt;/strong&gt;&lt;br&gt;
This isn't just about money. It is time, time of the developers, cost of the cloud resources, the opportunity cost of all delays. In the case of Atlas, each decision, each unexpected technical challenge, each misunderstanding, eats away at this price. I am supposed to watch this fuel, to have efficient utilization of this fuel, to have enough of this fuel to make it to the destination without causing bankruptcy or killing the team. It is the cold mathematics of resource distribution, the tough decisions that keep the project going.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;4. Quality: The Promise Delivered&lt;/strong&gt;&lt;br&gt;
Finally, it is about production of a product that works. A CDP that allows marketing in real-time, personalized, improves the customer experience, and allows better data-driven decision-making. It is the quality we assured. As a developer, and I was concerned with the beauty of the solution. As an IT PM, I would guarantee that the solution fulfills the business requirement, it functions as required, and it delivers a tangible value. It is the ultimate test of success the evidence that the trip was not in vain.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Lifecycle
&lt;/h3&gt;

&lt;p&gt;This isn't just about the triangle; it's about the different phases of &lt;strong&gt;Project Management&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Initiation:&lt;/strong&gt; That first brief to Atlas. Providing an explanation of the purpose of doing so, a problem it resolves among the clients of Marifa Tech in Africa.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Planning:&lt;/strong&gt; Splitting Atlas project into sprints, visualizing the data migration, configuring the cloud environment. This is where I as the developer come in to realize the technical complexities but the PM in me makes everything meet the business goal.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Implementation:&lt;/strong&gt; The real structure. The pipelines of data, the CDP setup, the integrations. Here my business is to pave the way to the engineers, to clear away obstructions, to see that the engineers have whatever they require to create.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Monitoring &amp;amp; Controlling:&lt;/strong&gt; This operates with execution. It has to do with keeping Atlas on course. When an API changes, when a security patch poses a threat to launch, I am the person who notices, evaluates how the triangle will be affected and issue the call to change. It is constant vigilance.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Closure:&lt;/strong&gt; Handing over a fully functional CDP, capturing the lessons learned, and ensuring Marifa Tech's clients get the value they signed up for.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I came to Marifa Tech to build. However, now, I am constructing something new. My new code is the Project Atlas brief. My new compiler is the Iron Triangle. My experience as a developer, a team leader, and perhaps that one conversation about database migration brought me here. It provides me with the engineering sympathy to relate to the engineers, the technical understanding to follow the engineering, and the product intuition to keep the business objective in focus.&lt;/p&gt;

&lt;p&gt;The reason behind the failure of projects is not that people are not talented enough, but rather that they are not guided, they have no steady hand to hold the code and the chaos in the same breath. That is what an IT PM does. They are the creator of the voyage, the protector of the destination. They guarantee the commencement of a project such as Atlas of 10 million records and a 9-month deadline not only starts but completes. Successfully. The only story that counts in the end is the one that is successful.&lt;/p&gt;

&lt;p&gt;Here I am thrust into the world of IT Project Management, working on a life project with a deadline; This is Week 0 and this is my story.&lt;/p&gt;




</description>
      <category>projectmanagement</category>
      <category>itpm</category>
      <category>cloud</category>
      <category>agile</category>
    </item>
    <item>
      <title>KodeKloud 100 Days of DevOps Journey: Day 3 Disabling Password-Based SSH Login</title>
      <dc:creator>COKER BUSAYO OLADIPUPO</dc:creator>
      <pubDate>Thu, 07 Aug 2025 00:39:37 +0000</pubDate>
      <link>https://dev.to/bvodka/kodekloud-100-days-of-devops-journey-day-3-disabling-password-based-ssh-login-45oj</link>
      <guid>https://dev.to/bvodka/kodekloud-100-days-of-devops-journey-day-3-disabling-password-based-ssh-login-45oj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Great things never came from comfort zones." - Tony Luziaya&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Managing users is never an easy task. In a weird way, technology is meant for humans and not otherwise. A systems administrator is nothing without the users. Say "hi" to your users; they are a necessity.&lt;/p&gt;

&lt;p&gt;Oftentimes as system administrators, we need to harden our login protocols, even when we use SSH. One of the most basic things to do is &lt;strong&gt;disable password-based SSH login&lt;/strong&gt;. It definitely sounds like a no-brainer, but why?&lt;/p&gt;

&lt;p&gt;You should be aware that you can use SSH with the root or another account's password to log in remotely to a Linux server. When you do this with a bot and a lot of passwords, we have a &lt;strong&gt;brute force attack&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What do we say to hackers? Not today.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The process of disabling password-based SSH login is straightforward, requiring just three steps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Checking for Failed Login Attempts
&lt;/h3&gt;

&lt;p&gt;Before making any changes, it is good practice to check for any failed login attempts on the server. This provides a baseline of security activity. The &lt;strong&gt;&lt;code&gt;lastb&lt;/code&gt;&lt;/strong&gt; command is used to view a log of all failed login attempts. Combining it with &lt;code&gt;tail&lt;/code&gt; shows the most recent entries.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;lastb | &lt;span class="nb"&gt;tail&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For more targeted investigation, the command can be extended with &lt;code&gt;--since YYYY-MM-DD&lt;/code&gt; and &lt;code&gt;--until YYYY-MM-DD&lt;/code&gt; to specify a timeframe. This is useful for incident response and security analysis.&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%2Fw3axrl4pdwfcgb13i3s5.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%2Fw3axrl4pdwfcgb13i3s5.png" alt="Login and change the config files" width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Editing the SSH Configuration File
&lt;/h3&gt;

&lt;p&gt;The primary configuration file for the OpenSSH server (&lt;code&gt;sshd&lt;/code&gt;) is located at &lt;strong&gt;&lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;&lt;/strong&gt;. This file dictates all the rules for SSH access. To disable password authentication, this file must be modified.&lt;/p&gt;

&lt;p&gt;I used &lt;code&gt;vi&lt;/code&gt; with &lt;code&gt;sudo&lt;/code&gt; privileges to edit the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;vi /etc/ssh/sshd_config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Within the file, I located the line &lt;code&gt;PasswordAuthentication yes&lt;/code&gt; and changed the value to &lt;code&gt;no&lt;/code&gt;.&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%2F7op7c8rryhrobug6viu4.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%2F7op7c8rryhrobug6viu4.png" alt="Details of steps 1 - 3" width="800" height="391"&gt;&lt;/a&gt;&lt;br&gt;
A critical step before applying any changes is to test the configuration file's syntax to prevent being locked out of the server. The &lt;strong&gt;&lt;code&gt;sshd -t&lt;/code&gt;&lt;/strong&gt; command performs this check without restarting the service.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;sshd &lt;span class="nt"&gt;-t&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command ensures the configuration is valid and free of errors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Restarting the SSH Service
&lt;/h3&gt;

&lt;p&gt;To apply the changes made to the &lt;code&gt;sshd_config&lt;/code&gt; file, the SSH service must be restarted. On Linux systems that use &lt;code&gt;systemd&lt;/code&gt;, this is accomplished with the &lt;strong&gt;&lt;code&gt;systemctl&lt;/code&gt;&lt;/strong&gt; command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl restart sshd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After restarting the service, I logged out of the server and attempted to reconnect using a password. The connection was successfully denied with a "Permission denied" error, confirming that the change was effective on all three servers I was managing.&lt;/p&gt;

&lt;p&gt;This task served as a practical demonstration of how to secure a server by disabling a less-secure authentication method and emphasized the importance of verifying configuration changes to avoid service disruptions.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kodekloud</category>
      <category>100daysofdevops</category>
      <category>linuxadministration</category>
    </item>
    <item>
      <title>KodeKloud 100 Days of DevOps Journey: Day 1 &amp; 2 - User Management and Automation</title>
      <dc:creator>COKER BUSAYO OLADIPUPO</dc:creator>
      <pubDate>Tue, 05 Aug 2025 23:19:45 +0000</pubDate>
      <link>https://dev.to/bvodka/kodekloud-100-days-of-devops-journey-day-1-2-user-management-and-automation-58eo</link>
      <guid>https://dev.to/bvodka/kodekloud-100-days-of-devops-journey-day-1-2-user-management-and-automation-58eo</guid>
      <description>&lt;h3&gt;
  
  
  Day 1 - User Management
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Change is the end result of all true learning." - Leo Buscaglia&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Something as simple as configuring a server can trip you up. For example, adding a user to a Linux server is simple, but only if you have the right permissions. It gets a little more tricky if you're setting up another server using one as a "jumphost."&lt;/p&gt;

&lt;p&gt;First, you have to get your login credentials right. You need to know what type of user you're setting up and what permissions they have. Linux operates on the principle of &lt;em&gt;least privilege&lt;/em&gt;. It also has three great rules to follow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Respect the privacy of others.&lt;/li&gt;
&lt;li&gt; Think before you type.&lt;/li&gt;
&lt;li&gt; With great power comes great responsibility.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What is a non-interactive shell? It's a shell where the user isn't allowed to interact with the terminal via the keyboard.&lt;/p&gt;

&lt;h4&gt;
  
  
  My Approach
&lt;/h4&gt;

&lt;p&gt;For this challenge, I needed to create a user named &lt;code&gt;mark&lt;/code&gt; with a non-interactive shell on App Server 1.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create the user:&lt;/strong&gt;&lt;br&gt;
I used the &lt;code&gt;useradd&lt;/code&gt; command with the &lt;code&gt;--shell /bin/false&lt;/code&gt; flag. This sets the user's shell to a program that immediately exits, preventing them from accessing a terminal.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;useradd &lt;span class="nt"&gt;--shell&lt;/span&gt; /bin/false mark
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&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%2F9mej4uswepuskl31ciyg.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%2F9mej4uswepuskl31ciyg.png" alt="Creating a new user with non-interactive access" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Set a password:&lt;/strong&gt;&lt;br&gt;
Next, I set a password for the new user using the &lt;code&gt;passwd&lt;/code&gt; command. The system enforced a policy requiring a password of at least 8 characters.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;passwd mark
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verify the setup:&lt;/strong&gt;&lt;br&gt;
Finally, I verified that the user was created correctly and had the non-interactive shell assigned by checking the &lt;code&gt;/etc/passwd&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/passwd
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;The output confirmed that &lt;code&gt;mark&lt;/code&gt; was created with &lt;code&gt;/bin/false&lt;/code&gt; as the shell.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&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%2Fzvz8kidt97n4b2rf0g0o.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%2Fzvz8kidt97n4b2rf0g0o.png" alt="Confirmation of account creation" width="800" height="590"&gt;&lt;/a&gt;&lt;br&gt;
This task was a great reminder that even simple commands require careful consideration of permissions and security best practices, like the principle of least privilege.&lt;/p&gt;
&lt;h3&gt;
  
  
  Day 2 - User Management and Automation
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"There are times to stay put, and what you want will come to you, and there are times to go out into the world and find such a thing for yourself." – Lemony Snicke&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Users are the bane of any systems administration, and you should always adhere to the &lt;strong&gt;principle of least privilege&lt;/strong&gt;. What do you do if you have a user or a contractor who should only have access to the system for a specific amount of time?&lt;/p&gt;

&lt;p&gt;Linux helps us by providing tools for systems administration, and one such tool is the &lt;code&gt;-e&lt;/code&gt; flag when creating users.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;useradd &lt;span class="nt"&gt;-e&lt;/span&gt; YYYY-MM-DD username
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, the &lt;code&gt;-e&lt;/code&gt; flag stands for "expires," and the date after it is when the user's access expires.&lt;/p&gt;

&lt;p&gt;That's not all. Linux also provides a useful command called &lt;code&gt;chage&lt;/code&gt; to check for expired user accounts and manage their expiration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;chage &lt;span class="nt"&gt;-l&lt;/span&gt; username
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;chage&lt;/code&gt; (change age) allows system administrators to manage account expiration, and the &lt;code&gt;-l&lt;/code&gt; flag is used to "list" the account's details.&lt;/p&gt;

&lt;p&gt;System administrators can also write scripts to automate these tasks. For example, a simple bash script can list all users in the system and their account expiration dates:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="k"&gt;for &lt;/span&gt;user &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;cut&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt;: &lt;span class="nt"&gt;-f1&lt;/span&gt; /etc/passwd&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="k"&gt;do
&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="s2"&gt;:"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;chage &lt;span class="nt"&gt;-l&lt;/span&gt; &lt;span class="nv"&gt;$user&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s1"&gt;'Account expires'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  My Approach
&lt;/h4&gt;

&lt;p&gt;For this challenge, I had to create a user named &lt;code&gt;john&lt;/code&gt; with an expiration date.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create the user with an expiration date:&lt;/strong&gt;&lt;br&gt;
I used the &lt;code&gt;useradd&lt;/code&gt; command with the &lt;code&gt;-e&lt;/code&gt; flag, setting the expiration date to &lt;code&gt;2024-04-15&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;useradd &lt;span class="nt"&gt;-e&lt;/span&gt; 2024-04-15 john
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&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%2Fzuc37374nfu6vhw3udsf.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%2Fzuc37374nfu6vhw3udsf.png" alt="Creating a user with expiration date" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Set a password:&lt;/strong&gt;&lt;br&gt;
I then set a password for the new user using &lt;code&gt;sudo passwd john&lt;/code&gt;, ensuring the password did not contain the username as per the system's policy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verify the expiration date:&lt;/strong&gt;&lt;br&gt;
To confirm that the account expiration was set correctly, I used the &lt;code&gt;chage -l&lt;/code&gt; command.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;chage &lt;span class="nt"&gt;-l&lt;/span&gt; john
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&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%2Fga34baeamtp31tv0zm3e.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%2Fga34baeamtp31tv0zm3e.png" alt="Output of running the chage command" width="800" height="386"&gt;&lt;/a&gt;&lt;br&gt;
    The output verified that the "Account expires" field was set to the correct date.&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%2F8at37345o8nauv98k0vd.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%2F8at37345o8nauv98k0vd.png" alt="Account exipration" width="800" height="567"&gt;&lt;/a&gt;&lt;br&gt;
This task demonstrated the power of Linux tools for user management and the importance of automating these processes for better security and efficiency.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kodekloud</category>
      <category>100daysofdevops</category>
      <category>linuxadministration</category>
    </item>
    <item>
      <title>Introduction to Docker</title>
      <dc:creator>COKER BUSAYO OLADIPUPO</dc:creator>
      <pubDate>Sat, 23 Sep 2023 21:45:45 +0000</pubDate>
      <link>https://dev.to/bvodka/introduction-to-docker-4oko</link>
      <guid>https://dev.to/bvodka/introduction-to-docker-4oko</guid>
      <description>&lt;h2&gt;
  
  
  Getting started with Docker.
&lt;/h2&gt;

&lt;p&gt;Docker is a popular and powerful tool that allows you to create, run, and share applications using containers. Containers are isolated environments that package up your code and all its dependencies so that your applications can run consistently and reliably across different platforms. In this article, I will explain what Docker is, how it works, and what beneﬁts it offers for developers and organizations.&lt;/p&gt;

&lt;p&gt;What is Docker?&lt;br&gt;
Docker is an open platform for developing, shipping and running applications using containers. Docker enables you to separate your applications from your infrastructure, so you can deliver software quickly and eﬃciently. With Docker, you can manage your infrastructure in the same ways you manage your applications, by using simple commands and conﬁguration ﬁles.&lt;/p&gt;

&lt;p&gt;Docker consists of three main components:&lt;br&gt;
● Docker Engine: This is the core of Docker that runs on your machine and manages the creation and execution of containers. It also provides a REST API for interacting with other tools and services.&lt;br&gt;
● Docker Images: These are the building blocks of containers. They are read-only templates that contain your code, libraries, settings, and other ﬁles needed to run your application. You can create your own images or use existing ones from Docker Hub or other registries.&lt;br&gt;
● Docker Containers: These are the instances of images that run on the Docker Engine. They are isolated from each other and from the host system but can communicate through networks or shared volumes. You can start, stop, move, or delete containers using Docker commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does Docker work?
&lt;/h2&gt;

&lt;p&gt;Docker uses a client-server architecture to manage containers. The Docker client communicates with the Docker daemon (or server), which runs on your machine or on a remote host. The Docker daemon builds images, runs containers, and handles other tasks related to Docker.&lt;br&gt;
Docker also uses a layered ﬁlesystem to optimize the storage and distribution of images and containers. &lt;/p&gt;

&lt;p&gt;Each layer represents a change or a command applied to an image or a container. Layers are cached and shared among images and containers, which reduces the disk space and network bandwidth required. To illustrate how Docker works, let's look at a simple example of creating and running a container using Docker.&lt;/p&gt;

&lt;p&gt;First, you need to have a Dockerﬁle, which is a text ﬁle that contains instructions for building an image. For example, this Dockerﬁle creates an image that runs a Python script:&lt;/p&gt;

&lt;p&gt;Use an official Python runtime as a parent image&lt;br&gt;
FROM python:3.8&lt;br&gt;
Set the working directory to /app&lt;br&gt;
WORKDIR /app&lt;br&gt;
Copy the current directory contents into the container at /app&lt;br&gt;
COPY . /app&lt;br&gt;
Install any needed packages specified in requirements.txt&lt;br&gt;
RUN pip install - trusted-host pypi.python.org -r requirements.txt&lt;br&gt;
Run app.py when the container launches&lt;br&gt;
CMD ["python", "app.py"]&lt;br&gt;
Next, you need to build the image using the docker build command. This command reads the Dockerﬁle and executes each instruction to create a new layer. For example:&lt;br&gt;
$ docker build -t python-app .&lt;br&gt;
Sending build context to Docker daemon 2.048kB&lt;br&gt;
Step 1/5 : FROM python:3.8&lt;br&gt;
3.8: Pulling from library/python&lt;br&gt;
…&lt;br&gt;
Successfully built 5e160e4d8db3&lt;br&gt;
Successfully tagged python-app: latest&lt;/p&gt;

&lt;p&gt;The -t ﬂag tags the image with a name (python-app) and an optional tag (latest). You can use this name to refer to the image later.&lt;br&gt;
Finally, you need to run the container using the docker run command. This command creates and starts a new container from an image. For example:&lt;/p&gt;

&lt;p&gt;$ docker run - name my-app python-app&lt;br&gt;
Hello World!&lt;/p&gt;

&lt;p&gt;The - name ﬂag assigns a name (my-app) to the container. You can use this name to refer to the container later.&lt;br&gt;
You can also use other ﬂags to customize the behavior of the container, such as -p to map ports, -v to mount volumes, -e to set environment variables, and so on.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the beneﬁts of Docker?
&lt;/h2&gt;

&lt;p&gt;Docker offers many benefits for developers and organizations who want to build and deploy applications faster and easily. Some of these beneﬁts are:&lt;/p&gt;

&lt;p&gt;● Portability: With Docker, you can run your applications on any platform that supports Docker, such as Windows, Linux, or Mac OS. You don't have to worry about compatibility issues or dependencies conﬂicts between different environments.&lt;br&gt;
● Consistency: With Docker, you can ensure that your applications run exactly the same way every time, regardless&lt;br&gt;
● Efficiency: With Docker, you can make the most of your resources by running multiple containers on a single machine, without compromising the performance or security of each container. You can also reuse and share layers among images and containers, which reduces the disk space and network bandwidth required.&lt;br&gt;
● Isolation: With Docker, you can isolate your applications from each other and from the host system, which improves the security and reliability of your applications. You can also control the resources and permissions of each container, which prevents unauthorized access or interference.&lt;br&gt;
● Modularity: With Docker, you can break down your applications into smaller and independent components, which makes them easier to develop, test, and deploy. You can also update or replace individual components without affecting the whole application.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to get started with Docker?
&lt;/h2&gt;

&lt;p&gt;If you want to get started with Docker, you need to install Docker on your machine. You can download and install Docker Desktop for Mac or Windows, or Docker Engine for Linux. You can also use Docker on cloud platforms such as AWS, Azure, or Google Cloud Platform.&lt;br&gt;
Once you have installed Docker, you can use the Docker command-line tool to interact with Docker. You can use commands such as docker build, docker run, docker ps, docker stop, docker rm, and so on to manage your images and containers.&lt;/p&gt;

&lt;p&gt;You can also use the Docker Dashboard or the Docker Hub web interface to access and manage your images and containers. You can also browse and download images from public repositories or create your own private repositories.&lt;/p&gt;

&lt;p&gt;To learn more about Docker, you can refer to the oﬃcial documentation or follow some tutorials and courses online. You can also join the Docker community and get help from other users and experts.&lt;/p&gt;

&lt;p&gt;Docker is a powerful tool that can help you create, run, and share applications using containers. It offers many benefits such as portability, consistency, eﬃciency, isolation, and modularity. It is widely used by developers and organizations who want to build and deploy applications faster and easier.&lt;/p&gt;

&lt;p&gt;I hope this article has given you a basic understanding of what Docker is and why you should use it. If you have any questions or feedback, please feel free to leave a comment below.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Unveiling the Product Manager Spectrum: Why Every Organization Needs Its Unique Flavor</title>
      <dc:creator>COKER BUSAYO OLADIPUPO</dc:creator>
      <pubDate>Sat, 23 Sep 2023 11:19:26 +0000</pubDate>
      <link>https://dev.to/bvodka/unveiling-the-product-manager-spectrum-why-every-organization-needs-its-unique-flavor-5a7m</link>
      <guid>https://dev.to/bvodka/unveiling-the-product-manager-spectrum-why-every-organization-needs-its-unique-flavor-5a7m</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;Picture this: You're a chef with a palette full of diverse ingredients, each with its own distinct flavor. Now, imagine that these ingredients represent different types of product managers, and the dish you're creating is your organization's success. Just as a master chef knows when to use each ingredient to concoct the perfect dish, savvy businesses understand the importance of having various types of product managers to navigate the dynamic market. In this delightful culinary adventure through the world of product management, we'll explore the different types of product managers, the importance of their roles, and how blockchain technology adds a dash of innovation to this flavorful mix.&lt;/p&gt;

&lt;p&gt;Different Types of Product Managers&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The Visionary Dreamer: Some product managers are akin to starry-eyed dreamers. They are the visionaries who constantly seek out new opportunities, innovate, and envision the future. These product managers excel at pioneering groundbreaking products and capturing emerging markets. They are the creative geniuses behind products like the iPhone, which revolutionized the smartphone industry.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Pragmatic Problem Solver: Others are more grounded in reality, focusing on solving immediate problems and optimizing existing products. These product managers thrive on data-driven decisions and are meticulous in their approach. They are like the masterful chef who takes existing recipes and refines them to perfection. This type of product manager is vital for organizations looking to streamline processes and enhance product efficiency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Agile Adapter: In today's fast-paced world, adaptability is key. Agile product managers are flexible and adept at responding to rapid changes in the market. They are quick learners and excel in environments where strategies need to pivot on a dime. These product managers can be compared to chefs who can whip up a new dish on the spot using whatever ingredients are available in the kitchen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Customer Whisperer: Customer-centric product managers have an uncanny ability to understand the pulse of their audience. They engage with customers, gather feedback, and ensure products meet the needs and desires of the target market. These product managers are like chefs who tailor their dishes to cater to specific tastes, ensuring customer satisfaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Organizer Extraordinaire: Some product managers excel at keeping things in order. They are meticulous planners who coordinate various teams and resources to ensure product development stays on track. Think of them as the chefs orchestrating a bustling kitchen, ensuring everything is timed to perfection.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Importance of Product Management in an Organization&lt;/p&gt;

&lt;p&gt;Now that we've explored the various flavors of product managers, let's delve into why product management is indispensable for any organization:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Market Understanding: Product managers serve as the bridge between the organization and the market. They conduct market research, identify trends, and understand customer needs, helping businesses stay competitive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alignment: Effective product management ensures that all teams within an organization are aligned with the same objectives. This alignment boosts productivity and reduces internal conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Innovation: Visionary product managers are essential for innovation. They identify new opportunities and steer organizations toward the future, preventing stagnation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customer Satisfaction: Customer-centric product managers ensure that products meet or exceed customer expectations, leading to higher customer satisfaction and brand loyalty.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Efficiency: Pragmatic product managers optimize existing processes and products, reducing costs and maximizing efficiency, which is vital for long-term sustainability.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Blockchain's Role in Product Management&lt;/p&gt;

&lt;p&gt;Blockchain technology, initially known for its association with cryptocurrencies, has now found its way into various sectors, including product management. Here's how it adds a unique flavor to the product management mix:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Enhanced Supply Chain Transparency: Blockchain can be used to create transparent supply chains, enabling product managers to track products from production to delivery. This ensures the authenticity and quality of products, which is crucial for industries like food and pharmaceuticals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved Intellectual Property Management: For organizations that rely heavily on intellectual property, blockchain can provide a secure and immutable way to manage patents, copyrights, and trademarks. This ensures that product managers can protect their innovations effectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Smart Contracts for Collaboration: Smart contracts on blockchain platforms can automate agreements and payments between collaborators. Product managers can use these contracts to streamline partnerships and ensure all parties meet their commitments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Immutable Product Records: Blockchain can be used to maintain immutable records of product specifications, changes, and updates. This is particularly useful in industries where compliance and traceability are critical, such as aerospace and healthcare.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Decentralized Product Management: Some blockchain-based platforms are exploring decentralized product management, where communities of users have a say in product development and governance. This approach can lead to more democratic and customer-driven product decisions.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;In the ever-evolving world of product management, it's clear that different organizations need different types of product managers to succeed. Just as a rich stew benefits from a variety of ingredients, organizations thrive by embracing a spectrum of product management styles, from the visionary dreamer to the agile adapter.&lt;/p&gt;

&lt;p&gt;Moreover, the importance of product management cannot be overstated, with its ability to align teams, drive innovation, and ensure customer satisfaction. It's the secret sauce that keeps organizations competitive and agile in a rapidly changing market.&lt;/p&gt;

&lt;p&gt;And, as we savor the delightful blend of product management flavors, we can't help but appreciate how blockchain technology adds an exciting twist to the recipe. With its potential to enhance transparency, streamline processes, and decentralize decision-making, blockchain offers a tantalizing prospect for the future of product management.&lt;/p&gt;

&lt;p&gt;So, whether you're a visionary dreaming up the next big thing or a pragmatic problem solver optimizing an existing product, remember that the world of product management is a diverse and exciting one, with a place for every flavor and style. Just like a master chef, choose your ingredients wisely, and you'll create a dish that leaves your customers craving for more.&lt;/p&gt;

</description>
      <category>product</category>
      <category>management</category>
      <category>web3</category>
      <category>ayaversity</category>
    </item>
    <item>
      <title>ONE KEY:TO OPEN THEM ALL</title>
      <dc:creator>COKER BUSAYO OLADIPUPO</dc:creator>
      <pubDate>Sat, 28 Sep 2019 06:57:57 +0000</pubDate>
      <link>https://dev.to/bvodka/one-key-to-open-them-all-4j1i</link>
      <guid>https://dev.to/bvodka/one-key-to-open-them-all-4j1i</guid>
      <description>&lt;p&gt;Taiwo is an entrepreneur, she learnt tailoring and has dreams of been a notable brand in the fashion industry, a few years ago, she was fortunate to get a grant to expand her business. She was able to purchase equipment’s and a better space, now she has her sight set on the world. A friend talks to her about selling online and he first question is how does she get her money from customers. The website designer she has contracted is done with the website design and aside from the cost of developing the website he charges her more than half of the amount for card payment solutions and integration. The payment solution will also charge a percentage on every online payment transaction. Pushing your business globally is a challenge especially for an upstart like Kemi's, with the rising cost of production and the bureaucracy of getting an import, export license, it seems like all hell had broken loose, and that's not all, the website developer informs her, you might not be able to accept all cards, and foreign denominated accounts, also there is no guarantee of the availability of the transaction system 24/7, security of the transactions could be an issue. The best case scenario is to integrate more than one online payment gateway, one for Nigerian debit cards, one for foreign debit cards, two of each so that there is a backup payment system that works any point in time. &lt;/p&gt;

&lt;p&gt;The above is not just a case peculiar to Kemi, it is every entrepreneur’s nightmare, getting payments for goods and services rendered online, with the cost of doing business increases geometrically, internet scaling up and prices for data bundles falling, it is business unusual. In this mix, there is Flutterwave is a Nigerian founded B2B integrated payment solutions for companies in Africa to pay other companies in Africa and the world. Operating a plug and play technology that allows users to leverage on its API (for the uninitiated "application programming interface") to accept and receive payments and customize payment solutions through developers. Flutterwave is not your regular GATEWAY TRANSACTION SOLUTION it an aggregator of payment services from over 90 gateways and still counting, mobile money inclusive and places them under one platform. Think of this as a one size shoe that fits all at a better price than the competitors, or a master to open all doors, in this case a payment gateway for all transactions.&lt;br&gt;
Most gateway payment solutions and payment integration solutions operate a brick and mortar setup with a monthly subscription payment structure for the payment solution SDK’s (software development kits) and transactions fees that scales with the number of transactions and amount, another issue that is of concern is the acceptance of multiple cards and international payments from banks and mobile wallets in the continent and abroad, shopping cart integration and the complexity of setting up the payment system. &lt;br&gt;
For Kemi the fashion designer with dreams of world domination, the current status quo would do more harm than good to her business, that is just getting it online. Offering seamless transaction in over 30 African countries in multiple African denominations and over 120 countries abroad with free setup fees, in-store payment processing and merchant payment processing 25 currencies. Flutterwave is not your regular off the shelf payment solution, it is actually a slew of products:&lt;/p&gt;

&lt;p&gt;RAVE - This platform handles your online payments from shopping cart and business to business payments to suppliers&lt;br&gt;
&lt;a href="https://flutterwave.com/us/integrations/"&gt;https://flutterwave.com/us/integrations/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;RAVE SOCIAL - For Kemi Instagram is bae, a friend of hers just introduced to the platform and she is thinking of social media marketing and getting a photographer to take quality pictures of her pieces, getting customers to make payments on her page without leaving is a game changer as it enables her to receive payments via her Instagram shop&lt;br&gt;
&lt;a href="https://flutterwave.com/us/online-payments-products/rave/"&gt;https://flutterwave.com/us/online-payments-products/rave/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;FLYWIRE - This platform enables tuition payments for Nigerian students studying abroad, with the government rationing dollars and the wait associated with paying tuition for Nigerian students abroad, this a life saver. &lt;br&gt;
&lt;a href="https://flutterwave.com/ng/blog/inside-flutterwave/pay-for-your-foreign-schools-fees-and-medical-bills-in-naira/"&gt;https://flutterwave.com/ng/blog/inside-flutterwave/pay-for-your-foreign-schools-fees-and-medical-bills-in-naira/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GETBARTER - Allows you to makes dollar payments via the creation of a virtual dollar card, this is great for Kemi as she can actually now make dollar payments to get machines that would improve her fashion line without all the bureaucracy that is involved in setting up a dollar denominated card.&lt;br&gt;
&lt;a href="https://flutterwave.com/us/online-payments-products/barter/"&gt;https://flutterwave.com/us/online-payments-products/barter/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alipay - This is great news for Kemi, the best deals she gets is on AliExpress and AliBaba and making cardless payments on this platform with her regular cards is a nightmare already, transaction charges are highway robbers, and often more than not the merchant does not accept a particular Nigeria card, with the same merchant declining a card accepted last week.&lt;br&gt;
&lt;a href="https://techcrunch.com/2019/07/29/flutterwave-and-alipay-partner-on-payments-between-africa-and-china/"&gt;https://techcrunch.com/2019/07/29/flutterwave-and-alipay-partner-on-payments-between-africa-and-china/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For any business the cost of doing business with multiple tariffs is a setback. The presence of a payment solution provider that allows for easy setup (it is actually free and at the click of a button), low transaction tariffs’, multiple platform integration, secure payment systems, payouts to merchants and dollar transactions, the best deal for Kemi is this Flutterwave.&lt;br&gt;
So one key does fit them all.&lt;br&gt;
Flutterwave: one key all payments systems.&lt;/p&gt;

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