<?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: Elizabeth Omito</title>
    <description>The latest articles on DEV Community by Elizabeth Omito (@elizabeth_omito).</description>
    <link>https://dev.to/elizabeth_omito</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%2F3715430%2F7fd68aff-17e2-48c7-a55d-b270b84e2835.png</url>
      <title>DEV Community: Elizabeth Omito</title>
      <link>https://dev.to/elizabeth_omito</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/elizabeth_omito"/>
    <language>en</language>
    <item>
      <title>What Actually Happens When You Press Enter on a URL?</title>
      <dc:creator>Elizabeth Omito</dc:creator>
      <pubDate>Sun, 15 Mar 2026 12:53:58 +0000</pubDate>
      <link>https://dev.to/elizabeth_omito/what-actually-happens-when-you-press-enter-on-a-url-i7a</link>
      <guid>https://dev.to/elizabeth_omito/what-actually-happens-when-you-press-enter-on-a-url-i7a</guid>
      <description>&lt;p&gt;You open your browser, type a URL, and press Enter within a few milliseconds, a website appears on your screen.&lt;/p&gt;

&lt;p&gt;But behind that simple action is a complex chain of events happening across the globe: servers communicating, routers forwarding packets, DNS translating names into numbers, and encrypted connections securing your data.&lt;/p&gt;

&lt;p&gt;Every time you visit a website, your request might travel through dozens of networks, multiple countries, and thousands of miles of fiber-optic cables before the response returns to your device.&lt;/p&gt;

&lt;p&gt;So what really happens when you load a website?&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;1. The Internet Is a Network of Networks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At its core, the internet is simply a massive global network of interconnected computers.&lt;br&gt;
These networks include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Home networks&lt;/li&gt;
&lt;li&gt;Corporate networks&lt;/li&gt;
&lt;li&gt;Data centers&lt;/li&gt;
&lt;li&gt;Internet Service Providers (ISPs)&lt;/li&gt;
&lt;li&gt;Global backbone infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each device connected to the internet is identified by something called an IP address.&lt;br&gt;
Example:&lt;br&gt;
142.250.190.78&lt;/p&gt;

&lt;p&gt;This number uniquely identifies a device on the internet, similar to how a home address identifies a house.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Domain Names vs IP Addresses&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Humans aren’t good at remembering numbers. Instead of typing an IP address, we use domain names like:&lt;br&gt;
google.com&lt;br&gt;
github.com&lt;br&gt;
dev.to&lt;/p&gt;

&lt;p&gt;So how does your computer know the IP address of a domain?&lt;br&gt;
This is where DNS (Domain Name System) comes in it works like the phonebook of the internet.&lt;/p&gt;

&lt;p&gt;Example process:&lt;br&gt;
User enters: dev.to&lt;br&gt;
 ↓ &lt;br&gt;
Browser asks DNS server&lt;br&gt;
 ↓&lt;br&gt;
 DNS returns: 151.101.1.195&lt;br&gt;
 ↓ &lt;br&gt;
Browser connects to that server&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. What Happens When You Enter a URL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s say you visit:&lt;br&gt;
&lt;a href="https://dev.to"&gt;https://dev.to&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Several things happen behind the scenes.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Step 1 — DNS Lookup&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your browser asks a DNS resolver:&lt;br&gt;
“What is the IP address for dev.to?”&lt;/p&gt;

&lt;p&gt;The resolver returns the server’s IP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 2 — TCP Connection&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your browser establishes a connection to the server using TCP (Transmission Control Protocol).&lt;/p&gt;

&lt;p&gt;TCP ensures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data arrives&lt;/li&gt;
&lt;li&gt;Data arrives in order&lt;/li&gt;
&lt;li&gt;Missing packets are retransmitted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This step is often called the TCP handshake.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 3 — HTTPS Encryption&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If the site uses HTTPS (most do), the browser performs a TLS handshake.&lt;/p&gt;

&lt;p&gt;This step:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verifies the server’s identity&lt;/li&gt;
&lt;li&gt;Establishes encryption&lt;/li&gt;
&lt;li&gt;Protects the data being transmitted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now your communication is secure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 4 — HTTP Request&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your browser sends a request like this:&lt;/p&gt;

&lt;p&gt;GET / HTTP/1.1&lt;br&gt;
Host: dev.to&lt;/p&gt;

