<?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: Alaka Adam Olasumbo</title>
    <description>The latest articles on DEV Community by Alaka Adam Olasumbo (@donadams50).</description>
    <link>https://dev.to/donadams50</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%2F426447%2F1ea65292-569c-4074-9bb3-89bb792292cb.jpeg</url>
      <title>DEV Community: Alaka Adam Olasumbo</title>
      <link>https://dev.to/donadams50</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/donadams50"/>
    <language>en</language>
    <item>
      <title>Will AI Take Developer Jobs?</title>
      <dc:creator>Alaka Adam Olasumbo</dc:creator>
      <pubDate>Thu, 28 Aug 2025 09:57:43 +0000</pubDate>
      <link>https://dev.to/donadams50/will-ai-take-developer-jobs-cg3</link>
      <guid>https://dev.to/donadams50/will-ai-take-developer-jobs-cg3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Artificial Intelligence (AI) is changing how software gets built. From auto-completing lines of code to generating entire functions, tools like GitHub Copilot and ChatGPT are redefining productivity in programming. They promise speed, efficiency, and fewer errors. But behind the hype lies an uncomfortable question: Will AI eventually replace developers altogether?&lt;br&gt;
As a DevSecOps Engineer, I have watched this debate grow louder in boardrooms, classrooms, and online communities. The truth is nuanced. AI will not wipe out developers, but it will redefine what “being a developer” means.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Role of AI: Better Tools, Not a Replacement
&lt;/h2&gt;

&lt;p&gt;There is nothing wrong with using better tools. Ignoring them just makes your work harder for no reason. Developers have always embraced innovations such as compilers, frameworks, and cloud services that made coding more efficient. AI is simply the next step in that evolution.&lt;br&gt;
Think back to when frameworks like React, Angular, or Laravel arrived. Some feared they would deskill developers, but in reality, they allowed programmers to focus less on repetitive boilerplate and more on solving real business problems. AI is following the same pattern.&lt;br&gt;
But that only matters if we are still thinking clearly about what we are doing and why.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Danger: Outsourcing Thinking
&lt;/h2&gt;

&lt;p&gt;The real danger is not that AI will replace developers, but that developers might replace their own thinking with AI. Writing code isn’t just about syntax, it’s about solving problems, designing systems, and making judgment calls that machines cannot (yet) replicate.&lt;br&gt;
AI can write 50 lines of code in seconds, but ask it to decide why a system should be designed in one way rather than another, and it falters. Critical thinking, creativity, and domain knowledge are still uniquely human. As I often say: Letting a tool do your thinking for you is not efficient. It is lazy.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, Will AI Take Dev Jobs?
&lt;/h2&gt;

&lt;p&gt;The short answer: No, but it will change them.&lt;br&gt;
&lt;strong&gt;Low-level coding tasks:&lt;/strong&gt; like boilerplate generation, bug detection, and testing will increasingly be handled by AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High-level roles:&lt;/strong&gt; architecture, security, problem-solving, and integrating business needs will remain firmly human-driven.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New roles&lt;/strong&gt; will also emerge, such as AI system trainers, prompt engineers, and ethicists overseeing responsible AI use.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Roles for the Future
&lt;/h2&gt;

&lt;p&gt;AI is not killing opportunities, it is creating them. Some of the roles emerging right now include:&lt;br&gt;
AI Auditors &amp;amp; Security Specialists:  ensuring AI systems are safe, transparent, and resistant to cyberattacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt Engineers:&lt;/strong&gt;  professionals skilled at designing inputs that guide AI to generate accurate, useful outputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Ethics Officers:&lt;/strong&gt;  overseeing the responsible use of AI within companies, avoiding bias, and ensuring compliance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation Architects:&lt;/strong&gt;  experts who design workflows where humans and AI collaborate seamlessly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Product Managers:&lt;/strong&gt; professionals who bridge the gap between business strategy and AI capabilities.&lt;/p&gt;

&lt;p&gt;These roles highlight that AI isn’t replacing jobs, it’s reshaping the map of opportunities. Developers who adapt will thrive in areas that barely existed five years ago.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lessons from the Past&lt;/strong&gt;&lt;br&gt;
History shows us a pattern: new technology rarely erases professions, it reshapes them.&lt;br&gt;
When spreadsheets arrived, accountants were not made obsolete, they became more analytical and strategic. When cloud computing took off, system administrators didn’t vanish, they shifted into cloud architects and DevOps engineers.&lt;/p&gt;

&lt;p&gt;I know this from experience. I started out as a software developer before pivoting into DevOps and cloud engineering. That transition taught me that technology doesn’t kill careers, it creates pathways into new ones. The key is adaptability.&lt;/p&gt;

&lt;p&gt;AI follows this same path: it is disruptive, yes, but it is also a tool that creates new value for those who adapt.&lt;/p&gt;

&lt;p&gt;Microsoft’s CEO Satya Nadella once said, “AI will not replace people, but people who use AI will replace those who don’t.” That insight captures the reality facing developers today.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Road Ahead
&lt;/h2&gt;

