<?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: ADJARO LORD OGAGA</title>
    <description>The latest articles on DEV Community by ADJARO LORD OGAGA (@ogagacodes).</description>
    <link>https://dev.to/ogagacodes</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%2F629277%2F0c3797b6-392e-4ec5-a613-e51d934a10a9.jpeg</url>
      <title>DEV Community: ADJARO LORD OGAGA</title>
      <link>https://dev.to/ogagacodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ogagacodes"/>
    <language>en</language>
    <item>
      <title>AI/ML - The Software Engineer's Nightmare?</title>
      <dc:creator>ADJARO LORD OGAGA</dc:creator>
      <pubDate>Sat, 07 Jun 2025 13:51:08 +0000</pubDate>
      <link>https://dev.to/ogagacodes/aiml-the-software-engineers-nightmare-4ihi</link>
      <guid>https://dev.to/ogagacodes/aiml-the-software-engineers-nightmare-4ihi</guid>
      <description>&lt;p&gt;&lt;strong&gt;A New Age&lt;/strong&gt;&lt;br&gt;
In the wake of December 2015, 11 brilliant minds started a journey that will change the paradigmn of Engineering, software and hardware alike. These men, whilst giving credit to them for this very controversial and yet laudable strides, where by no means the first men to think of machine intelligence or the concept of artificial intelligence. &lt;br&gt;
It was a new age birthed from an older age , so to speak. In 1935 Allan Turing, English Mathematician and Logician did introduce the idea of the ability for machines to be intelligent, if you are a bit familiar with the nuances of AI/ML, then you'd understand when I say he built a mathematical model and even incorporated this in a machine, the Turing Machine which performed very complex computations. Yes, I know you are getting bored. But this is to tell you, that machine learning as we have it today, is a concept that have existed from a long time ago, some might even opine, as long as time itself. Thanks to Sam Altman, Elon Musk, Ilya Sutskever, Greg Brockman, Trevor Blackwell, Vicki Cheung, Andrej Karpathy, Durk Kingma, John Schulman, Pamela Vagata, and Wojciech Zaremba for bringing this concept to the mainstream of Engineering. Credit to these great minds.&lt;br&gt;
Now this was the turning point and currently lives have been destroyed, lives made, new solutions evolved, speed in development, management, support etc are the direct children of this Engineering New Age. &lt;br&gt;
Every new age either leaves some behind or make some stronger, I am here to make you stronger, with a focus on Software Engineers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Fear and The Reality&lt;/strong&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%2Fzc61sovzn57tclpz1j7t.webp" 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%2Fzc61sovzn57tclpz1j7t.webp" alt="Image description" width="205" height="200"&gt;&lt;/a&gt;&lt;br&gt;
This new age has sparked alot of fears, I will allay these, while i try to be realistic. Most article online have come up with the slogan, "Coding is Dead", "Ui Designers are dead", "You can build a product and deploy in a day", "No need to learn software engineering".&lt;/p&gt;

&lt;p&gt;The reality? No one is taking any job away. These founders have found a dream and have fell for the illusory part of this dream. Here are some facts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Web will still Run on Html and Javacsript for atleast some 1 or two decades from now(2025) - Javascript isn't dying anytimne soon&lt;/li&gt;
&lt;li&gt;"No Code" tools are here to stay. But have you used no code tools, even as seamless as wordpress it didn't take any jobs away.(These "no code" tools when used for building a platform, most times need heavy customisations, refactoring etc). Until they get to perfection and evn by then, we are still stuck with your skills, your experiences&lt;/li&gt;
&lt;li&gt;AI Models are brilliant , no doubt, no arguments, but have you used chatgpt to generate code, the outputs &lt;strong&gt;"ALL THE TIME"&lt;/strong&gt;, I mean and I repeat &lt;strong&gt;"ALL THE TIME"&lt;/strong&gt; needs to be verified and most times need to be edited, if working on complex systems and logic. Until they get to real artificial intelligence, my advice is craft your code and speed up with AI tools.&lt;/li&gt;
&lt;li&gt;Yes, some big companies are laying off some engineers and other roles. New Founders do not be deceived, these are established companies, most of them dare not lay off some engineers. Ml Engineers, Backend Engineers, System Architects etc, I dare say in a hundred years from now these roles will still be very important. Many start-ups have died before they even have a workable product. Reason: The fantasy and search for building a solution in 2 hours or max in a day. &lt;/li&gt;
&lt;li&gt;Can ML become better, yes, can ML really possess artificial intelligence, we wait to see. But the scare and the hype surprises some us that did rigorous statistics and core engineering. We know machines, they are always garbage-in-garbage out. But then as an open minded innovator, I wait to see and I believe AI/ML can get really close, but "intelligent", in the real sense of the word, I doubt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Trust me Your job is actually safe if you do the following;&lt;br&gt;
Be a Software Engineer, not just a developer. Do not just code, if you're currently in a role that limits your visibility to the complete platform structure, go out of your scope and see how things really work, how systems connect with each other in the grander scheme of things. &lt;strong&gt;DO NOT&lt;/strong&gt; be satisfied with just being a Backend Engineer or A Frontend Engineer, learn and grow daily outside yoru scope, tasks your brain, use AI to get to your "god mode". Use no code tools when neccessary, be smart. But keep learning, &lt;strong&gt;DO NOT HURT YOUR LEARNING&lt;/strong&gt;. &lt;br&gt;
Have you ever bothered to check just how gpts are made?&lt;br&gt;
Have you taken time to learn a really low level language?&lt;br&gt;
In my opinion if you do not know at least the basic to intermediate of a low level like C, C++, Rust etc, you are not yet a Senior Software Engineer. Yes this applies to even Frontend Engineers. As a frontend Dev, remember you are only masking the implementation of a core programming language that must be translated to machine code. So are you really and Engineer if you don't know at least a fair detail of your machines internal. Answer yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What To Do With The AI/ML Hype&lt;/strong&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%2Favmvixeo30iu4a9pp3yf.webp" 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%2Favmvixeo30iu4a9pp3yf.webp" alt="Image description" width="392" height="280"&gt;&lt;/a&gt;&lt;br&gt;
In this life, things will continue to sell in proportion to how much hype, marketing and attention they are given and get. AI/ML is the real deal, but is it worth not learning data structures, data types, standards algorithms? So for you a Junior Dev or a newbie learing , who truly want to be a Software Engineer, here is my biased and time tested advice;&lt;br&gt;
Learn in the following order;&lt;br&gt;
  &lt;strong&gt;The Basics:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn How The Internet Works&lt;/li&gt;
&lt;li&gt;Learn How The Web Works&lt;/li&gt;
&lt;li&gt;Learn Basic Html(can be optionally skipped by Cyber Security 
 experts but recommended)&lt;/li&gt;