&lt;p&gt;This is the HTTP protocol, which defines how browsers and servers communicate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 5 — Server Response&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The server processes the request and sends back a response:&lt;/p&gt;

&lt;p&gt;HTTP/1.1 200 OK&lt;br&gt;
Content-Type: text/html&lt;/p&gt;

&lt;p&gt;Along with the HTML of the webpage.&lt;/p&gt;

&lt;p&gt;Your browser then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parses the HTML&lt;/li&gt;
&lt;li&gt;Downloads CSS&lt;/li&gt;
&lt;li&gt;Downloads JavaScript&lt;/li&gt;
&lt;li&gt;Renders the page&lt;/li&gt;
&lt;li&gt;And the website appears on your screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. How Data Travels Across the Internet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data doesn’t travel as one big chunk. Instead, it is broken into small packets.&lt;/p&gt;

&lt;p&gt;Each packet contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source IP&lt;/li&gt;
&lt;li&gt;Destination IP&lt;/li&gt;
&lt;li&gt;Data payload&lt;/li&gt;
&lt;li&gt;Packet number&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Routers across the internet decide the best path for each packet to reach its destination.&lt;/p&gt;

&lt;p&gt;Think of it like sending multiple envelopes through different postal routes that all arrive at the same house.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The Role of Servers and Data Centers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Websites live on servers inside data centers.&lt;/p&gt;

&lt;p&gt;These servers run software like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web servers (Nginx, Apache)&lt;/li&gt;
&lt;li&gt;Application servers&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Large companies operate massive data centers around the world to ensure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High availability&lt;/li&gt;
&lt;li&gt;Low latency&lt;/li&gt;
&lt;li&gt;Redundancy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. CDNs Make the Internet Faster&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To make websites load faster globally, companies use Content Delivery Networks (CDNs).&lt;/p&gt;

&lt;p&gt;A CDN stores cached copies of content in servers located around the world.&lt;/p&gt;

&lt;p&gt;Instead of requesting a file from a server in another continent, you may receive it from a nearby edge server.&lt;/p&gt;

&lt;p&gt;This dramatically reduces latency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. A Simplified Flow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s the entire process summarized:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User enters URL&lt;/li&gt;
&lt;li&gt;DNS finds IP address&lt;/li&gt;
&lt;li&gt;Browser establishes TCP connection&lt;/li&gt;
&lt;li&gt;TLS handshake secures connection&lt;/li&gt;
&lt;li&gt;Browser sends HTTP request&lt;/li&gt;
&lt;li&gt;Server sends HTTP response&lt;/li&gt;
&lt;li&gt;Browser renders the webpage&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All of this typically happens in milliseconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The internet may seem complex, but at its core it’s built on a few fundamental ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IP addresses identify devices&lt;/li&gt;
&lt;li&gt;DNS maps names to IPs&lt;/li&gt;
&lt;li&gt;TCP ensures reliable data delivery&lt;/li&gt;
&lt;li&gt;HTTP allows browsers and servers to communicate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding these layers helps developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Debug networking issues&lt;/li&gt;
&lt;li&gt;Optimize performance&lt;/li&gt;
&lt;li&gt;Build better distributed systems
And once you see the mechanics behind it, the internet becomes a lot less mysterious.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>network</category>
    </item>
    <item>
      <title>What Working With Git Actually Taught Me About Collaboration</title>
      <dc:creator>Elizabeth Omito</dc:creator>
      <pubDate>Mon, 23 Feb 2026 22:37:18 +0000</pubDate>
      <link>https://dev.to/elizabeth_omito/what-working-with-git-actually-taught-me-about-collaboration-4e0b</link>
      <guid>https://dev.to/elizabeth_omito/what-working-with-git-actually-taught-me-about-collaboration-4e0b</guid>
      <description>&lt;p&gt;When I first learned Git, I saw it as a set of commands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;git add&lt;/li&gt;
&lt;li&gt;git commit&lt;/li&gt;
&lt;li&gt;git push&lt;/li&gt;
&lt;li&gt;git pull&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It felt procedural — just steps to move code around but once I started working on real projects, I realized Git isn’t just version control. It’s structured collaboration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Commit Messages Are Communication&lt;/strong&gt;&lt;br&gt;
At first, my commits looked like this:&lt;br&gt;
“update”&lt;br&gt;
“fix”&lt;br&gt;
“changes”&lt;/p&gt;

