Creating Digital Experiences That Matter

I'm a full-stack developer specializing in building exceptional digital experiences. With expertise in both frontend and backend technologies, I bring ideas to life through clean, efficient code.

My Portfolio

A showcase of my recent projects and solutions

Mobile Applications

Mobile Applications

Internet of Things or IOT is the new norm. Mobile apps will not only reside in our phones, but are fastly being adapted into machine learning and A.I. production fields.

React Native Flutter UI/UX
View Project
Ochi's Property Manager

Ochi's Property Manager

A robust property management solution offering various benefits in asset management as well as tenant management.

Java SQL Desktop App
View Project
Web Design

Web Design & Development

Get a quick set up with web-hosting, web-design and web integration services. From simple ideas to complicated concepts.

HTML/CSS JavaScript Responsive
View Project

About Me

Get to know the person behind the code

Ochuowo Otiato

Ever since the first day I discovered computers, I just wanted to get to know more about them and what they can do. New technology always fascinates me beyond imagination.

Between hardware and software, I chose software for one reason: the ability to touch and change lives across the globe. This is a calling I am more than willing to answer at any given time, any given place.

I create desktop, mobile and web applications, supporting both the frontend and backend, as well as middleware for authentication, as and when is required.

Java JavaScript SQL C# HTML/CSS React Node.js UI/UX Design

Learning Resources

Explore my collection of tutorials and learning materials

All Topics
JavaScript
HTML
CSS
Back to Blog

JavaScript Fundamentals: A Beginner's Guide

15 min read June 12, 2023

JavaScript is the programming language of the web. It allows you to create dynamic and interactive web pages. In this guide, we'll cover the fundamental concepts you need to get started with JavaScript.

Variables and Data Types

Variables are containers for storing data values. JavaScript has three ways to declare variables: var, let, and const.

// Variable declarations
var name = "John"; // Function-scoped
let age = 25; // Block-scoped, can be reassigned
const PI = 3.14; // Block-scoped, cannot be reassigned

// Data types
let isStudent = true; // Boolean
let score = 95.5; // Number
let greeting = "Hello World"; // String
let colors = ["red", "green", "blue"]; // Array
let person = {"name": "Alice", "age": 30}; // Object

Functions

Functions are reusable blocks of code that perform a specific task. They help organize code and avoid repetition.

// Function declaration
function greet(name) {
  return "Hello, " + name + "!";
}

// Function expression
const multiply = function(a, b) {
  return a * b;
};

// Arrow function (ES6)
const divide = (a, b) => a / b;

// Using functions
let message = greet("Sarah");
console.log(message); // Output: "Hello, Sarah!"
console.log(multiply(5, 3)); // Output: 15

Control Structures

Control structures allow you to control the flow of your program's execution based on conditions.

// If-else statement
let temperature = 22;
if (temperature > 30) {
  console.log("It's hot outside");
} else if (temperature > 20) {
  console.log("It's warm outside");
} else {
  console.log("It's cool outside");
}

// For loop
for (let i = 0; i < 5; i++) {
  console.log("Count: " + i);
}

// While loop
let count = 0;
while (count < 3) {
  console.log("Count: " + count);
  count++;
}

Exercise: Create a Simple Calculator

Write a JavaScript function called calculator that takes three parameters: two numbers and an operator (+, -, *, /). The function should return the result of the operation.

Example: calculator(10, 5, '+') should return 15.

// Your solution here
function calculator(num1, num2, operator) {
  // Write your code here
}
Back to Blog

HTML5 Semantic Elements: Building Better Structure

10 min read May 28, 2023

HTML5 introduced semantic elements that give meaning to the structure of web pages. These elements make your HTML more readable and improve accessibility for screen readers and search engines.

Basic HTML Structure

Every HTML document should have a basic structure with essential elements.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <!-- Page content goes here -->
</body>
</html>

Semantic Elements

Semantic elements clearly describe their meaning to both the browser and the developer.

<header>
  <h1>Website Title</h1>
  <nav>
    <ul>
      <li><a href="#">Home</a></li>
      <li><a href="#">About</a></li>
    </ul>
  </nav>
</header>