&lt;p&gt;From my perspective as a DevSecOps Engineer and a Software Engineer, the developers who thrive will be those who embrace AI, not fear it. Learning to collaborate with AI, treating it as an intelligent partner rather than a crutch, will set apart the professionals from the hobbyists.&lt;/p&gt;

&lt;p&gt;The real question isn’t whether AI will take your job, it’s whether you are preparing yourself for the new roles it creates. AI is not an enemy; it is a catalyst.&lt;/p&gt;

&lt;p&gt;AI won’t take your job. But another developer who knows how to use AI effectively might. And in this evolving landscape, standing still is the real risk.&lt;/p&gt;

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

&lt;p&gt;The future of coding isn’t man versus machine, it’s man with machine. Developers who keep their critical thinking sharp while harnessing AI’s speed and efficiency will build faster, better, and smarter than ever before.&lt;/p&gt;

&lt;p&gt;I, Adam Olasumbo Adam, believe the future belongs to developers who welcome AI into their toolkit, without surrendering the human creativity, judgment, and problem-solving that no machine can replicate.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Connect mysql server to keycloak</title>
      <dc:creator>Alaka Adam Olasumbo</dc:creator>
      <pubDate>Tue, 07 Jul 2020 19:35:17 +0000</pubDate>
      <link>https://dev.to/donadams50/connect-mysql-server-to-keycloak-3d6e</link>
      <guid>https://dev.to/donadams50/connect-mysql-server-to-keycloak-3d6e</guid>
      <description>&lt;p&gt;Keycloak works with embedded H2 database. This is the default database that Keycloak uses in the development environment. But for production, the proper thing to do is to connect with an external database like mysql, mongo db. Below we will see the steps for using MySQL Server:&lt;br&gt;
