Rich Donnellan

Rich Donnellan

Treehouse Moderator

Seattle, WA

27,708

Total Points

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

Skills & Experience

  • Job Title

    Front-End Developer

  • Spoken Languages

    • English

348 Achievements

  • Build an Accessible Form
  • Introduction To Accessibility
  • Traversing the DOM
  • Making Decisions in Your Code with Conditional Statements
  • Working With Strings
  • Storing and Tracking Information with Variables
  • Getting a Handle on the DOM
  • Making Changes to the DOM
  • The Browser Environment
  • JavaScript is Everywhere
  • JavaScript Tools and Workflows
  • Object Basics
  • Loop Through Objects
  • Store Multiple Values in an Array
  • Loop Through Arrays
  • Multidimensional Arrays
  • Simplify Repetitive Tasks with Loops
  • Working with 'for' Loops
  • Arrow Functions
  • Create Reusable Code with Functions
  • Pass Information Into Functions
  • Working with Numbers
  • The Math Object
  • Hello, JavaScript!
  • Meet Lists
  • Using Lists
  • Build an Application
  • Meet Python
  • Types and Branching
  • Functions and Looping
  • All Together Now
  • Adding a New Web Page
  • Lists, Code, Links and Images
  • Understanding Markdown
  • Exploring Async/Await
  • Understanding Promises
  • Asynchronous JavaScript with Callbacks
  • What is Asynchronous Programming?
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • The Role of Selectors in JavaScript
  • Pseudo-classes and Combinators
  • Selector Basics
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Basic File Handling
  • PHP Internal Functions
  • PHP Returns & Closures
  • Going Further with Grid Layout
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Putting It All Together
  • Embracing the Process
  • Curating the Work
  • Portfolio Goals
  • Demystifying the Portfolio
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • React Component Patterns
  • Stateful Components and Lifecycle Methods
  • Managing State and Data Flow
  • Build Modular Interfaces with Components
  • Stateful Components
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • Handling Routes in Node.js
  • Getting the REST You Need 2
  • Refining the App
  • Building the Application
  • Combining Array Methods
  • Array Manipulation
  • Array Iteration
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • Regular Expressions
  • Setting up with Create React App
  • Component Lifecycle
  • Designing Dataflow
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • Getting Started with CSS Transitions
  • Error Handling
  • Creating Distributable OOP Packages
  • Autoloading and Composer
  • Databases and International Concerns
  • Starting Right with PHP Best Practices
  • PHP Functions Basics
  • Hooking Into WordPress Plugins
  • Action Functions in WordPress
  • Filter Functions in WordPress
  • An Overview of Hooks in WordPress
  • Advanced Directives
  • Concepts on Advanced Functions
  • PHP Basics for WordPress
  • More Advanced PHP for WordPress
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Advanced Variables, Mixins, Functions, and Placeholders
  • Getting Started with Advanced Sass
  • The Local Development Environment
  • How to Install WordPress on Your Computer
  • Pricing and Project Proposals
  • Finding Your First Project
  • Starting a Freelance Career
  • Getting the REST You Need
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Going Mobile
  • Designing Email with CSS
  • Coding HTML Email
  • HTML Email Basics
  • Hello, GitHub!
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • Installing a Ruby Development Environment
  • The Logo Sprint
  • Logo Design 101
  • Modular Media Queries
  • Sass Grid System
  • SMACSS and Sass
  • Sass and BEM
  • Getting Modular with Mixins and Functions
  • Getting Started with Angular
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • Installing Sass and Setting up the Project
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • PHP Email Form Errors
  • PHP Email Forms
  • Exterminator
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Creating a Simple Server in Node.js
  • Developing Express Apps Like a Boss
  • Getting Started with Express
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • Building a Command Line Application
  • Introduction to Node.js
  • How Ruby Works
  • MASH JavaScript
  • MASH CSS
  • MASH HTML
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Welcome to the Treehouse Club
  • WWW
  • The Internet
  • Computer Languages
  • Computer Basics
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Installing Programs
  • Environment and Redirection
  • Better SEO Through Tools
  • Better SEO Through Code
  • Better SEO Through Content
  • Introduction to SEO
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Console Processes
  • Console Users and Permission
  • Introduction to Design
  • Grid Layout
  • Flexbox Layout
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • Getting Started with Sass
  • Moving Around in the Console
  • Creating an SVG
  • Introduction to SVG
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • A Template Hierarchy Review
  • Media Templates in WordPress
  • 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
  • Why Version Control Matters
  • Chrome DevTools Basics
  • Getting Started with Jekyll
  • Shopping List
  • Things That Count
  • Ins & Outs
  • Say Hello to Python
  • Introduction to PHP for WordPress
  • Web Apps
  • Websites
  • Introduction
  • AJAX and APIs
  • jQuery and AJAX
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Custom Media Players
  • Captioning Video
  • Media Basics
  • Programming AJAX
  • AJAX Concepts
  • Website Basics
  • DNS Basics
  • Graphic Basics
  • 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
  • Building Out WordPress Navigation
  • The WordPress Loop
  • WordPress Header and Footer Templates
  • Working with CSS and JS in WordPress Themes
  • Local WordPress Development
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  • Finding Good WordPress Plugins and Themes
  • Managing Comments on a WordPress Blog
  • Working with Media in WordPress Blogs
  • Posts and Pages in WordPress
  • Blogging with WordPress Overview
  • WordPress Admin Settings
  • WordPress User Roles
  • The WordPress Codex
  • Owning a WordPress Site Long Term
  • WordPress Community Management
  • Working with Media in WordPress
  • Adding and Editing Content
  • Getting a WordPress Site
  • Traversing and Manipulating the DOM with JavaScript
  • Creating a Simple Drawing Application
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • Building Page Templates in WordPress
  • Starting a WordPress Theme
  • Custom Post Type Templates
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • Creating a Simple Lightbox
  • Creating a Spoiler Revealer
  • Introduction to jQuery
  • Structuring Tables
  • Table Basics
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • Getting Started with WordPress
  • The Box Model
  • Understanding Values and Units
  • Adding a Contact Form
  • Basic Selectors
  • Getting Started with CSS
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Getting Started with CSS
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Customizing the Login Screen
  • 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
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • HTML First
  • Beginning HTML and CSS
  • Newbie