<main>
  <article>
    <h2>Article Title</h2>
    <p>Article content...</p>
  </article>
  <aside>
    <h3>Related Links</h3>
    <ul>
      <li><a href="#">Link 1</a></li>
    </ul>
  </aside>
</main>

<footer>
  <p>© 2023 My Website</p>
</footer>

Forms and Input Elements

HTML forms allow users to enter data that is sent to a server for processing.

<form action="/submit" method="post">
  <div>
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required>
  </div>
  <div>
    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required>
  </div>
  <div>
    <label for="message">Message:</label>
    <textarea id="message" name="message" rows="4"></textarea>
  </div>
  <button type="submit">Send Message</button>
</form>

Exercise: Create a Personal Profile Page

Create an HTML page that includes:

  • A header with your name and a navigation menu
  • A main section with an article about yourself
  • An aside with your skills or interests
  • A footer with copyright information
  • A contact form with name, email, and message fields

Use semantic HTML5 elements throughout your page.

Back to Blog

Modern CSS Layouts with Flexbox and Grid

20 min read May 15, 2023

CSS Flexbox and Grid are powerful layout systems that make it easier to create complex, responsive web designs. In this article, we'll explore both and learn when to use each.

CSS Flexbox

Flexbox is designed for one-dimensional layouts - either a row or a column. It's perfect for components like navigation bars, card layouts, and centering elements.

/* Flexbox container */
.container {
  display: flex;
  justify-content: space-between; /* Horizontal alignment */
  align-items: center; /* Vertical alignment */
  flex-wrap: wrap; /* Allow items to wrap */
  gap: 1rem; /* Space between items */
}

/* Flexbox items */
.item {
  flex: 1 1 200px; /* grow, shrink, basis */
  min-height: 100px;
  background: #f0f0f0;
  padding: 1rem;
}

CSS Grid

CSS Grid is designed for two-dimensional layouts - both rows and columns. It's ideal for overall page layouts and complex component designs.

/* Grid container */
.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  grid-template-rows: auto;
  gap: 1.5rem;
  padding: 1rem;
}

/* Grid items with placement */
.header {
  grid-column: 1 / -1; /* Span all columns */
  background: #333;
  color: white;
  padding: 1rem;
}

.sidebar {
  grid-column: 1 / 2;
  background: #f5f5f5;
  padding: 1rem;
}

.main-content {
  grid-column: 2 / -1;
  background: white;
  padding: 1rem;
}

Responsive Design with Media Queries

Media queries allow you to apply different styles based on device characteristics, most commonly the viewport width.

/* Base styles for all devices */
.container {
  padding: 1rem;
  max-width: 1200px;
  margin: 0 auto;
}

/* Tablet styles */
@media (min-width: 768px) {
  .container {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 2rem;
  }
}

/* Desktop styles */
@media (min-width: 1024px) {
  .container {
    grid-template-columns: 1fr 3fr 1fr;
  }
}

Exercise: Create a Responsive Card Layout

Create a CSS layout that displays cards in a responsive grid:

  • On mobile devices (under 768px), show 1 card per row
  • On tablets (768px to 1023px), show 2 cards per row
  • On desktop (1024px and above), show 3 cards per row

Use either CSS Grid or Flexbox for the layout and media queries for the responsive behavior.

/* Your CSS solution here */
.card-container {
  /* Add your styles */
}

.card {
  /* Add your styles */
}

/* Add media queries for different screen sizes */
JavaScript Basics

JavaScript Fundamentals: A Beginner's Guide

15 min read June 12, 2023

Learn the core concepts of JavaScript including variables, data types, functions, and control structures. Perfect for those just starting their coding journey.

Read More
HTML Structure

HTML5 Semantic Elements: Building Better Structure

10 min read May 28, 2023

Discover how to use HTML5 semantic elements to create more meaningful, accessible, and SEO-friendly web pages.

Read More
CSS Layouts

Modern CSS Layouts with Flexbox and Grid

20 min read May 15, 2023

Master the art of creating responsive layouts using CSS Flexbox and Grid. Learn when to use each and how they work together.

Read More

Get In Touch

Have a project in mind? Let's discuss how we can work together

Location

Nairobi, Kenya

Email

Use the contact form

Phone

Just use the contact form

Website

https://ochuowo.github.io/waterlandent/