&lt;strong&gt;MYSQL SETUP&lt;/strong&gt;&lt;br&gt;
Create a database for keycloak&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;mysql&amp;gt; CREATE USER ‘keycloak’@’%’ IDENTIFIED BY ‘keycloak’;&lt;/li&gt;
&lt;li&gt;mysql&amp;gt; CREATE DATABASE keycloak CHARACTER SET utf8 COLLATE utf8_unicode_ci&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;3.mysql&amp;gt; GRANT ALL PRIVILEGES ON keycloak.* TO ‘keycloak’@’%’;a&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JDBC SETUP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Download the mysql Connector from&lt;br&gt;
&lt;a href="https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.42.zip" rel="noopener noreferrer"&gt;https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.42.zip&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Step 2&lt;/strong&gt;: Create a file named module.xml( the file exention should be .xml)&lt;br&gt;
&lt;strong&gt;Step 3&lt;/strong&gt;: Copy and paste the code below it inside the file you created above&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?xml version=”1.0" ?&amp;gt;
&amp;lt;module xmlns=”urn:jboss:module:1.3" name=”com.mysql”&amp;gt;
&amp;lt;resources&amp;gt;
&amp;lt;resource-root path=”mysql-connector-java-5.1.42-bin.jar” /&amp;gt;
&amp;lt;/resources&amp;gt;
&amp;lt;dependencies&amp;gt;
&amp;lt;module name=”javax.api”/&amp;gt;
&amp;lt;module name=”javax.transaction.api”/&amp;gt;
&amp;lt;/dependencies&amp;gt;
&amp;lt;/module&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;:Cd to KEYCLOAK_HOME/modules/system/layers/keycloak/com&lt;br&gt;
&lt;strong&gt;Step 5&lt;/strong&gt;: Create a folder named ‘mysql’ inside ‘com’ folder then create a folder named ‘main’ inside the mysql folder&lt;br&gt;
it should like this “KEYCLOAK_HOME/modules/system/layers/keycloak/com/mysql/main”&lt;br&gt;
&lt;strong&gt;Step 6&lt;/strong&gt;: Copy the mysql connector you downloaded and paste it inside the main folder&lt;br&gt;
&lt;strong&gt;Step 7&lt;/strong&gt;: Copy the module.xml file you created above, and paste inside the main folder&lt;br&gt;
&lt;strong&gt;Step 8&lt;/strong&gt;: Declare your packeaged JBDC driver .&lt;br&gt;
You have to edit “KEYCLOAK_HOME/standalone/configuration/standalone.xml”&lt;br&gt;
Inside drivers XML block within the datasources subsystem, you should see a pre-defined driver declared for the H2 JDBC driver. This is where you’ll declare the MySQL JDBC driver.&lt;br&gt;
You should have something like this after declaring your mysql JBDC driver in the datasouces subsystem&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;subsystem xmlns=”urn:jboss:domain:datasources:4.0"&amp;gt;
&amp;lt;datasources&amp;gt;
…
&amp;lt;drivers&amp;gt;
&amp;lt;driver name=”mysql” module=”com.mysql”&amp;gt;
&amp;lt;driver-class&amp;gt;com.mysql.jdbc.Driver&amp;lt;/driver-class&amp;gt;
&amp;lt;/driver&amp;gt;
&amp;lt;driver name=”h2" module=”com.h2database.h2"&amp;gt;
&amp;lt;xa-datasource-class&amp;gt;org.h2.jdbcx.JdbcDataSource&amp;lt;/xa-datasource-class&amp;gt;
&amp;lt;/driver&amp;gt;
&amp;lt;/drivers&amp;gt;
&amp;lt;/datasources&amp;gt;
&amp;lt;/subsystem&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 9&lt;/strong&gt;: Now we have to modify the existing datasource configuration that Keycloak uses to connect it to MySQL. This has to be done in the same file registered the mysql jdbc driver&lt;br&gt;
Add the data source configuration to change from h2 database to MySQL.&lt;br&gt;
My Sample configuration looks like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;datasource jndi-name=”java:/jboss/datasources/KeycloakDS” pool-name=”KeycloakDS” enabled=”true”&amp;gt;
&amp;lt;connection-url&amp;gt;jdbc:mysql://localhost:3306/keycloak?useSSL=false&amp;amp;characterEncoding=UTF-8&amp;lt;/connection-url&amp;gt;
&amp;lt;driver&amp;gt;mysql&amp;lt;/driver&amp;gt;
&amp;lt;pool&amp;gt;
&amp;lt;min-pool-size&amp;gt;5&amp;lt;/min-pool-size&amp;gt;
&amp;lt;max-pool-size&amp;gt;15&amp;lt;/max-pool-size&amp;gt;
&amp;lt;/pool&amp;gt;
&amp;lt;security&amp;gt;
&amp;lt;user-name&amp;gt;keycloak&amp;lt;/user-name&amp;gt;
&amp;lt;password&amp;gt;keycloak&amp;lt;/password&amp;gt;
&amp;lt;/security&amp;gt;
&amp;lt;validation&amp;gt;
&amp;lt;valid-connection-checker class-name=”org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker”/&amp;gt;
&amp;lt;validate-on-match&amp;gt;true&amp;lt;/validate-on-match&amp;gt;
&amp;lt;exception-sorter class-name=”org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter”/&amp;gt;
&amp;lt;/validation&amp;gt;
&amp;lt;/datasource&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;NOTE: make sure that you changed the database server IP, Username and Password for the database server as per your configurations.&lt;br&gt;
You will have to comment out this place&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;! — &amp;lt;datasource jndi-name=”java:jboss/datasources/KeycloakDS” pool-name=”KeycloakDS” enabled=”true” use-java-context=”true” statistics-enabled=”${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}”&amp;gt;
&amp;lt;connection-url&amp;gt;jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE&amp;lt;/connection-url&amp;gt;
&amp;lt;driver&amp;gt;h2&amp;lt;/driver&amp;gt;
&amp;lt;security&amp;gt;
&amp;lt;user-name&amp;gt;sa&amp;lt;/user-name&amp;gt;
&amp;lt;password&amp;gt;sa&amp;lt;/password&amp;gt;
&amp;lt;/security&amp;gt;
&amp;lt;/datasource&amp;gt; !--&amp;gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 10&lt;/strong&gt;: Lastly, you have to increase keyclaok server’s timeout, defaultly its 5 minutes, but its takes more than 5 minutes for keycloak to connect with mysql initially, so it keeps rolling back when its 5 minutes exactly.&lt;br&gt;
To do this, You have to edit KEYCLOAK_HOME/standalone/configuration/standalone-ha.xml&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Change the session-bean defualt accesstime out to 20000 from 5000
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;session-bean&amp;gt;
&amp;lt;stateless&amp;gt;
&amp;lt;bean-instance-pool-ref pool-name=”slsb-strict-max-pool”/&amp;gt;
&amp;lt;/stateless&amp;gt;
&amp;lt;stateful default-access-timeout=”20000" cache-ref=”distributable” passivation-disabled-cache-ref=”simple”/&amp;gt;
&amp;lt;singleton default-access-timeout=”20000"/&amp;gt;
&amp;lt;/session-bean&amp;gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Change the pool instance-acquisition-timeout in the pool tag from 5 minutes to 20 minutes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;pools&amp;gt;
&amp;lt;bean-instance-pools&amp;gt;
&amp;lt;strict-max-pool name=”mdb-strict-max-pool” derive-size=”from-cpu-count” instance-acquisition-timeout=”20" instance-acquisition-timeout-unit=”MINUTES”/&amp;gt;
&amp;lt;strict-max-pool name=”slsb-strict-max-pool” derive-size=”from-worker-pools” instance-acquisition-timeout=”20" instance-acquisition-timeout-unit=”MINUTES”/&amp;gt;
&amp;lt;/bean-instance-pools&amp;gt;
&amp;lt;/pools&amp;gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Change the distributed-cache expiration interval from 300000 900000 minutes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;distributed-cache name=”actionTokens” owners=”2"&amp;gt;
&amp;lt;object-memory size=”-1"/&amp;gt;
&amp;lt;expiration max-idle=”-1" interval=”900000"/&amp;gt;
&amp;lt;/distributed-cache&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart your server after this process, BOOM!!! your keyclaok server is connected. Thank you. I hope this help&lt;/p&gt;

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