&lt;li&gt;Learn Basic CSS(don't stress, just lear lightly if you are nit on web path)&lt;/li&gt;
&lt;li&gt;Learn Javascript&lt;/li&gt;
&lt;li&gt;Learn Data Structures(use Javascript)
(You see these kids up there , they are not leaving soon. Learning them wont take three to four weeks, for a serious minded learner, you are not learning to master but to know, to see first, then decide, Sit, beer in hand, your choice)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The specialisation&lt;/strong&gt;&lt;br&gt;
Then Choose Your Path from one of the following;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web Development - One No Code Development(wordpress, 
 lovable.dev), Reactjs, Angular&lt;/li&gt;
&lt;li&gt;Backend Engineering - One of Nodejs(recommended), python(fastapi, 
 django), Java, Golang&lt;/li&gt;
&lt;li&gt;Cyber Security - one of C(recommended), C++, SQL, Bash/SHell 
Scripts&lt;/li&gt;
&lt;li&gt;Devops Engineering - One of Python, Bash, PowerShell, Go, Java, 
and JavaScript&lt;/li&gt;
&lt;li&gt;DevSecops - Python/Bash(must learn)&lt;/li&gt;
&lt;li&gt;Mobile Engineering - One of Flutter(recommended), Kotlin, React 
Native.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the list above shocks you, yes you've been mislead by writers not seasoned and battle tested engineers. I am a Seasoned and battle tested Software Engineer, I have architected systems, built systenms from ground up, built servers, configured Ci/Cd , deployed microservcies that power millions of transactions per minute and I have also built and wokred on applications deloyed to playstore and App store. I haven seen first hand how CEO's and HR's collaborate unholily to onbaord Engineers, Cyber Security Experts, Devops Engineers who lack the needed skills. For exampe just because I can set up an EC2 instance and copy and paste a CI/CD script add to github, run a github actions workflow &lt;strong&gt;DOESNT MAKE&lt;/strong&gt; me a devops Engineer. Just because I know a little React without HTML knowledge, doesnt make me  True Web Developer.(I agree for the serious minded guys Html is easy to catch up with, but three hours of watching a youtube video is all you need with HTML then practice, rewatch pratctice and within few days you should be done)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I Be Left Behind?&lt;/strong&gt;&lt;br&gt;
Short answer is &lt;strong&gt;yes&lt;/strong&gt;. Fact is some Engineer have been left behind. A newbie who completed two or three course on software development and have practiced for few months, afterwhich takes up AI/ML fully, learned, built even small projects, can be more relevant than a  mid level developer who sticks with the old ways, so to speak. Such a mid level engineer has been left behind. Seniors? &lt;strong&gt;No replacement for Seniors&lt;/strong&gt;. I can tell you without mincing words no true Senior Software Engineer will be left behind. Do you know who a True Senior Engineer is? Not the shiny profiles and cv you see on the media or the self assigned senior Software Engineers you. A true Senior Engineer is not a language agnostic, he has knowledge of multiple languages, has built systems, can switch to even a language he hasn't learned and get it to build a systems that works. He knows the similarity between programming stacks. he is nt stuck to a certian stack or environment. No true Senior Software Engineer, who didn't immediately jump on these AI/Ml tools, experimented them and now uses them on a daily. Is it for minor bug fixes, scaffolding boilerplates, for documentation? The list goes on. And I am sure like me, almost every system architect now include AI/Ml as a component, even if not well pronounced, its there and ready to take automation to the next level. &lt;br&gt;
 Question is, if you called yourself a Senior Software Engineer and you haven't atleast looked through these tools(AI/ML), been curious to at least experiment, are you truly a Senior Software Engineer?. Seniority comes with efficiency, Speed, quality and modern tooling.&lt;/p&gt;

&lt;p&gt;Any and every Software Engineer will be left behind if and only;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You choose to laugh at the new AI/ML birth&lt;/li&gt;
&lt;li&gt;Stick solely to the old ways, like a young man in 1900's who chose to use bicycles to travel long distances because he just refuses to accept cars as a better way to execute a journey speedily and more comfortably. if only that man can see a Bugatti Chiron Super Sport 300+, hmmmm, will he still want to trel long distances?&lt;/li&gt;
&lt;li&gt;You as a Junior Developer or A Learner, started by copying and pasting code from GenAi tools , etc. Well that's where your coding starts and that's where it will end.&lt;/li&gt;
&lt;li&gt;If you are waiting to see AI/ML die or for a government to label it harmful. In Nigeria, we say to such a person, "you go old o"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;New Founders And The Mischief&lt;/strong&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%2Fj67mrmmc1s9lyy3lhb9w.jpg" 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%2Fj67mrmmc1s9lyy3lhb9w.jpg" alt="Image description" width="612" height="408"&gt;&lt;/a&gt;&lt;br&gt;
In all these, most new founders still believe that launching an mvp is possible within few days. Is this possible? yes, very possible. But depends on what an "MVP" is and who is in your team. Hirng Juniors , or so called "no-code experts" these days is like saying you do not need to know how to code. This is the begginning of the death of many products.&lt;br&gt;
Here is a fact: Most companies laying off Engineers, are already established with multiple products, running , stable and profitable. Unless you are building a very simple platform, try no code devs for your company alone and come back to this post in 6 months. You need someone who knows how to handcraft code or at the worst a smart human , who can learn and understand that crafting code is inevitable. I dare say there are some solutions &lt;strong&gt;YOU CANNOT BUILD WITHOUT CODE CRAFTERS.&lt;/strong&gt; In the days before the AI boom, we crafted code, but searched tools like stackoverflow, sometimes and most times github, and then documentation of course. Seasoned hand crafters cannot be replaced. So this is not me protecting my Job or trying to advise you to employ Engineers, no, this is me who have a fulltime job at the same time working on other side ventures. I have experimemented first hand and I dare say, I am an authority in tus field.&lt;br&gt;
The mischief is this,  new and non-Technical Tech Founders think to follow a company that's already running a hundred handcrafted microservices, a thousand handcrafted and engineered lambda events, a few hundred macro frontend..etc, and sometimes raking billions in revenue. These companies designed their systems already, even designed their own models, trained these and found the need not to keep certain roles. &lt;br&gt;
Now ask your self who designed the models?&lt;br&gt;
So if you are not building an eccomerce, billspayment, or a regular platform(login, signup, fetch profile, make purchase, connect to mobile, get notifications, and any other...you get the point) , try the no code way, as for the pain you will survive my friend and co founder. But in my opinion, the "no code way" emanates from a &lt;strong&gt;"code way"&lt;/strong&gt;, so you surely need to onboard a seasoned and thorougly grounded Senior Sotware Engineer(Proven No code expertise), unless you are opened to leaving your product in the shleve while you or the &lt;br&gt;
 pure no code guy do the experimentation. I give credit to the no code guys who are good, yes but these are the ones that also know the basics to advanced of how software works, html, css and other nitty gritty. Interestingly I have found that a true Senior Software Engineer, can easily design a scalable no code platform in few hours, because he is an Engineer, a true one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where To Go&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;As a Software Engineer&lt;/strong&gt;, Do not hurt your learning. Use AI tools to learn, grow and speed up your development process. If and when needed use no code solutions&lt;br&gt;
&lt;strong&gt;As a Founder(Tech or Non Tech)&lt;/strong&gt; do not follow big tech firms , they are positioned for success and have a big share of the market. If you want your share you can't repeat what they are doing or not at least while building.&lt;/p&gt;

&lt;p&gt;Disclaimer: All information here are mostly the opinion of a Seasoned and battle tested Senior Software Engineer -Ogaga Adjaro, feel free to negate and do your thing.&lt;/p&gt;

&lt;p&gt;Happy Hacking!!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>softwareengineering</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Pointers in C Programming - Lay Man's Analogy</title>
      <dc:creator>ADJARO LORD OGAGA</dc:creator>
      <pubDate>Wed, 08 Jan 2025 10:16:09 +0000</pubDate>
      <link>https://dev.to/ogagacodes/c-pointers-lay-mans-analogy-1nf9</link>
      <guid>https://dev.to/ogagacodes/c-pointers-lay-mans-analogy-1nf9</guid>
      <description>&lt;p&gt;&lt;strong&gt;Jargons&lt;/strong&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%2F9vqqpsnilhyfh9wmfz8q.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%2F9vqqpsnilhyfh9wmfz8q.png" alt="Image description" width="800" height="884"&gt;&lt;/a&gt;&lt;br&gt;
In the realms of technical jargons here is the definition of pointers in C programming language;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In computer science, a pointer is an object in many programming languages that stores a memory address&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I actually copied and pasted that(lol) from here &lt;a href="https://en.wikipedia.org/wiki/Pointer_(computer_programming)" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The problem with the above definition is, even seasoned programmers find it hard to understand and they get lost, sometimes. Here is the thing, I will make a bet, if by the end of this article you don't understand pointers then i owe you, what I will tell at the end. When i say "you" here I mean mostly programmers, begginers or advanced.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A HOUSE AND ADDRESS&lt;/strong&gt;&lt;br&gt;
Every house has an address, every house has a description - say color, the architectural pattern(the way its built) and sometimes the type. The thing is even an empty land in a street has an address reserved for it(99.9 percent of the time). &lt;br&gt;
Now Picture this scenario,  John Doe asks for the descrtiotion of your house, you can either give him the address(A much better and definite way) or a description. One problem of giving him a description is , there is a near to certainty chance that another house might look same as your house or John Doe could easily get confused while looking for the house. But with the address he cannot miss it, he scribbles the house address on paper and takes a look when searching. Keep this near to kindergaten story in mind. Yes, you are right, a house , an address, and empty land space&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE ANALOGY&lt;/strong&gt;&lt;br&gt;
The street is C, the house is called the value of a space(take the space as say a variable - like a container), the address is stored in the pointer. There can be no same pointer for a value, yes just as there can be no same address for two houses(worst case one will be No 7a, while the other No7b, never same). If you scribble the samne address in two differntb papers, its kind of wasteful , don't you think?? In programming we try to prevent waste, hence one pointer for one address. &lt;br&gt;
However, there can be same type of houses in a street, yes there can same type of values having different pointers and different addreses, in other words, each variable gets a unique memory address unless explicitly made to reference the same address(a small but manageable twist). &lt;br&gt;
Also just as using pointers in C is more optimised so also if you remember, giving your exact address John Doe is much better than describing the house(especially if there are many houses in your street). This is one of many reasosn, I dare argue the core reason why C is a very quick and Efficient programming lanaguage. Linus Benedict Torvalds, the designer of the Linux os, once said&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I have never seen a language that is as efficient as C to work with operating systems or machines&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;APOLOGIES, SOME JARGON&lt;/strong&gt;&lt;br&gt;
In c here is how it is written as shown in the image below;&lt;br&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%2F2n19bmqa4ptbujtdf708.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%2F2n19bmqa4ptbujtdf708.png" alt="Image description" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;*ptr here is a pointer&lt;/li&gt;
&lt;li&gt;&amp;amp;var here is the address&lt;/li&gt;
&lt;li&gt;So *ptr is like the paper containing the exact address(&amp;amp;var is the address in memory)&lt;/li&gt;
&lt;li&gt;The **ptr is a pointer pointing to a pointer, take it as say you need to keep the paper containing the address somewhere, you need to know exactly where that paper is, so it now has its own location or address.&lt;/li&gt;
&lt;li&gt;The int here is just a neccessary part for completion it just means we are dealing with numbers(integers) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While this is an over simplified analogy, even seasoned programmers will k now this is a start. I sincerly hope this clarifies some misunderstanding.&lt;br&gt;
Funfact: C programming language is one of the backbones of NASA’s flight software&lt;/p&gt;

</description>
      <category>c</category>
      <category>softwaredevelopment</category>
      <category>backenddevelopment</category>
      <category>python</category>
    </item>
    <item>
      <title>Cryptocurrency - The Latent Fall Of Conventional Currencies?</title>
      <dc:creator>ADJARO LORD OGAGA</dc:creator>
      <pubDate>Wed, 05 Apr 2023 11:37:36 +0000</pubDate>
      <link>https://dev.to/ogagacodes/cryptocurrency-the-latent-fall-of-conventional-currencies-5a0j</link>
      <guid>https://dev.to/ogagacodes/cryptocurrency-the-latent-fall-of-conventional-currencies-5a0j</guid>
      <description>&lt;h2&gt;
  
  
  Introduction - When we woke Up
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8ouSBABw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0x64yefz5jrj33o6eo1e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8ouSBABw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0x64yefz5jrj33o6eo1e.jpg" alt="Image description" width="612" height="408"&gt;&lt;/a&gt;&lt;br&gt;
So it was a beautiful day, at least for most of us in peaceful/temperate climes, January 2009(where was I sef?? Never mind. Soo....., a man, a group of men, a lady a he(okay let's just say an anonymous entity named "Satoshi Nakamoto") shocked the world with an invention, &lt;strong&gt;the bitcoin.&lt;/strong&gt; .&lt;br&gt;
Why was this a shock? Yes agreed, not many were shocked but those who understand currencies, the financial systems etc, knew this was going to be a game changer, and these persons were very very few and had such powers to bury this invention or propagate and intensify its ripple effects, or so they thought.&lt;br&gt;
 Most of us, me inclusive, had no idea thelatent implicationsd of what this entity(Satoshi Nakamoto) has/have done. This was going to be a game changer, potentially rendering most financial systems useless. &lt;br&gt;
But here we are 2023, and nothing seems to be happening.&lt;br&gt;
Well this piece will try its very best educate you on the latent powers of the cryptographic designed currency exchange system(bitcoin was arguably the first of its kind.. Cool!!). &lt;/p&gt;

&lt;h2&gt;
  
  
  Why a Game Changer?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--djioRvgI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0pgjlfleu54sxa7n13zn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--djioRvgI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0pgjlfleu54sxa7n13zn.jpg" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
Well, cryptography has existed or perceived to have existed since 1900bc, but here is the catch,there has never been an aplication of crytography to the exchange system(financial exchange system).&lt;br&gt;
Let's talk about our revered dollars, or naira(I am a Nigerian, so sorry I need to use this example..#winks). These are just papers, printed papers, trusted by the society blindly. Yes, there was time the dollar was backed by gold, but not anymore. So the governmnet can just decide to pint as much as it want, and even, a non government agency can print with the right tools and skill set(factual). Why do we still trust this system so much, paper that has no value, can burn, can be forged to original, can be withdrawn. The answer? We just trust it because some group of persons, code named "The Government" say so. lolzzz.&lt;br&gt;
As hilarious or as funny as that may seem, this simply means the currency notes we have(papers) have no value in the real term of the word "value".&lt;br&gt;
So say for example I go to my farm cultivate the ground for weeks, months or even years, in the end I get compensated with a valueless paper. Lolzz.&lt;br&gt;
You see how funny this is. Okay, agreed we all agreed that we can use thios paper for exchange, knowingly or unknowingly, here is the problem, &lt;strong&gt;we all agreed&lt;/strong&gt; but a few make the decision mostimes without our consent. And should you disagree, well thats your problem, no one cares.&lt;br&gt;
At this point, you must have seen just how ridiculous this sytem is.&lt;br&gt;
The technical jargon for this is, "&lt;strong&gt;A CENTRALIZED CURRENCY SYSTEM&lt;/strong&gt;" I hate jargon, what this means is if anything happens to the financial institutions, your years of work will vanish like thing air lolzz, and if you're fortunate you are given a part of that as, what do they call it again , &lt;strong&gt;"INSURANCE"&lt;/strong&gt; and needless to say its highlt regulated by laws, made without your consent most times.&lt;br&gt;
 How about when there's no cash, you beg for your hard work, hard earned valueless paper.&lt;br&gt;
Here is the summary in the strongest of terms,** your currency is valueless but still you have no control.**&lt;br&gt;
Satoshi Nakamoto created a system or a coin that is digital, you have control over it, 99.9% secure, regulated by you, we call this decentrailize system which is secured by crytography. Oboy! What this means?? &lt;br&gt;
If say, every individual decides to use this means for buying and selling, banks are no longer needed, financial laws become obsolete, unnecesary. The United state saw this dangerous posibility and attemted to control this system by creating the US version called the USDC(us digital coin) backing this with the Us dollars, paradoxical, but nice game! Not even close!! &lt;br&gt;
Satoshi, invented a system comparable to "trade by barter", but in a digital, untraceble and highly secured form" Booooom!!&lt;br&gt;
This was a game changer indeed?&lt;/p&gt;

&lt;h2&gt;
  
  
  Why So Long?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UDL1MIUa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds9hizixi0npjozxxzso.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UDL1MIUa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds9hizixi0npjozxxzso.jpg" alt="Image description" width="612" height="408"&gt;&lt;/a&gt;&lt;br&gt;
A friend of mine once said, "if you insult a man he can take that and walk away, if you throw stones at him, he might smile and walk away, but even the weakest of man will fight if you threaten his survivor".(man or woman)&lt;br&gt;
Cryptocurrency came and threatend already established systems, systems that feed on your sweat, a system that has enriched a few powerful in trillions of dollars over a hundred years and counting, and you really think they'll let that stay or fly? In all honesty and practicality, these existing financial systems have their advantages, they save for us, create some kind of security(20% my estimation), regulate the market &lt;strong&gt;but&lt;/strong&gt; why not embrace a system that is far and unarguably superior system? Well, if this threatens their very power and survivor, you know the answer.&lt;br&gt;
But here is the good news, crytpocurrency is decentralized, immune to policies, government control etc. But still, propanganda exist, this was the medium that brought cryptography backed currencies to a snail speed in adoption.&lt;br&gt;
The community, in my biased opinion, didn't make this any easier, they used this to invest and when they loose huge sums, the problem is crypto currency(who send you to gamble with your life earning??(pidgin), invest what you can loose, especially in cryptocurrency, or take the risk and be quiet when you loose, its a game), no one really accepted this as a medium for exchange(A few organizations truied and later some bailed out), so the price became volatile, irregular etc.&lt;br&gt;
 Another "gotcha" in cryptocurrency is the energy required to mine these coins, for example bitcoin. Although there are now "tokens" which are not really very complex to create and all. It may interest you to know that a huge percentage of so called "coins" out there are not really "coins" but "tokens".&lt;br&gt;
So the big question is, how do I get started with cryptocurrency, what ae the technicalities involved in this..., has will replace conventional excahnge currency?&lt;br&gt;
Well here I am, ready to share. BTW, started experimenting with &lt;strong&gt;solidty&lt;/strong&gt; recently, I will be very glad to share and explain in the simplest of terms what it is and how it works in relation to crytpocurrencises and broader applications...&lt;br&gt;
Interestingly, with the advent of "bitcoin", the aplication of cryptography now exceeds just finance. Complete web aplications, mobile apllication etc now utilize the power of crytopgraphic technology. One of the many intersting results is highly secure systems(uncensored) and almost impossible to hack systems(99% and higher security)... Interesting!!!&lt;/p&gt;

&lt;p&gt;Next series article will explain each of the following points painstakingly&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Why is cryptocurremncy this secure?&lt;/li&gt;
&lt;li&gt;How do I know which coin to buy, are there existing tools for this, ressearch tools etc?&lt;/li&gt;
&lt;li&gt;Should I trade often with my coins/tokens?&lt;/li&gt;
&lt;li&gt;What is Blockchain? &lt;/li&gt;
&lt;li&gt;Just for finance?
Engage and share your view!
So hang in there as we delve into the interesting world of crypto..
Happy Hacking!!&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>blockchain</category>
      <category>cryptocurrency</category>
      <category>programming</category>
      <category>solidity</category>
    </item>
    <item>
      <title>Data Structures - For The Novice</title>
      <dc:creator>ADJARO LORD OGAGA</dc:creator>
      <pubDate>Sat, 09 Apr 2022 17:29:33 +0000</pubDate>
      <link>https://dev.to/ogagacodes/data-structures-for-the-novice-4nkl</link>
      <guid>https://dev.to/ogagacodes/data-structures-for-the-novice-4nkl</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Data structures have been a feared subject by all, even experienced programmers sometimes cower at this and its brother &lt;strong&gt;"ALGORITHMS"&lt;/strong&gt;.&lt;br&gt;
There is this saying, "Good programmers worry about data structures..."&lt;br&gt;
And other programmers will say, "immediately I understand data structures, booom, my worth increases!!".&lt;br&gt;
As you will see, "DATA STRUCTURES" is not a trivial subject, it holds the key to fully understanding problems and solving such in Computer Programming. I dare say that, how this concept is presented in most classical write ups has scared many away. Needless to say, jargons, technical jargons which most times are unavaoidable liter these pieces. This, not-withstanding, I hail and sincerely appreciate any who has taken out time and written on this subject, it isn't for the fainthearted. And credit andrespect to the very good literature out there, that x-trays this subject in it's atomic details.&lt;br&gt;
In this series, I will try my very best to bring it to the lowest of levels. I hope this serves you for all purposes.&lt;/p&gt;

&lt;h1&gt;
  
  
  What Are Data Structures?
&lt;/h1&gt;

&lt;p&gt;I am really tempted to give a wekipedia style defintion, but no!&lt;br&gt;
Obvioulsy the term "DATA STRUCTURES" is a 'two worded' concept. Let's take this one at a time;&lt;br&gt;
&lt;strong&gt;1. DATA:&lt;/strong&gt; Just imagine you have an application in your device, and register for the first time, say with your name and password. To register, you must input an email and set a password, the email is datum(singular of data), the password is datum. So these pieces of information that are required are data. Now this is a very simplistic analysis, a real life application can have requirements that are very large and complex, say yourname. email. phone number, location, date of birth, age etc. For example Facebook processes  billions of information soemtimes every second and store these. Twitter does same, the list goes on.&lt;br&gt;
So data refer to all the information collected, processed and stored by the computer. For this information to make sense they have to be structured in a way, stored properly. why? Let talk about structure.&lt;br&gt;
&lt;strong&gt;2. STRUCTUTRE:&lt;/strong&gt; Just imagine this, you are an avid reader, after reading a book, you store them in a reserved room in your apartment. Now, if, whenever you're done reading a book you just throw them into the room, what could be the consequence of this haphazard storage as shown below??&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fwwbx035ozi128wrqlevi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fwwbx035ozi128wrqlevi.jpg" alt="books scattered in a room"&gt;&lt;/a&gt;&lt;br&gt;
 Imagine again, a friend comes and asks for a book you have read and say, wants to borrow it, you stepped into the room and thence you suffer the consequence of your lack of proper structure. &lt;br&gt;
What will be a better approach, shelves! Yes, like a library, what else can help? Labeling the shelves, by Author or so. This is structure. How easy it will be  to locate a book in a shelf like below&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fuozu8hqbciy05y68m03t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fuozu8hqbciy05y68m03t.jpg" alt="Books well arranged in shelves"&gt;&lt;/a&gt;&lt;br&gt;
So in computer programming, as the term denotes humans feed the computer information and it's exactly what you feed in that gets out, maybe in a different form..But trust me computers remain grabage in garbage out. Ok we argue that another day, the garbage in garbage out thing. When the information fed into an applictaion is appropriately structured, it makes for easy, efficient access. Infact, the very reason while you load up some apps and it takes more time than others, could most likely, among other things be access of data. The implication of this is, **your choice of data structure, greatly affects the performanace of your application. How yo choose to savwe the datais important.&lt;br&gt;
In summary, Data Structures is just information management for efficient and easy access which inturn leads to better app performance etc. &lt;/p&gt;

&lt;h1&gt;
  
  
  When Should I learn Data Structures?
&lt;/h1&gt;

&lt;p&gt;Hmmmmmmmm. Say you want to build a house, when should you get ready financially? After the house is completed? Doesn't make sense, infact no one will work for you unless you pay them sometimes, partly in advance. SO I say that data structures should be the very first concept you learn before you write your first line of code. I will try to acheive this; explaining data structures and Algorithms without a particular leaning to a programming languauge. But I must warn I will make reference to programming languages but in a high level index.&lt;/p&gt;

&lt;p&gt;We shall discuss 5 data structure types in programming. Yes I know advanced devlopers will say why will some names be here, varaible, and some.. These are not data structures.... Hmmm. well, you'd see whyI will unapolegietical;ly call every name on the list belwo data structure types, not just data structure. You get it? If not hang on as we explore this exciting concept.. &lt;br&gt;
 So Herew is the list I will talk about&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Variable&lt;/li&gt;
&lt;li&gt;Objects/Dictionaries&lt;/li&gt;
&lt;li&gt;Arrays/Lists&lt;/li&gt;
&lt;li&gt;Linked Lists&lt;/li&gt;
&lt;li&gt;Dictionaries&lt;/li&gt;
&lt;li&gt;Trees&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Keep your fingers crossed for part 2
&lt;/h1&gt;

</description>
      <category>programming</category>
      <category>data</category>
      <category>beginners</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>SOFTWARE SYSTEM DESIGN, Just Another Complex Layer?</title>
      <dc:creator>ADJARO LORD OGAGA</dc:creator>
      <pubDate>Wed, 29 Dec 2021 17:35:47 +0000</pubDate>
      <link>https://dev.to/ogagacodes/software-system-design-just-another-complex-layer-2578</link>
      <guid>https://dev.to/ogagacodes/software-system-design-just-another-complex-layer-2578</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;One of my lecturers once said he was privileged to pay a visit to the designer of the famous NIGER BRIDGE in Nigeria, he (my lecturer) was awed at the simple equations (resolution of forces etc) he the renowned professor, solved for such a gigantic project. Needless to say, "THE NIGER BRIDGE" is one of the longest surviving structures in my country Nigeria. &lt;br&gt;
&lt;strong&gt;LESSONS&lt;/strong&gt;: Every system must be designed from its concept, and system design is not as complex at it sounds, infact it makes things easy all through the process of the actual construction(physical or otherwise).&lt;/p&gt;

&lt;h1&gt;
  
  
  What Is Software System Design?
&lt;/h1&gt;

&lt;p&gt;Wikipedia says : System Design is the process of defining the architecture, product design, modules, interfaces, and data for a system to satisfy specified requirements.&lt;br&gt;
I think arguably, that this definition is one of the most explanatory piece I have ever read from wikipedia.&lt;br&gt;
Just imagine, that project you did without a proper system design, can you remember how cumbersome it was, sometimes even testing your temper, most especially when someone in the team just dreamt of a feature woke up the next morning and says, "can we just put a button that flies at a tangent to this hidden button in a way it won't have to fly"? You were obviously provoked right? Even if its possible, which is not in this case, do you remember how you had to refactor some functions, breaking some other functionalities on the way, fixing them and eventually spending hours upon hours making sure everything is in sync?&lt;br&gt;
 At this point you may ARGUE, BUT FEATURES CAN BE ADDED TO AN EXISTING PROJECT, CAN'T THEY? You'd be shocked that the very reason a &lt;strong&gt;holistic&lt;/strong&gt; and &lt;strong&gt;comprehensive&lt;/strong&gt; system design is needed for every project is for this very reason, scalability. &lt;br&gt;
Designing your system properly, creates room for other features to be added with less stress, infact sometimes or mostimes, you'll end up seeing the bug in your system before it gets to the code.&lt;br&gt;
System Design in the software realm is like everything a skilled craftsman needs on papper. Bringing to life such a product will be breezy.&lt;/p&gt;

&lt;h1&gt;
  
  
  LET'S TALK ABOUT JARGONS
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bZ8_G3hi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mibaxzam3tscu6oyvif4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bZ8_G3hi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mibaxzam3tscu6oyvif4.jpg" alt="Image description" width="260" height="280"&gt;&lt;/a&gt;&lt;br&gt;
The above definition mentions some jargons which I think are kindaa simple for an English speaking software Engineer, but damn it! I will x-ray them like we are laymen. Four (4) jargons standout; ARCHITECTURE, PRODUCT DESIGN, MODULES, INTERFACES and DATUM. Hmmmmmmm. Okay Lets pick them one at a time.&lt;br&gt;
&lt;strong&gt;1. Architecture:&lt;/strong&gt; What really is the architecture of a software Application? It's not far from what you know, the plan of a building, how a room links with another, where the stairs should be, where the kitchen should be, you get the point. So the Architecture of an application is obviously the whole software structure, connections between services(if you use microservices) or the relations between data; will the posts be accessible to just the owner, or will there be a comment section, how about the user, will they need to log in before viewing a post. Now at this point its a high level thing. There will be diagrams, choice of technology to use, stating explicitly the connections between this and that. Just imagine you a software engineer having to just come onboard and code, code features, not decide on where this should be or what. Are you thinking what I am thinking?? If it's like this you can build a full functional Auth system in hours with no mistakes, I repeat with no mistakes. System design gets more interesting, with modules.. Lets talk modules &lt;br&gt;
&lt;strong&gt;2. MODULES:&lt;/strong&gt; Just imagine the software Architect has already broken everything into modules, say user, auth, notifications, Orders, posts etc.. Just imagine! You will love your job. You will code and focus on just coding the 'what' a module will contain. Say the user module will have creating users, deleting users, updating users, fetching users.... All you need think about is how to implement this. See how a typical module can be&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RWCmkIeu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r13vl6w6c6k3ffikh1vx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RWCmkIeu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r13vl6w6c6k3ffikh1vx.png" alt="Image description" width="880" height="510"&gt;&lt;/a&gt;&lt;br&gt;
forget about the cohession and all other jargon you see above, just focus on how simple things can get if all you do as a backend engineer or frontend Engineer, is just to code the functions&lt;br&gt;
.... But oboy! It gets even much more interesting and better.. You don't have to think of the contents.. Because system designs includes conceptualizing the INTERFACES too.. Just what are interfaces. Yeah the third jargon.&lt;br&gt;
&lt;strong&gt;3. INTERFACES:&lt;/strong&gt; The interface like you must have guessed comprises of the classes, their methods, the data access and more. Yes it even gets better; at what point will the user input data? how will the data be handled? how should the user interact with the data? All these and more are taken care of by the &lt;strong&gt;interface design&lt;/strong&gt; in the &lt;strong&gt;system design&lt;/strong&gt;. At this point are you beggininng to have the &lt;strong&gt;"Men in my next project I must design my system"&lt;/strong&gt; feeling? You should. A word of caution though, it's hard work, it takes months sometimes and it requires a thorough understanding of the project requirements. But do not fret, it makes things easy. How about the data that is usually modelled or handled by the interfaces, well don't guess, the system design also encapsulates and explicitly describes this. Let's talk data.&lt;br&gt;
&lt;strong&gt;3. DATA:&lt;/strong&gt; You know what data is, ok, It's me I really don't like definitions which introduces jargon, but what will the user need to supply at registration, his name, his email, his phone number? What will be collected for a post, likes, followers, owner, image, title? All these are datum, and they are explicitly defined in a system design. Men! I love software! So say I am a backend Engineer , all I will do is code, just imagine thinking only about the code, you not only become better at your art, tasks are delivered on time and perfectly. &lt;br&gt;
&lt;strong&gt;what your conversation will look like&lt;/strong&gt;&lt;br&gt;
Team Lead: "Ogaga, here is the module and this function should return users posts, the fields are all in the schema design, and the structure of what to return"&lt;br&gt;
ogaga: "ok". &lt;br&gt;
ogaga(few minutes later): done.&lt;br&gt;
Team Lead: ok, lets see.(runs the test). Ok cool. so what's the time complexity?"&lt;br&gt;
Ogaga: "O(1)".&lt;br&gt;
Team Lead: "How did you achieve that?"&lt;br&gt;
Ogaga. .......&lt;br&gt;
You get the point? We are no longer talking about a field is missing, the users should be in an array, but about speed, efficiency. Meanwhile probably the code will be serving users already. &lt;br&gt;
YOu are right one last jargon is missing, &lt;strong&gt;PRODUCT DESIGN&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;4. PRODUCT DESIGN:&lt;/strong&gt; You see everything we discussed, every jargon, the architecture, the modules, the datum, the interfaces, the user interaction(which includes the ui designs), everything is conceptualized in the product design. &lt;strong&gt;The product design does not describe what has been done&lt;/strong&gt;, its the first thing you do, usually by the product owners and Tech Team or tech lead or tech contractor. A house is not designed after it has been built, that doesn't even make sense.&lt;br&gt;
So in your next project, if you want speed and efficiency take the time, and meticulously &lt;strong&gt;DESIGN YOUR SYSTEM&lt;/strong&gt;..&lt;br&gt;
&lt;strong&gt;SOFTWARE SYSTEM DESIGN IS NOT JUST ANOTHER COMPLEX LAYER, IT's AN IMPORTANT FIRST STEP&lt;/strong&gt;&lt;br&gt;
HAPPY HACKING!!&lt;/p&gt;

</description>
      <category>design</category>
      <category>software</category>
      <category>programming</category>
      <category>systems</category>
    </item>
    <item>
      <title>A STORY</title>
      <dc:creator>ADJARO LORD OGAGA</dc:creator>
      <pubDate>Mon, 27 Dec 2021 19:07:30 +0000</pubDate>
      <link>https://dev.to/ogagacodes/a-story-3744</link>
      <guid>https://dev.to/ogagacodes/a-story-3744</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c1U-tvBq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjjb6l98unez4t9vxig6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c1U-tvBq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjjb6l98unez4t9vxig6.jpg" alt="Image description" width="880" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  BRAGGADOCIO
&lt;/h1&gt;

&lt;p&gt;Hey! Today we shan't talk about "Just code" as usual... But something really cool I was privilleged to be part of, "Admoni Platform". &lt;br&gt;
Nahhh! I am not gonna say downlaod Admoni and blah blah blah.. But why not download Admoni??.. Ok.. Sorry guys.. I said that, Why not? I will definetely be biased, and sentimental. Download and test then you can give me feed back directly! What is more? Admoni supports multiple languages. And I will say, arguably, the Admoni Platform is the first "subscription based Advertising system". This is one of the biggest project I have particiapted in so, Ima brag.. lol&lt;/p&gt;

&lt;h1&gt;
  
  
  A POINT IN TIME
&lt;/h1&gt;

&lt;p&gt;It was March 2020, seated on a chair in a rented office space, I knew I was going to be part of things really big. At least something that will be a twist to the norm. And there it was hidden in a facebook post, "Nodejs Backend developers needed, salary range 250,000 to 500,000(Nigerian naira). &lt;br&gt;
Becuase I was drawn in a way to this post I didnt even notice the salary range. I aplied.&lt;br&gt;
 And honestly I forgot about it. Meanwhile there was this platform I was designing so my mind was on recruiting the right guys and who knows start a company from there.&lt;br&gt;
 DAYS WENT BY. I was like " I applied to a role with a company" I searched through and very unklike me, I chatted Mr Femi Ibiwoye up.&lt;/p&gt;

&lt;h1&gt;
  
  
  The struggle
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EYNqBCv0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hfq7rwg6v1xv04lbrl8m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EYNqBCv0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hfq7rwg6v1xv04lbrl8m.jpg" alt="Image description" width="612" height="485"&gt;&lt;/a&gt;&lt;br&gt;
I had a malfunctioning laptop, one mind whispered, "quit bro", another, "Ogaga are you kidding me, cant you see this is something, common man, you have fought more battles than this, fight." Hmmmmm. &lt;br&gt;
Battles, yes! I love battles. After tempestuous moments with my rickety laptop, then came the doubts.&lt;br&gt;
"What is he even doing in this company, he just seats there and collects salary?" &lt;br&gt;
Trust me, if it were me of before I will take a walk without looking at the bullets flying straight my direction. But I was like its code, we die here. &lt;/p&gt;

&lt;h1&gt;
  
  
  The Doubts And Surprise
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CDl0qAa_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j6mvw0ku10lrhaq552br.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CDl0qAa_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j6mvw0ku10lrhaq552br.jpg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
At this point, I totally forgot what I was doing, &lt;br&gt;
I got my first pay and got a manageable laptop started writing code.&lt;br&gt;
 But trust me, software requires peace of mind, peace at work place and home. Things were coming up, and it was like an abyss of complains, refactoring et al. &lt;br&gt;
Then came the biggest and most interesting challenge ever, all the backend Engineers resigned, some money matters others better jobs,I had two offers, a bit better at that time but I love challenges. Comments of doubts, "We are looking up to you", "you are now Admoni ninja", "Sir you will deliver Admoni". wait same guy you clearly doubted? Okay.. Smiling and in emotioanl tears I rememebered, "everything is logic, if this is this do this or dont. I understand Javascript and Nodejs at that time but I needed more, a rare kindaa drive. Where shall I get this from? I already got it emebeded in the sacarsms. LOL.&lt;br&gt;
Then came the surprise, tests started to reveal some inconsistencies and flaws in most of the code structure. &lt;br&gt;
I was awed, what???? same code I thought was intimidationg were flawed and I can fix them with just, sometimes just but most times I had to re-write.&lt;br&gt;
 . No design pattern, sometimes all edge cases werern't treated. Hmmmmmmm. &lt;br&gt;
There and then I knew I was in for an interesting ride.. You can guess the rest.&lt;/p&gt;

&lt;h1&gt;
  
  
  LESSONS AND DISCLAIMER
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;THIS POST IS NOT MEANT TO DEGRADE ANYONE WHATSOEVER, BUT A HONEST AND PRACTICAL SITUATION THAT CAN MOVE YOU TO TAKE THAT NEXT PROJECT&lt;/strong&gt; Moving on&lt;br&gt;
Fast forward , 10 months later here we are with 6 of the microservices all edited, completed and on two occasions fully set up by me. I integrtaed redis, rabbitmq and other cool stuffs. It was fun.&lt;br&gt;
Okay! this looks like bragging to you??? Well the point is;&lt;br&gt;
 challenges make us who we are. Don't see the criticisms of others as destructive. I even remebered in all these someone told me,&lt;br&gt;
 "you are not a good developer" lol. Well, I know I am not the best of developers, &lt;br&gt;
but come to think of it, if she says I am not a good developer, there must be some kindaa flaw she saw, something.&lt;br&gt;
 I asked and she refused to say. You know what, Its been days I heard that , and to today I am better than when she said that, I grow everyday. I know I am a software normad. I know..&lt;br&gt;
Trust me it hurts for people not to believe in you, but you know what Just code. Be meticulous, be a perfectionist if possible. Take challenges that are clearly above you.. Although I must say, during my 10 months writing code for this platform, nothing has ever been above me, &lt;br&gt;
somehow I knew from the beggining that this is gonna be a jolly good ride, trust me what you think is above you, is just code...&lt;br&gt;
HAPPY HACKING!!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>backend</category>
      <category>obstacles</category>
      <category>motivation</category>
    </item>
    <item>
      <title>Nodejs Best Practices(part 2a - Choice of Architecture/Design Patterns )</title>
      <dc:creator>ADJARO LORD OGAGA</dc:creator>
      <pubDate>Sat, 25 Dec 2021 11:09:00 +0000</pubDate>
      <link>https://dev.to/ogagacodes/nodejs-best-practicespart-2a-choice-of-architecturedesign-patterns--57p2</link>
      <guid>https://dev.to/ogagacodes/nodejs-best-practicespart-2a-choice-of-architecturedesign-patterns--57p2</guid>
      <description>&lt;p&gt;This is me, four years later after my first Nodejs code, with a colleague saying, "so far it works, just leave it". I was like, seriously?&lt;br&gt;
&lt;a href="https://media.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%2Fkp9hcns3h3keubuahzu7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fkp9hcns3h3keubuahzu7.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Appologies
&lt;/h1&gt;

&lt;p&gt;My sincerest apologies for the long wait, the multi-tasking of been an active software Engineer and a tech writer is no joke. Trust me.&lt;/p&gt;
&lt;h1&gt;
  
  
  What we have covered
&lt;/h1&gt;

&lt;p&gt;In the previous article we introduced Nodejs, ran some basic commands, created a server using koa.js. A server that returned just "Hello koa".&lt;/p&gt;
&lt;h1&gt;
  
  
  What we will Cover
&lt;/h1&gt;

&lt;p&gt;Now let's take this further and choose how to structure our code. Here's the connection , designs are drawn by architects, hence the title ......Architecture/Design Patterns.&lt;br&gt;
Disclaimer: This article will not meddle into the argument of which design pattern is better, trust me sometimes it takes me days and on one occasion weeks on deciding which design pattern to adopt for new applications I build. poor me!! &lt;br&gt;
Well, according to my friend and colleague, truth is you can build an application using just a single file. But consider this; Will You build a house with &lt;strong&gt;just&lt;/strong&gt; four walls? &lt;br&gt;
&lt;a href="https://media.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%2F90lufz5nbo7wksnxdfe6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F90lufz5nbo7wksnxdfe6.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Please lend me your imagination for a second and take a second look at the above house. The toilet, the kitchen, the living room, bedrooms all arranged in-between those four walls. How convenient that will be!! If you're thinking nahhhh you need more walls, demarcations and a clear distinction of which is which. I cant be doing my business and risk a visitor storming in.. You're right! To be sure four walls is a design pattern, but just a very bad one. &lt;br&gt;
In Nodejs there are &lt;strong&gt;battle tested&lt;/strong&gt; patterns, needless to say,  a pattern must be tried and tested before it can even be called &lt;strong&gt;'A DESIGN PATTERN'&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Design Patterns In Nodejs
&lt;/h1&gt;

&lt;p&gt;There are books and articles dedicated to this subject. I summarry though, we can rightly but arguably group design patterns in four containers, so to speak. They are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Creational&lt;/li&gt;
&lt;li&gt;Behavioral&lt;/li&gt;
&lt;li&gt;Structural etc.
Hmmmmm. Those names already bore me to death....
Ok lets just pick.
An Advice: If you are anything like me, I have my learning peak period, then I read &lt;strong&gt;technical jargons&lt;/strong&gt; and master them. 😉 So take out time to do that.. Capishe? &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ok, Now choosing... I will go with a design somewhat similar to the factory design pattern. That was easy!! But trust me you'll have to really understand these design patterns, because truth is each is tailored to solving a particular kind o problem. And what problem are we solving here?? Nodejs Best Practices! So, just be sure next time you want to set up a project, no matter how small, choose a design pattern. &lt;br&gt;
Ok.. Talk's over.. lets implement the factory design pattern in our code. &lt;br&gt;
NEWS: We will be building a mini e-commerce api with nodejs, koa.js, and graphql. So, let see how to implement a &lt;strong&gt;FACTORY DESIGN PATTERN&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Fun-Fact: Why I chose Factory?
&lt;/h1&gt;

&lt;p&gt;I am a Mechanical Engineer By training. So I still have a little leaning towards anything that sounds like machines.. 😅 .. &lt;br&gt;
Ok more seriously. Factory is under creational design paterns and in our system we will be ;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;CREATING USERS,&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DESTROYING USERS,&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CREATING ORDERS,&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CREATING NOTIFICATIONS.&lt;/strong&gt;
Yes!! Creating , Creating and destroying, so why not factory. There are other patterns that will work, but we have chosen right? &lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;
  
  
  IMPLEMENTING FACTORY DESIGN PATTERN
&lt;/h1&gt;

&lt;p&gt;Now at this point I must warn, Javascript is not java, ok, I know you know that, lol, but what I mean actually is; &lt;strong&gt;Javascript is not a purely object oriented language.&lt;/strong&gt; But thanks to ES6, ES7, ES8 and of course TypeScript,  now we can almost do everything in Javascript in an object oriented way..(typescript is not javascript, but take it as a father that was born after his son.. Please we stick to the course, gear the rudder back, this is not important for now ) ok...&lt;br&gt;
So let revisit our small app from here with just an additional file .gitignore. You can add that or continue as same.&lt;br&gt;
&lt;a href="https://media.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%2F8qcia00i89vxiq3c4odg.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F8qcia00i89vxiq3c4odg.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
And our code was&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import Koa from 'koa';
import mount from 'koa-mount';
import graphqlHTTP from 'koa-graphql';
const app = new Koa();

app.use(ctx =&amp;gt; {
  ctx.body = 'Hello Koa';
});

  app.listen(8080, () =&amp;gt; {
      console.log("Server running.......")
  });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now lets turn our house into a factory.. Cool!&lt;br&gt;
We will introduce lots of stuffs...&lt;br&gt;
In our factory we will have, machines that draws the templates. The template will be so robust that it contains instructions on how to create, destroy and even extend the design design. All automated! How cool!! Another machine will take that design and prototype it, and in fact it can create any number of items using that single template designed by the very first machine. Then there will be machines that create other stuffs as needed.&lt;br&gt;
Our machines will be &lt;strong&gt;Javascript CLASSES&lt;/strong&gt;!! Saw that coming or nah?&lt;br&gt;
Ok, but first things first lets demarcate our app GRACEFULLY!! 😃&lt;br&gt;
I will show you two ways I structure my apis for production apps, with a minor modification.. &lt;br&gt;
&lt;strong&gt;Fact: Two of my Nodejs api serving actual users run on the structures I will now show you below&lt;/strong&gt;. So Yes! They are battle tested. Note at this point that, the design pattern you choose to go with, might affect how you structure your files... Leggo! oooops! I meant to say lets go.... lol&lt;/p&gt;

&lt;h1&gt;
  
  
  First Structure Style
&lt;/h1&gt;

&lt;p&gt;While I will try my very best to reduce complexities, I can't but help to think that you will want a template for your next project... So there might creep in some kindaaa complexities, but trust me , you'll get the point...&lt;br&gt;
Take a closer look at the file structure below&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fgf8ae8vfsbuodpa2gkz2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fgf8ae8vfsbuodpa2gkz2.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
 Intimidating???? Well have you ever seen a tree? lol! Stupid question. So what you see is like a tree, with branches.&lt;/p&gt;

&lt;h1&gt;
  
  
  Breaking Down
&lt;/h1&gt;

&lt;p&gt;So we have the first layer as shown below&lt;br&gt;
&lt;a href="https://media.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%2Fz7u9kfuxaq9du1m7grz3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fz7u9kfuxaq9du1m7grz3.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Then in the app folder there is where our app actually lies, I mean the logic&lt;br&gt;
So in the app there are the src, helpers, config, assets and a server.mjs file as shown....&lt;br&gt;
&lt;a href="https://media.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%2Fe53dz9xdonl2973f70st.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fe53dz9xdonl2973f70st.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
 Digging further in the src folder we have modules and an indexd.mjs file, infact this is where all our code will live, see the structure below&lt;br&gt;
&lt;a href="https://media.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%2F0avw2env7nbtf41e82vl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F0avw2env7nbtf41e82vl.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Honestly to a beginner this looks like too much stress, well, you will know stress when you decide to go dumping everything anywhere anyhow, and say you end up having like a hundred files or more. Among the numerous benefits of structuring your file in a well defined manner is the maintenace clause and for me is the art. See coding is art, backend is beautiful can even be more beautiful than the ui designs , outrageous??? nahhh.. I don't think so. &lt;br&gt;
Moving on...&lt;br&gt;
Now to the part where we start building thinggggggggggs.... yeahhhhhhhhh! Ok.&lt;br&gt;
Now in the modules , I created quite a number of modules, just so you have a feel of what a real life app can be, and how things can easily get out of hand should you not have a well defined structure. &lt;br&gt;
&lt;a href="https://media.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%2Fewqz59s4nki4ykp579tk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fewqz59s4nki4ykp579tk.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
A closer look in the users folder, you'd see a folder and three different files. Oboy!! we are building a house indeed...&lt;br&gt;
Yes! Our factory is there and we are gonaa start the process... This is long enough. I need a break.&lt;br&gt;
 In Part 2b we will fill our factory complete the user process and also see how we can decouple things. &lt;br&gt;
Happy Hacking!!!!!  &lt;/p&gt;

</description>
      <category>node</category>
      <category>backend</category>
      <category>architecture</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Nodejs Best Practices(part 1- Introduction)</title>
      <dc:creator>ADJARO LORD OGAGA</dc:creator>
      <pubDate>Sat, 02 Oct 2021 12:27:19 +0000</pubDate>
      <link>https://dev.to/ogagacodes/nodejs-best-practices-part-1-introduction-49fl</link>
      <guid>https://dev.to/ogagacodes/nodejs-best-practices-part-1-introduction-49fl</guid>
      <description>&lt;p&gt;I once heard a colleague ask, 'how do you survive with javascript(js), so many libraries. Nodejs, Reactjs, Angularjs, Vuejs, expressjs. Terrible, I pity you guys. Infact I know there is probably another js cooking', laughing hysterically. &lt;br&gt;
Hmmmmmmmmm. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fsyqexxfcsjlu0xb5irzs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fsyqexxfcsjlu0xb5irzs.jpg" alt="A man sighing"&gt;&lt;/a&gt;&lt;br&gt;
Well, in this series we will embark on a gradual understanding of concepts in Nodejs that most junior Nodejs developers struggle with. What better place to start than how to structure your code!!&lt;br&gt;
But for starters, just what is nodejs?&lt;/p&gt;
&lt;h1&gt;
  
  
  What is Nodejs?
&lt;/h1&gt;

&lt;p&gt;I forgave my colleague for saying nodejs is a Javascript library, because he is wrong and nodejs is not a Javascript library.&lt;br&gt;
Technical Jargon: &lt;strong&gt;Nodejs is runtime environment for javascript on the server. It uses the javascript v8 engine, hence it's a single threaded, event driven environment.&lt;/strong&gt; &lt;br&gt;
Well!! If you understand that , good for you. But let's talk to the lay men( no disrespect intended).&lt;br&gt;
During the early days of Js, Js can only power the web, meaning Javascript could only be run in the browser, strictly for websites interactivity, then came Nodejs passionately designed by My Very Respected colleague Ryan Dahl, making it possible to write code that servers understand. Take it that Nodejs is a microwave that made cooking with plates(Javascript) possible. You won't place your plate on a gas fire. But with the microwave plates can now be used to cook meals.&lt;br&gt;
How this happens: Nodejs is a bunch of many smaller instructions written in C, C++ and of course javascript. Instructions that make it possible so the servers(other computers connected to your computer) that have the v8 engine installed can in turn run your custom instructions. Confusing?? Ok its like a tanker that has to be fueled to deliver it's product, fuel. Javascript needs Javascript to run Javascript in a computer. Lol. How funny? Well, I promise as we proceed you'll get the point, if you haven't already.&lt;/p&gt;
&lt;h1&gt;
  
  
  Setting Up A Nodejs Application
&lt;/h1&gt;

&lt;p&gt;Tools you Need&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Nodejs:
Download at &lt;a href="https://nodejs.org/en/download/" rel="noopener noreferrer"&gt;Get Nodejs&lt;/a&gt;
The instructions are quite clear, but if you have any 
difficulty, please drop in comment section below&lt;/li&gt;
&lt;li&gt;A Code Editor (I will use vscode throughout this tutorial)
Download at &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;Get VsCode&lt;/a&gt;.
I really hope most of those reading this already are familiar with these tools, hence we shall not deliberate on setting up these tools. But as I have stated, I am here to help.
OK.. Now let build our firsT server.
Steps&lt;/li&gt;
&lt;li&gt;Create a folder
2.Open vscode and open the folder&lt;/li&gt;
&lt;li&gt;Press (control and backtick) to open an integrated terminal in vscode). Make sure your'e in the folder, the run
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init -Y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;npm comes with nodejs, so you don't need to install it. Then if you have the challenge of command not recognized or some kindaa error, share please, but for windows my best guess is you have to update your path variable. Check this resource &lt;a href="https://www.computerhope.com/issues/ch000549.htm" rel="noopener noreferrer"&gt;Update Path Variable&lt;/a&gt; for that.&lt;/p&gt;

&lt;p&gt;Moving on....&lt;br&gt;
STEP 4 : For this tutorial, since we more concerned with best practices, we will be using a nodejs library and many other helper libraries to make things easy. I choose koa.js. Also note we will also make our api requests using graphql. Now let ride.....&lt;br&gt;
Make sure you're still in the folder you ran npm init from. Now run the following command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i koa koa-mount graphql -S
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For now these are all we need. Now lets write a basic sever.&lt;br&gt;
Create a file index.mjs, and copy the code below and paste&lt;/p&gt;

&lt;p&gt;index.mjs&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import Koa from 'koa';
const app = new Koa();
// import {
  // response
app.use(ctx =&amp;gt; {
  ctx.body = 'Hello Koa';
});

  app.listen(8080, () =&amp;gt; {
      console.log("Server running.......")
  });


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

&lt;/div&gt;



&lt;p&gt;At this point before running the application or even explaining each line, make sure you have done the following steps...&lt;br&gt;
1.Run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Added a start script in your package.json
"start":"node index.mjs"&lt;/li&gt;
&lt;li&gt;Made sure you're file is correctly named index.mjs not index.js.&lt;/li&gt;
&lt;li&gt;And make sure you have the below file structure
&lt;img src="https://media.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%2Fap2w467bidz338gy4r40.png" alt="image"&gt;
Then run
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now pay attention to your console... You should see  "Server running..."&lt;br&gt;
Go to localhost:8080&lt;br&gt;
'Hello koa'&lt;br&gt;
Did you see that? If yes, weldone!!!&lt;br&gt;
You have built a nodejs server....&lt;br&gt;
Now is this just it? How boring! Relax and go over this again this is going get very interesting.. Part 2 loading.......&lt;/p&gt;

</description>
      <category>backend</category>
      <category>architecture</category>
      <category>node</category>
      <category>bestpractices</category>
    </item>
    <item>
      <title>why use model.findOne({})??</title>
      <dc:creator>ADJARO LORD OGAGA</dc:creator>
      <pubDate>Sat, 02 Oct 2021 09:43:42 +0000</pubDate>
      <link>https://dev.to/ogagacodes/why-use-model-findone-5575</link>
      <guid>https://dev.to/ogagacodes/why-use-model-findone-5575</guid>
      <description>&lt;p&gt;Mongodb has undoubtedly become one of the most popular databases used with Nodejs. This is due to the possibility for storing decently, the varied types of data that can be dealt over the internet. For more information on just what mongodb is, and maybe a deep dive please visit their docs at &lt;a href="https://docs.mongodb.com/"&gt;Mongodb Documentation&lt;/a&gt;. &lt;br&gt;
But wait!!!&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H1qjr6t_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tc03uikwl57oaf51nsrb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H1qjr6t_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tc03uikwl57oaf51nsrb.jpg" alt="A nerd asking you to wait"&gt;&lt;/a&gt;&lt;br&gt;
At this point I would like you to know that this article is meant for those that have worked with mongodb and maybe a backend framework like nodejs, python or java, its not really for beginners , that not withstanding if you're feeling a little curious please read on, as I would try my very best to make it as down to earth as possible. &lt;br&gt;
Just imagine there is a lorry load of phones, different types, manufacturers. Assuming there is a particular phone you need to get to the owner quickly, you know the make, the type, and details unique to just that phone. Then you start going through each pack, even with just a hundred pack, how tiring that will be!!! phew! I hate stress.. Who doesn't. What if, there was a way to quickly locate just that phone, maybe a magnetic device reader that can read phone types , manufacturers etc. Aha!! Easy right? Would still EVER go through the searching pack by pack way(algorithm)? No sane person will. Fact is, no business man will.&lt;br&gt;
Well, a database. any database as ypou might know a;lready, is a store for unique items. Not phone obviously, but what you ay see on your facebook profile. Your fullname, profile picture, even your posts must all be stored uniquely in a database. Mongodb is one such database. To get you details to your page, the databse has to be searched, just as yoo would search a lorry load of different phones. Just imagine having to search most of the over 5 billion users on facebook before your details comes to your page, that will be a hell of a time.&lt;br&gt;
 The good news is, mongodb like most other databases has inner mechanisms, just like the magnetic device you can use to search for a phone's deatils. Actually there are pre-built instructions that ship with mongodb to do the finding for you, they are called methods or functions. One of such is model.findOne(). There is also model.find(). Both do the same thing, but can you guess the difference? If you said findOne searches for one particular item, while find seraches through all untilit finds that one, your'e right. &lt;br&gt;
In summary use model.findOne() for quicker lookup, cleaner syntax. But the emphasis is on "SPEED". With just a few thousands stored data, using any will hardly have any difference. But the world is over 6 billion the last time I checked. So build with that in mind.     &lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>nosql</category>
      <category>database</category>
      <category>bestpractices</category>
    </item>
  </channel>
</rss>
