Nicolas Hampton

Nicolas Hampton

Portland, OR

Software Developer at New Relic. Former Developer at Treehouse. Was a Student Success Coordinator for Treehouse's Front End Web Development & Full Stack Javascript Techdegree programs. Published poet and avid karaoke singer. No, really.

44,626

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

    New Relic

  • Job Title

    Software Developer

471 Achievements

  • Getting Started with Hibernate
  • Data Persistence & ORMs
  • Interfaces in Java
  • Java Lists
  • Java Inheritance
  • Building a Linked List
  • The Merge Sort Algorithm
  • Exploring Arrays
  • Recursion and Space Complexity
  • Algorithms in Code
  • Generics in Java
  • Java Maps
  • Gotchas and Wins
  • Iteration
  • Creation
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Modeling, Storing, and Presenting Data with Spring
  • Creating Spring Controllers and Thymeleaf Views
  • Spring Components and Configuring Our App
  • Setting Up Your Local Environment for Spring Development
  • Getting to Know Tuples
  • Meet Objects
  • Checking Out and Returning a Book
  • Introducing 'Four in a Row'
  • The Rough Plan
  • Time Complexity
  • Playing a Counting Game
  • Array Organization
  • Test Time!
  • Final Details
  • Django Templates
  • Practice ERB Templates
  • Meet NumPy
  • Data Eruption
  • Chart Toppers
  • Getting Started with Data Visualization
  • Dice Roller
  • Python: Advanced Objects
  • Python: Inheritance
  • Build an Application
  • Using Lists
  • Meet Lists
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • The Data Analysis Process
  • Getting to Know Your Data
  • Introducing Data Analysis
  • Coding the API
  • Route Connections
  • Introduction to REST
  • Practice Updating Resources
  • Practice CRUD Operations
  • Practice Creating Scaffolds
  • Go Concurrency Overview
  • Go Custom Types Overview
  • Go Data Structures Overview
  • Go Flow Control Overview
  • Go Syntax Overview
  • More Association Options
  • Using Associations in Your App
  • Active Record Associations
  • 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
  • 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 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 Conditionals
  • Ruby Numeric Types
  • Ruby Objects
  • Ruby Strings and Escape Sequences
  • Ruby Syntax
  • Day 3: Getting Creative
  • Day 2: Advanced Selecting
  • Day 1: Joining Tables
  • Orientation: Selecting Data
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Using Templates with Express
  • Getting Started with Express
  • Combining Array Methods
  • Array Manipulation
  • Array Iteration
  • What is Big Data
  • Security: Concerns
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Python: Instant Objects
  • Accessible UI Patterns
  • Semantic HTML and WAI-ARIA
  • WCAG 2.0 (and Other Standards)
  • Access for Everybody
  • Dungeon Game 2
  • Python Sets
  • Python Tuples
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Letter Game App
  • Number Game App
  • Shopping List App
  • Logic in Python
  • Python Data Types
  • Python For Beginners
  • Hello, jQuery!
  • Actions, Dispatch and Reducers. Oh my!
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Using Java's Built-In Annotations
  • The Browser Environment
  • Bells and Whistles
  • Diving into Web Development
  • What to Test
  • How To Test
  • Why Test
  • Advanced Tooling
  • Component Lifecycle
  • Designing Dataflow
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • Express Middleware
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • Completing and Testing the API
  • Communicating with Mongo Through Mongoose
  • Modeling Data for the API
  • Building API Routes in Express
  • Building a REST Service
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Working with Text
  • 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
  • Getting to Know Bootstrap 4
  • Getting the REST You Need
  • Next Steps
  • Improving Our Tests
  • Behavior Driven Development with Mocha & Chai
  • Introducing Unit Testing
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • Working By Yourself
  • Hello, GitHub!
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • 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
  • Styling and Scaling Data
  • Data Binding with D3
  • Getting Started with CSS Layout
  • More TODO with the MEAN Stack
  • Creating and Editing Data in a MEAN App
  • Setting Up MongoDB
  • Going MEAN with Angular
  • Simple Mobile Interface
  • Exporting Designs
  • Sketch Features
  • Introducing Sketch
  • Going MEAN with Express
  • Introduction to MEAN
  • Installing a Ruby Development Environment
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Understanding Flexbox
  • Model Administration
  • What a View
  • The Lambda Lambada
  • Functional Workhorses
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Getting Started with MongoDB
  • Getting Started with Data Science
  • Tacocat Challenge
  • How to Win Friends
  • Broadcasting
  • Say Hello to Django
  • Takin' Names
  • Making Strong Users
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • Covering Your Bases
  • Be Assertive!
  • What Is Testing?
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Python Regular Expressions
  • Services in Angular
  • Using Angular's Built-in Directives
  • Controllers and Scope
  • Getting Started with Angular
  • Timezones
  • Math Quiz App
  • Functional Rules
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • Local Python
  • Hack-n-Slash
  • Python Inheritance
  • Python Objects
  • Dungeon Game
  • Tuples
  • Dictionaries
  • Slices
  • Lists Redux
  • Pick a Number! Any Number!
  • Putting the "Fun" Back in "Functions"
  • Shopping List
  • Things That Count
  • Ins & Outs
  • Say Hello to Python
  • Getting Started with Compass
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Selections with D3
  • Keyframe and Line Drawing Animations
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Working with Media Queries
  • CSS Animation Basics
  • Understanding CSS Transitions and Transforms
  • Understanding Flexbox and Multi-Column Layout
  • Transitions and Transforms
  • Creating an SVG
  • Introduction to SVG
  • Creating an Icon
  • Introduction to Illustrator
  • 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
  • Getting Started with Sass
  • Getting Started with Jekyll
  • IDE Exploration
  • How it Works
  • Getting Started with Ember.js
  • Prototyping With Bootstrap
  • Introduction to Front-End Frameworks
  • 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
  • Developing Express Apps Like a Boss
  • Getting Started with Express
  • Make Your Own AngularJS Widget
  • Extending Inputs
  • AngularJS Directives
  • Computer Basics
  • The Internet
  • WWW
  • Services and Dependencies
  • Two-way Data Binding
  • AngularJS MVC Frameworks
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Building a Command Line Application
  • Introduction to Node.js
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • Installing Programs
  • Environment and Redirection
  • Chrome DevTools Basics
  • Web Apps
  • Websites
  • Introduction
  • 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
  • Responsive Theory
  • Custom Media Players
  • Captioning Video
  • Media Basics
  • Traversing and Manipulating the DOM with JavaScript
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Structuring Tables
  • Table Basics
  • 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
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • 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
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Adding Play Services to Your App
  • Migrating a SQLite Database
  • CRUD Operations with SQLite
  • Using SQLite for Structured Data
  • Key-Value Saving with SharedPreferences
  • File Storage
  • Introduction to Data Persistence
  • Adding Push Notifications from Parse.com
  • Updating Other GridViews
  • Customizing a GridView for Friends
  • Customizing a ListView for the Inbox
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • Customizing the Action Bar
  • Using Custom Styles and Themes
  • Customizing the Login Screen
  • Starting with Design Mockups
  • Self-Destruction
  • Retrieving and Viewing Messages
  • Sending Messages
  • Capturing Photos and Videos
  • PHP Getting Started
  • Relating Users in Parse.com
  • Using Fragments for Tabs
  • Adding Users Using Parse.com
  • Starting the App
  • Acting on List Item Taps
  • Lists with RecyclerViews
  • Using Parcelable Data
  • Custom ListViews
  • Standard ListViews
  • Updating the Data Model
  • Hooking up the Model to the View
  • Building the Weather UI
  • Working with JSON
  • Concurrency and Error Handling
  • Networking
  • Exploring an API
  • Using Git for Android
  • Getting Started with Genymotion
  • Getting Started with Android Studio
  • Publishing on Google Play
  • Finishing the User Interface
  • The Model-View-Controller Pattern
  • Intents and Multiple Activities
  • User Input
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • Testing and Debugging
  • Improving Our Code
  • Coding the Fun Facts
  • Basic Android Programming
  • Creating the Initial Screen Layout
  • Getting Started with Android
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Newbie