Dan Weru

Dan Weru

Nairobi
Open to Work

less is more

47,649

Total Points

Points are earned whenever you take an important action on Treehouse.
Learn more about when and how points are earned.

Skills & Experience

  • Spoken Languages

    • English
    • Spanish
    • French

609 Achievements

  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • Using the Delegate Pattern in iOS
  • The Delegate Pattern
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Error Handling and Memory Management
  • Building Standard Library Functions
  • Security: Solutions
  • Security: Concerns
  • Closure Expressions
  • First Class Functions
  • Generics and Protocols
  • Generic Types
  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Generic Functions, Parameters and Constraints
  • Access Control
  • Memory Management in Swift
  • Extensions and Protocols
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization
  • Team Collaboration in Figma
  • Prototyping Designs in Figma
  • Introducing Figma
  • Properties
  • Writing Great Swift
  • Error Handling
  • Creating Flexible Objects Using Protocols
  • Protocol Basics
  • Objects and Optionals
  • Introduction to Optionals
  • Telling the Story
  • Introduction to Enumerations
  • Designing for Your User’s "To-be"
  • Differentiating Between Objects
  • Class Inheritance
  • Classes in Swift
  • Understanding your User’s “As-is” Scenario
  • Becoming Acquainted with Your User
  • Becoming a Design Thinker
  • Security in Practice
  • Common Attacks and Defenses
  • Complex Data Structures
  • Scrum Artifacts
  • Adding Power to Functions
  • Functions in Swift
  • Control Flow With Conditional Statements
  • Control Flow With Loops
  • Dictionaries in Swift
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Hello Internet!
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Scrum Events
  • Practice forEach
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • Go Data Structures Overview
  • Go Flow Control Overview
  • Introducing Scrum
  • Go Syntax Overview
  • What is Agile?
  • Timezones
  • Dockerize a Web App
  • Managing Images and Containers
  • Building Images Using Dockerfiles
  • Fundamentals of Docker
  • Create Function Using Arrow Syntax
  • Using Template Literals
  • Defining Variables With let and const
  • Math Quiz App
  • Dates and Times
  • DNS Basics
  • Docker Use Cases
  • Getting the REST You Need
  • What is the MailChimp API
  • Graphic Basics
  • Website Basics
  • S3 Storage Service
  • AWS and "The Cloud"
  • What a View
  •  Working on a Team
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  • Working By Yourself
  • Hello, GitHub!
  • Gettin' CRUD-y With It
  • Our Diary App
  • Working with jQuery Collections (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Introducing jQuery (2017)
  • Meet Peewee
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • Say Hello to Django
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Python Regular Expressions
  • Buggy Logs
  • Cleaner Code
  • Regular Expressions
  • Python: Inheritance
  • Python: Instant Objects
  • Dungeon Game 2
  • Optimization Best Practices
  • Asset Optimization
  • Combining Array Methods
  • Array Manipulation
  • Testing for Accessibility
  • Mobile Accessibility
  • Accessible UI Patterns
  • Semantic HTML and WAI-ARIA
  • WCAG 2.0 (and Other Standards)
  • Array Iteration
  • Python Sets
  • Python Tuples
  • Why Web Performance Matters
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Connecting WordPress Plugins with 3rd Party APIs
  • PHP Email Form Errors
  • Lists, Code, Links and Images
  • Understanding Markdown
  • Letter Game App
  • Access for Everybody
  • PHP Email Forms
  • Number Game App
  • Shopping List App
  • Logic in Python
  • Finishing the Game
  • Day 3: Getting Creative
  • Day 2: Advanced Selecting
  • Integrating 3rd Party APIs
  • Implementing Redux
  • Python Data Types
  • Python For Beginners
  • Implementing React Native
  • Why React Native
  • Day 1: Joining Tables
  • PHP Inventory
  • Orientation: Selecting Data
  • Build a Website With Foundation
  • What's New in Foundation 5
  • Next Steps
  • Improving Our Tests
  • Introducing JavaScript
  • Prototyping With Foundation
  • Behavior Driven Development with Mocha & Chai
  • Building a WordPress Plugin Settings Page
  • Next Steps
  • Financing Our Company
  • Selling Your Product
  • Marketing Your Product
  • Product Market Fit
  • Discovery
  • Introducing Unit Testing
  • Build a Website With Bootstrap
  • Prototyping With Bootstrap
  • Captioning Video
  • Media Basics
  • Express Middleware
  • How WordPress Plugins Work
  • Building Forms With Bootstrap
  • Using Bootstrap Components
  • Sessions and Cookies
  • More TODO with the MEAN Stack
  • Creating and Editing Data in a MEAN App
  • User Registration and Login
  • What is Authentication?
  • Setting Up MongoDB
  • Going MEAN with Angular
  • Going MEAN with Express
  • Introduction to MEAN
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • Subqueries
  • Set Operations
  • Improving the Application Code
  • Editing and Filtering Names
  • Introduction to Front-End Frameworks
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • Refining the App
  • Building the Application
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Going Mobile
  • Designing Email with CSS
  • Coding HTML Email
  • HTML Email Basics
  • Adding and Removing Names
  • Traversing the DOM
  • Responding to User Interaction
  • Customizing the WooCommerce Cart and Checkout Process
  • Starting a Custom WooCommerce Theme
  • Cart, Checkout and Account Templates and Hooks
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Finding Business
  • Moving Beyond the Blog
  • Creating Content
  • Introduction to Blogging
  • Completing and Testing the API
  • Communicating with Mongo Through Mongoose
  • Joining Table Data with SQL
  • Creating a Long Term Business
  • Protecting Yourself With Contracts
  • Establishing a Proper Workflow
  • Modeling Data for the API
  • Building API Routes in Express
  • Setting up with Create React App
  • Pricing and Project Proposals
  • Finding Your First Project
  • Starting a Freelance Career
  • Final Project: Create a Typographic Site
  • Laying Out Type for the Web
  • Exploration
  • Discovery
  • Design Patterns
  • Page Layout
  • Global and Product Templates and Hooks
  • Basic Web Typography
  • How to Choose and Use Webfonts
  • Introduction to Typography
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Going Further with Grid Layout
  • Working with Text
  • Ordering, Limiting and Paging Results
  • Building a REST Service
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Getting Started with WooCommerce Theme Development
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Running an Ecommerce Site Long Term
  • Extending WooCommerce
  • Managing Orders in WooCommerce
  • Finding the Data You Want
  • Managing Products in WooCommerce
  • Setting Up WooCommerce
  • Introduction to Ecommerce with WordPress
  • Installing WordPress Locally
  • Getting Data from a Database
  • PHP Includes
  • Data, Databases and SQL
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Adding a New Web Page
  • Make It Beautiful with CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Getting Familiar with HTML and CSS
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Putting it all Together
  • Actions, Dispatch and Reducers. Oh my!
  • PHP Internal Functions
  • PHP Returns & Closures
  • Hooking Into WordPress Plugins
  • Action Functions in WordPress
  • Filter Functions in WordPress
  • An Overview of Hooks in WordPress
  • Custom WordPress Customizer Settings
  • Native WordPress Customizer Options
  • PHP Functions Basics
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Getting Started with Express
  • PHP Loops
  • Modular Media Queries
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Sass and BEM
  • Sass Grid System
  • Getting Started with React Router
  • SMACSS and Sass
  • PHP on the Web
  • Daily Exercise Program
  • PHP Arrays
  • Getting Modular with Mixins and Functions
  • PHP Conditionals
  • Unit Converter
  • Getting to Know PHP
  • Component Lifecycle
  • Designing Dataflow
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • Custom Dashboard Widgets
  • Controlling Admin Navigation
  • Customizing the Login Screen
  • Admin Color Schemes
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • What Is WordPress?
  • SEO Plugins for WordPress
  • Enhancing the SEO of a WordPress Theme
  • Building a Layout with Flexbox
  • Overview of the WordPress Customizer
  • Content Comes First
  • WordPress Plugin Best Practices
  • WordPress Widgets
  • Custom Post Types in WordPress
  • Customizing WordPress Themes
  • WordPress Themes
  • Add Bootstrap Components to WordPress Theme
  • Create Bootstrap Styled Theme Templates
  • Setup a Bootstrap Theme
  • Installing Sass and Setting up the Project
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Transitions and Transforms
  • Keyframe and Line Drawing Animations
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Getting Started with MongoDB
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Flexbox Properties
  • Understanding Flexbox
  • Adding 3D Effects with CSS
  • A Template Hierarchy Review
  • Media Templates in WordPress
  • Getting Started with CSS Transforms
  • Custom Post Type Templates
  • Archive Templates in WordPress
  • Page and Post Templates in WordPress
  • Homepage Templates in WordPress
  • Core WordPress Theme Files
  • How WordPress Templates Work
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • WordPress Admin Settings
  • WordPress User Roles
  • WordPress Plugins
  • WordPress Themes
  • The WordPress Customizer
  • Finishing Your WordPress Theme
  • Managing Media in WordPress
  • Managing Content in WordPress
  • How to Install WordPress on Your Computer
  • Getting Started with WordPress
  • Custom Homepage Templates in WordPress
  • Adding a Blog to a WordPress Theme
  • Custom Post Type Templates
  • Building Out WordPress Navigation
  • Building Page Templates in WordPress
  • The WordPress Loop
  • Positioning Page Content
  • WordPress Header and Footer Templates
  • Working with CSS and JS in WordPress Themes
  • Starting a WordPress Theme
  • More Advanced PHP for WordPress
  • PHP Basics for WordPress
  • Introduction to PHP for WordPress
  • Local WordPress Development
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  • The Logo Sprint
  • Logo Design 101
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Improving Our Todo App
  • Services in Angular
  • Combine and Minify Assets
  • Optimize Assets
  • Improving your Gulp Workflow
  • Using Angular's Built-in Directives
  • Compile Sass with Gulp
  • Controllers and Scope
  • Getting Started with Angular
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • Measuring Performance
  • Planning for Performance
  • Creating an SVG
  • Introduction to SVG
  • Moving Forward with UX
  • Doing More with Express
  • Serving Static Files in Express
  • Using Templates with Express
  • Tools UXers Use
  • How UXers Think
  • Advanced Sass Concepts
  • The Request and Response Objects in Express
  • Developing Express Apps Like a Boss
  • Chrome DevTools Basics
  • Getting Started with Express
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • Web Apps
  • Websites
  • Introduction
  • What is npm?
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Creating a Simple Server in Node.js
  • Building a Command Line Application
  • Getting Started with Sass
  • Introduction to Node.js
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • What Do User Experience Designers Do?
  • What is User Experience (UX)?
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Responsive Patterns
  • Media Queries
  • Custom Media Players
  • Responsive Theory
  • Captioning Video
  • Media Basics
  • Traversing and Manipulating the DOM with JavaScript
  • Creating Home Page Assets
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Creating a Simple Drawing Application
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • Creating a Simple Lightbox
  • Creating a Spoiler Revealer
  • Introduction to jQuery
  • Applying Effects
  • How to Draw in Illustrator
  •  Adding Color and Type
  • Creating an Icon
  • Gems In Depth
  • Ruby Gems
  • Ruby Standard Library: Part 2
  • Ruby Standard Library: Part 1
  • Ruby Core
  • Store Inventory Using Modules
  • Include and Extend
  • Ruby Core Modules
  • Ruby Module Basics
  • Input and Output
  • Search
  • Ruby Class Design
  • Blocks Practice
  • Working With Blocks
  • Ruby Blocks
  • Introduction to Illustrator
  • Workflow Basics
  • Slices & Save for Web
  • JavaScript Objects
  • Vector Shapes
  • Type Tools
  • JavaScript Arrays
  • JavaScript Loops
  • Build a Simple Todo List Program
  • Ruby Booleans
  • Masks Basics
  • Build a Bank Account Class
  • Ruby Variables and Methods
  • Ruby Objects and Classes
  • Build a Simple Contact List
  • Ruby Iteration
  • Ruby Loops
  • Finalizing the Project
  • Case Studies and Examples
  • Layer Basics
  • Workspace Basics
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • Build a Grocery List Program
  • Ruby Hashes
  • Ruby Arrays
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Introduction to Design
  • Grid Layout
  • Flexbox Layout
  • Ruby Logical Operators
  • Ruby Control Structures
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • Structuring Tables
  • Table Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Ruby Operators
  • MASH JavaScript
  • MASH CSS
  • Fundamental Concepts
  • Designing with the Latest Features
  • MASH HTML
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Basic Layout
  • The Box Model
  • Password Resets and Testing
  • Adding User Support to Our Application
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Welcome to the Treehouse Club
  • Password Hashing and Sign-In
  • WWW
  • The Internet
  • AR Extensions
  • Callbacks
  • Computer Languages
  • Computer Basics
  • Query Interface
  • Validation
  • Migrations and Relationships
  • Introduction to ActiveRecord
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • Joining Relational Data Between Tables in SQL
  • Manipulating Schema with SQL
  • Creating Tables and Manipulating Data with SQL
  • Reading Data from Databases with SQL
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Build a Todo List Application with Rails 4
  • Installing a Ruby Development Environment
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Styling Web Pages and Navigation
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • Newbie