&lt;p&gt;Later, I understood that commit messages are part of the project’s history. A good commit message answers:&lt;br&gt;
What changed?&lt;br&gt;
Why did it change?&lt;/p&gt;

&lt;p&gt;Clear commits make it easier for teammates (and future you) to understand the evolution of the codebase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Pull Before You Push&lt;/strong&gt;&lt;br&gt;
One practical lesson that stuck with me:&lt;br&gt;
Always git pull before git push.&lt;br&gt;
Not doing this led to conflicts and unnecessary friction. Pulling first ensures you’re building on the latest version of the project, not overwriting someone else’s work.&lt;/p&gt;

&lt;p&gt;It’s a small habit with big impact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Merge Conflicts Aren’t Errors — They’re Signals&lt;/strong&gt;&lt;br&gt;
The first time I saw a merge conflict, it looked like the code was broken but technically, Git was doing exactly what it’s designed to do:&lt;br&gt;
It detected overlapping changes and paused the merge to let me resolve them intentionally.&lt;/p&gt;

&lt;p&gt;Conflicts aren’t failures. They’re checkpoints that force alignment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Smaller Changes Reduce Risk&lt;/strong&gt;&lt;br&gt;
Large, unstructured commits make reviewing and merging harder.&lt;br&gt;
Breaking work into smaller, focused commits makes collaboration smoother and debugging easier.&lt;/p&gt;

&lt;p&gt;This changed how I structure my work.&lt;/p&gt;

</description>
      <category>github</category>
      <category>collaboration</category>
      <category>softwaredevelopment</category>
      <category>devjourney</category>
    </item>
    <item>
      <title>What I Learnt From My First Go Project: Go Reloaded</title>
      <dc:creator>Elizabeth Omito</dc:creator>
      <pubDate>Fri, 06 Feb 2026 13:48:39 +0000</pubDate>
      <link>https://dev.to/elizabeth_omito/what-i-learned-from-my-first-go-project-go-reloaded-1ead</link>
      <guid>https://dev.to/elizabeth_omito/what-i-learned-from-my-first-go-project-go-reloaded-1ead</guid>
      <description>&lt;p&gt;When I first started learning Go, I thought I understood the language.&lt;br&gt;
I knew the syntax, I knew the logic, and I thought writing small programs would be easy.&lt;br&gt;
Then I started Go Reloaded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Go Reloaded Was&lt;/strong&gt;&lt;br&gt;
Go Reloaded was my first “real” project in Go — not just following tutorials, but actually building something and making it work.&lt;br&gt;
It was simple on the surface: output formatting, string handling, and writing a few functions.&lt;br&gt;
But simple turned out to be deceptively hard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Moment I Got Humbled&lt;/strong&gt;&lt;br&gt;
I thought my code was perfect… until I ran the tests.&lt;br&gt;
The output I got was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;it was the best of Times , it was the worst of TIMES,
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;whereas the expected output was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;It was the best of times, it was the worst of TIMES,
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One tiny comma. One small space. And the test failed.&lt;/p&gt;

&lt;p&gt;It was frustrating, but it taught me something crucial: precision matters. Computers don’t guess what you meant — they only care what you actually wrote.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Learned&lt;/strong&gt;&lt;br&gt;
From Go Reloaded, I learned:&lt;br&gt;
-Small mistakes, like punctuation or spaces, can break everything.&lt;br&gt;
-Writing code carefully matters more than writing it fast.&lt;br&gt;
-Debugging is as much about reading the test as reading the code.&lt;br&gt;
-It was humbling, yes, but also exciting. Each mistake became a lesson.&lt;/p&gt;

&lt;p&gt;This project set the tone for all my future Go work. After Go Reloaded:&lt;br&gt;
-I started reading test failures carefully.&lt;br&gt;
-I paid more attention to formatting and data handling&lt;br&gt;
-I became more patient and methodical&lt;/p&gt;

&lt;p&gt;Go Reloaded was more than just code — it was my first taste of learning in public.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;br&gt;
Sometimes the smallest projects teach the biggest lessons.&lt;br&gt;
Go Reloaded taught me to slow down, pay attention, and embrace the little mistakes because that’s where growth happens.&lt;/p&gt;

</description>
      <category>go</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
