Michael Caveney

Michael Caveney

Somerville, MA

Exploring a new interest in web development and software engineering.

50,144

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
  • Looking for work

    Yes

621 Achievements

  • Why React Native
  • Setting up with Create React App
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • More Association Options
  • Using Associations in Your App
  • Active Record Associations
  • Applying IA
  • Evaluating IA
  • Main Principles
  • What is Information Architecture?
  • Persuasive Patterns
  • UI Patterns
  • Strategy: Determining Goals for your Product
  • Planning Your Users’ Journey
  • Understanding Our Users
  • Intro to User Experience (UX) Design
  • The Design Solution
  • The Design Problem
  • Design Principles
  • What is Product Design?
  • Telling the Story
  • Designing for Your User’s "To-be"
  • Understanding your User’s “As-is” Scenario
  • Becoming Acquainted with Your User
  • Becoming a Design Thinker
  • Day 2: Advanced Selecting
  • Improving Usability
  • Mobile Usability
  • Website Usability
  • What is Usability?
  • Getting the REST You Need 2
  • GitHub and Other Remote Repositories
  • First Commits
  • Designing with Patterns
  • Callbacks and the DOM
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Serving Static Files in Express
  • Practice Updating Resources
  • Practice CRUD Operations
  • Practice Creating Scaffolds
  • Playing a Counting Game
  • CRUD Operations
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • LINQ Queries
  • Unit Testing
  • Write Smart and Efficient CSS with Sass
  • Extending Our Entity Data Model
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Design Patterns
  • Page Layout
  • Entity Framework and Databases
  • Introducing Entity Framework
  • Query Builder
  • Query Operators
  • Functional!
  • Now You're Querying!
  • Sets and Dictionaries
  • Lists
  • Finishing Our CRUD Web App
  • Data Retreiver
  • Adding Form Validation
  • Improving Our Form
  • Creating a Basic Form
  • Getting Started with Xamarin
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Introducing CRUD Applications
  • Building Images Using Dockerfiles
  • Laying Out Type for the Web
  • Basic Web Typography
  • How to Choose and Use Webfonts
  • Introduction to Typography
  • Exploration
  • Discovery
  • API Authentication
  • Coding the API
  • Route Connections
  • Introduction to REST
  • Ruby Conditionals
  • Ruby Numeric Types
  • Ruby Objects
  • Ruby Strings and Escape Sequences
  • Ruby Syntax
  • Fundamentals of Docker
  • Docker Use Cases
  • Day 1: Joining Tables
  • Orientation: Selecting Data
  • Reusable GraphQL
  • Making Changes with Mutations
  • Fetching Data with Queries
  • Getting Started with GraphQL
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Captioning Video
  • Media Basics
  • S3 Storage Service
  • AWS and "The Cloud"
  • Going Further with Grid Layout
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Create Function Using Arrow Syntax
  • Using Template Literals
  • Defining Variables With let and const
  • Array Manipulation
  • Array Iteration
  • Gotchas and Wins
  • Iteration
  • Creation
  • IDE Exploration
  • How it Works
  • Meet Selenium
  • Go Flow Control Overview
  • Go Syntax Overview
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Regular Expressions
  • Using Templates with Express
  • Getting Started with Express
  • Callbacks with Timers
  • Finishing the Game
  • Introducing JavaScript
  • Introduction to Callback Functions
  • Angular Form Validation
  • Angular Basic Forms
  • Services in Angular
  • Security: Solutions
  • Angular Components
  • Security: Concerns
  • Putting it all Together
  • Actions, Dispatch and Reducers. Oh my!
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • More TODO with the MEAN Stack
  • Creating and Editing Data in a MEAN App
  • Completing and Testing the API
  • Setting Up MongoDB
  • Communicating with Mongo Through Mongoose
  • Modeling Data for the API
  • Next Steps
  • Getting Started With Spreadsheets
  • Improving Our Tests
  • Building API Routes in Express
  • Setting Up an Angular Application
  • Behavior Driven Development with Mocha & Chai
  • Going MEAN with Angular
  • Going MEAN with Express
  • Introduction to MEAN
  • Introducing Spreadsheets
  • Introducing Unit Testing
  • Building a REST Service
  • Express Middleware
  • Sessions and Cookies
  • Improving Our Todo App
  • User Registration and Login
  • Services in Angular
  • Testing and Publishing an Alexa Skill
  • Using Angular's Built-in Directives
  • Building an Alexa Skill
  • What is Authentication?
  • Alexa Skills Kit Overview
  • Serialized!
  • Arrays
  • A Route to a Delete Action
  • Routes to Update Actions
  • Routes for Create Actions
  • A Route to a Read Action
  • Data Parser
  • Rails Resource Index
  • Sinatra Finishing Touches
  • Adding a Model Attribute
  • Using the Rails Console
  • Handling Rails Requests
  • Creating Rails Apps
  • Updating Data in Sinatra
  • 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
  • Adding New Data in Sinatra
  • Search
  • Ruby Class Design
  • Sinatra ERB Templates
  • Creating New Sinatra Apps
  • Exploring the Java Collections Framework
  • Blocks Practice
  • Organizing Data
  • Working With Blocks
  • Getting the REST You Need
  • Getting There
  • Component Lifecycle
  • Designing Dataflow
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Delivering the MVP
  • Creating the MVP
  • Selections with D3
  • Stateful Components
  • Harnessing the Power of Objects
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Meet Objects
  • DNS Basics
  • Adding a List Page
  • Modeling and Presenting Data
  • Views
  • Data Reader
  • Controllers
  • Project Setup
  • Abstraction
  • System.Object
  • Polymorphism
  • Loops and Final Touches
  • Encapsulation with Properties
  • Encapsulation and Arrays
  • Inheritance
  • Ruby Blocks
  • Build a Simple Todo List Program
  • Gems In Depth
  • Ruby Gems
  • Ruby Booleans
  • Build a Bank Account Class
  • Ruby Variables and Methods
  • Ruby Objects and Classes
  • Build a Simple Contact List
  • Ruby Iteration
  • Ruby Loops
  • Build a Grocery List Program
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Logical Operators
  • Ruby Control Structures
  • Ruby Operators
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • Thinking in Components
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Creating the MVP
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • First Steps in React
  • Classes
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Methods
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • Objects and New Collection Types
  • Understanding Flexbox and Multi-Column Layout
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • PHP Arrays
  • PHP Conditionals
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • Installing Sass and Setting up the Project
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Creating an SVG
  • Introduction to SVG
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Working with Text
  • PHPDB Stage 2: Querying the Database with PHP
  • PHPDB Stage 1: Databases and PHP
  • Connecting to MySQL
  • The WordPress Loop
  • WordPress Header and Footer Templates
  • Working with CSS and JS in WordPress Themes
  • Object-Oriented Programming
  • Building a Collection
  • Introduction to Front-End Frameworks
  • Building the Recipe
  • SEO Plugins for WordPress
  • How WordPress Templates Work
  • Enhancing the SEO of a WordPress Theme
  • Content Comes First
  • Starting a WordPress Theme
  • More Advanced PHP for WordPress
  • PHP Basics for WordPress
  • Introduction to PHP for WordPress
  • Local WordPress Development
  • Getting to Know Bootstrap 4
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Perfect
  • Installing Wordpress
  • Perform
  • Console I/O
  • Prepare and Plan
  • How Ruby Works
  • Understanding Classes
  • Why Object-Oriented Programming?
  • Slices
  • Designing with the Latest Features
  • Get Involved in Open Source
  •  Working on a Team
  • Scrum Artifacts
  • Scrum Events
  • Introducing Scrum
  • What is Agile?
  • Combine and Minify Assets
  •  Create a Web Presence on GitHub
  • Working By Yourself
  • GET and POST Requests in a Browser
  • Hello, GitHub!
  • Harnessing the Power of Objects
  • Introduction to HTTP
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • 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
  • Lists Redux
  • Fundamental Concepts
  • Basic Layout
  • Letter Game App
  • WordPress Admin Settings
  • WordPress User Roles
  • WordPress Plugins
  • WordPress Themes
  • The WordPress Customizer
  • Managing Media in WordPress
  • Managing Content in WordPress
  • How to Install WordPress on Your Computer
  • Number Game App
  • Shopping List App
  • Controllers and Scope
  • Getting Started with Angular
  • Logic in Python
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • Doing More with Express
  • Serving Static Files in Express
  • Using Templates with Express
  • The Request and Response Objects in Express
  • The Box Model
  • Developing Express Apps Like a Boss
  • Getting Started with Express
  • Updating and Uninstalling Packages with npm
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Installing Packages with npm
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • What is npm?
  • Meet Objects
  • Handling Routes in Node.js
  • Perfecting the Prototype
  • Creating a Simple Server in Node.js
  • Database Security
  • Queries & Results
  • Getting Started with PDO
  • Contact Forms & Mailers
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Getting Started with MongoDB
  • Using your New Tools
  • Building a Command Line Application
  • Slim and Templates
  • Getting Started with Java
  • Introduction to Node.js
  • Ordering, Limiting and Paging Results
  • Dependency Management
  • 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
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Data, Databases and SQL
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • PHP Email Form Errors
  • PHP Email Forms
  • PHP Inventory
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • Python Data Types
  • Python For Beginners
  • Getting Started with WordPress
  • MASH HTML
  • MASH JavaScript
  • MASH CSS
  • Treehouse Club - CSS
  • PHP Includes
  • WWW
  • The Internet
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • PHP Loops
  • Introducing jQuery Plugins
  • JavaScript Objects
  • Computer Languages
  • Computer Basics
  • JavaScript Arrays
  • JavaScript Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • Listing Inventory Items
  • Custom Media Players
  • Captioning Video
  • Media Basics
  • Adding a Contact Form
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • 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
  • Creating the Menu and Footer
  • Graphic Basics
  • Website Basics
  • 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
  • Chrome DevTools Basics
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Creating a Simple Drawing Application
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • Creating a Simple Lightbox
  • Web Apps
  • Websites
  • Introduction
  • Creating a Spoiler Revealer
  • Introduction to jQuery
  • Traversing and Manipulating the DOM with JavaScript
  • Treehouse Club - JavaScript
  • Welcome to the Treehouse Club
  • Launching the Website
  • Styling Content
  • Creating a Website Structure
  • Text Editors and HTML
  • Website Basics
  • Spriting with Compass
  • Compass Helper Functions
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Compass Layout and Typography
  • Getting Started with Compass
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Getting Started with Sass
  • Moving Forward with UX
  • Tools UXers Use
  • How UXers Think
  • Better SEO Through Tools
  • Better SEO Through Code
  • Better SEO Through Content
  • Introduction to SEO
  • What Do User Experience Designers Do?
  • What is User Experience (UX)?
  • JavaScript Objects
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • The Logo Sprint
  • Logo Design 101
  • Creating Home Page Assets
  • Applying Effects
  • JavaScript Functions
  • JavaScript Arrays
  • How to Draw in Illustrator
  • JavaScript Numbers
  • JavaScript Strings
  •  Adding Color and Type
  • Getting Started with PHP
  • Creating an Icon
  • Workflow Basics
  • Slices & Save for Web
  • Vector Shapes
  • Type Tools
  • Masks Basics
  • Introduction to Illustrator
  • Pick a Number! Any Number!
  • Putting the "Fun" Back in "Functions"
  • Shopping List
  • Things That Count
  • Ins & Outs
  • Say Hello to Python
  • Layer Basics
  • Workspace Basics
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Introduction to Design
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Color Theory
  • Introduction Variables
  • Principles
  • Elements
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • Grid Layout
  • Flexbox Layout
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • Media Queries
  • CSS Animations
  • Transitions and Transforms
  • Flexbox and Multi-Column Layout
  • Gradients
  • Web Typography
  • Backgrounds and Borders
  • CSS Box Model
  • Text, Fonts, and Lists
  • Values and Units
  • Advanced Selectors
  • Selectors
  • Getting Started with CSS
  • Structuring Tables
  • Table Basics
  • Choosing Options
  • Organizing Forms
  • Form 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