Joe Purdy

Joe Purdy

Portland, OR

Software developer with experience leading QA teams, and developing scalable cloud services. A native of the Pacific Northwest, Joe enjoys hiking, strong coffee, and finding remote locations where his email can't keep up.

23,237

Total Points

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

Skills & Experience

  • Company

    Customer.io

  • Job Title

    Sr. Site Reliability Engineer

  • Spoken Languages

    • English

281 Achievements

  • Refining the App
  • Building the Application
  • Setting up with Create React App
  • Exploring Best Practices
  • Test Drive
  • Meet Selenium
  • Basic Layout
  • The Box Model
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • Understanding Values and Units
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Component Lifecycle
  • Designing Dataflow
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Getting Started with MongoDB
  • A Route to a Delete Action
  • Routes to Update Actions
  • Routes for Create Actions
  • A Route to a Read Action
  • Rails Resource Index
  • Adding a Model Attribute
  • Using the Rails Console
  • Handling Rails Requests
  • Creating Rails Apps
  • Basic Selectors
  • Local WordPress Development
  • Getting Started with CSS
  • Lists, Code, Links and Images
  • Understanding Markdown
  • Simple Mobile Interface
  • Exporting Designs
  • Sketch Features
  • Introducing Sketch
  • 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
  • How to Install WordPress on Your Computer
  • What Is WordPress?
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Working with Text
  • Getting Familiar with HTML and CSS
  • Ordering, Limiting and Paging Results
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Sinatra Finishing Touches
  • Updating Data in Sinatra
  • Adding New Data in Sinatra
  • Sinatra ERB Templates
  • Creating New Sinatra Apps
  • 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
  • Build a Simple Todo List Program
  • Ruby Booleans
  • Build a Bank Account Class
  • Ruby Variables and Methods
  • Ruby Objects and Classes
  • Build a Simple Contact List
  • Ruby Iteration
  • Ruby Loops
  • S3 Storage Service
  • AWS and "The Cloud"
  • The Internet
  • Go Custom Types Overview
  • Go Concurrency Overview
  • Go Data Structures Overview
  • Go Flow Control Overview
  • Go Syntax Overview
  • Build a Grocery List Program
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Logical Operators
  • Ruby Control Structures
  • Ruby Operators
  • Migrations and Relationships
  • Organizing your Tests
  • Creating Your Tests
  • Tools for Testers
  • How To Test Our Code
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Owning a WordPress Site Long Term
  • WordPress Community Management
  • Working with Media in WordPress
  • Adding and Editing Content
  • Getting a WordPress Site
  • Installing Wordpress
  • Introduction to ActiveRecord
  • 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
  • PHP Data & Structure
  • PHP Getting Started
  • Classes
  • Complex Data Structures
  • Function Parameters
  • Functions in Swift 2.0
  • Control Flow with Conditional Statements
  • Control Flow With Loops
  • Swift Dictionaries
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Control Flow
  • Collections
  • Operators
  • Types
  • Variables and Constants
  • HTML Email Basics
  • Better SEO Through Tools
  • Better SEO Through Code
  • Better SEO Through Content
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • Introduction to SEO
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • WWW
  • Harnessing the Power of Objects
  • Meet Objects
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Selections with D3
  • Introduction to Front-End Frameworks
  • Local Python
  • Gradients
  • Web Typography
  • Backgrounds and Borders
  • Relating Models
  • Laravel CRUD
  • Validation & Flash Messages
  • Laravel Forms
  • Laravel & Databases
  • Laravel Controllers
  • Laravel Project Setup
  • Laravel Getting Started
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • Using Git for Android
  • Getting Started with Genymotion
  • Getting Started with Android Studio
  • Publishing on Google Play
  • Testing and Debugging
  • Improving Our Code
  • Coding the Fun Facts
  • Basic Android Programming
  • Creating the Initial Screen Layout
  • Getting Started with Android
  • CSS Box Model
  • Text, Fonts, and Lists
  • Values and Units
  • Advanced Selectors
  • Important Skills For Professional Success
  • Selectors
  • Getting Started with CSS
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Limiting Results in Queries
  • Using Relationship Tables
  • Filtering Input for Queries
  • Querying the Database
  • Connecting to MySQL
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • Joining Relational Data Between Tables in SQL
  • Self-Assessment
  • 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
  • Paginating a List: Model and View
  • Paginating a List: Controller
  • Adding Search: Model
  • Pick a Number! Any Number!
  • Putting the "Fun" Back in "Functions"
  • Shopping List
  • Things That Count
  • Adding Search: Controller & View
  • Refactoring the Codebase
  • Ins & Outs
  • Say Hello to Python
  • Cleaning URLs with Rewrite Rules
  • Cleaning URLs with Subfolders
  • Integrating Validation Errors
  • Simple PHP Application: Wrapping Up The Project
  • Working with PHP Functions
  • Integrating With Paypal
  • Listing Inventory Items
  • Adding a Contact Form
  • Creating the Menu and Footer
  • Getting Started with PHP
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • 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