David McNeill

David McNeill

Belfast, United Kingdom

Hi there! I'm a front-end developer from the UK and I started my first job in the industry thanks to Treehouse. My goal now is to expand my skill set even further and delve deeper into application development.

44,425

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

    Atto Partners

  • Job Title

    Front-End Developer

528 Achievements

  • 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
  • MASH JavaScript
  • MASH CSS
  • MASH HTML
  • Gems In Depth
  • Ruby Gems
  • Ruby Standard Library: Part 2
  • Practicing Getters and Setters
  • Practicing Classes
  • Ruby Standard Library: Part 1
  • Ruby Core
  • Store Inventory Using Modules
  • Include and Extend
  • Ruby Core Modules
  • Ruby Module Basics
  • Practicing Object Basics
  • Building a Flashcard App
  • Sweeping Vues: Loops, Methods, Directives
  • Input and Output
  • Search
  • Ruby Class Design
  • Blocks Practice
  • Working With Blocks
  • Ruby Blocks
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • Adding a Model Attribute
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • What a Beautiful Vue!
  • Introducing Vue
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • Going Further with Grid Layout
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Meet Python
  • Flexible Sized Grids
  • Introducing Grid Layout
  • GitHub and Other Remote Repositories
  • Managing Committed Files
  • First Commits
  • Working with jQuery Collections (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Introducing jQuery (2017)
  • Using the Rails Console
  • Handling Rails Requests
  • Creating Rails Apps
  • Finding the Data You Want
  • Lists, Code, Links and Images
  • Understanding Markdown
  • 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
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • Getting the REST You Need
  • 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
  • Refining the App
  • Building the Application
  • Why React Native
  • Setting up with Create React App
  • Component Lifecycle
  • Designing Dataflow
  • Installing WordPress Locally
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • Installing Sass and Setting up the Project
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Big Data at Netflix
  • Where and How Big Data Is Used
  • What is Big Data
  • Exploration
  • Discovery
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Setup a Bootstrap Theme
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Finishing the Game
  • Introducing JavaScript
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Getting Started with Express
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Angular Form Validation
  • Angular Basic Forms
  • Services in Angular
  • Angular Components
  • Setting Up an Angular Application
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Security: Solutions
  • Security: Concerns
  • Optimization Best Practices
  • Asset Optimization
  • Why Web Performance Matters
  • Getting Started with MongoDB
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • Improving the Application Code
  • Captioning Video
  • Media Basics
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Editing and Filtering Names
  • Adding and Removing Names
  • Custom Post Type Templates
  • Modular Media Queries
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • ES2015 Basics
  • Getting a Handle on the DOM
  • The Browser Environment
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Building a Layout with Flexbox
  • Adding 3D Effects with CSS
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • Hello, GitHub!
  • 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
  • Flexbox Properties
  • Understanding Flexbox
  • Getting Data from a Database
  • Data, Databases and SQL
  • Positioning Page Content
  • CSS Layout Project
  • Python For Beginners
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Sass Grid System
  • SMACSS and Sass
  • Sass and BEM
  • Getting Modular with Mixins and Functions
  • Working with Media Queries
  • CSS Animation Basics
  • Selections with D3
  • More Advanced PHP for WordPress
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • 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
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • Quiz Practice Project
  • Prototypal Inheritance
  • The Internet
  • What is npm?
  • Getting to Know Foundation for Apps
  • Two-way Data Binding
  • AngularJS MVC Frameworks
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Using a jQuery Carousel
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • Hosting with GitHub Pages
  • Building and Customizing the Blog
  • Getting Started with Jekyll
  • Creating an SVG
  • Introduction to SVG
  • Dependency Management
  • PHP Basics for WordPress
  • Introduction to PHP for WordPress
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • WWW
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • Understanding CSS Transitions and Transforms
  • Understanding Flexbox and Multi-Column Layout
  • 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
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Introduction to Node.js
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Final Project: Create a Typographic Site
  • Laying Out Type for the Web
  • Basic Web Typography
  • Simple Mobile Interface
  • Exporting Designs
  • Sketch Features
  • Introducing Sketch
  • How to Choose and Use Webfonts
  • Introduction to Typography
  • Computer Languages
  • Computer Basics
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • The WordPress Codex
  • JavaScript Variables
  • Introducing JavaScript
  • Building Out WordPress Navigation
  • Building Page Templates in WordPress
  • The WordPress Loop
  • WordPress Header and Footer Templates
  • Working with CSS and JS in WordPress Themes
  • Starting a WordPress Theme
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Compass Layout and Typography
  • Custom Media Players
  • Captioning Video
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • AJAX and APIs
  • Media Basics
  • jQuery and AJAX
  • Programming AJAX
  • Going Mobile
  • Designing Email with CSS
  • Displaying Our Weather Data
  • Data Modeling With Structures
  • Concurrency
  • Pulling Data From the Web
  • Deploying to a Device
  • Debugging Our App
  • Improving Our User Interface
  • Using a Data Model
  • Views and View Controllers
  • Getting Started with Xcode
  • Swift Optionals
  • Swift Parameters and Tuples
  • Swift Functions
  • Control Flow
  • Collections
  • Operators
  • Types
  • Variables and Constants
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Traversing and Manipulating the DOM with JavaScript
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Structuring Tables
  • Table Basics
  • Welcome to the Treehouse Club
  • Simple PHP Application: Wrapping Up The Project
  • Working with PHP Functions
  • Integrating With Paypal
  • Listing Inventory Items
  • PHP Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • Getting Started with WordPress
  • Pick a Number! Any Number!
  • Putting the "Fun" Back in "Functions"
  • Shopping List
  • Things That Count
  • Ins & Outs
  • Say Hello to Python
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Why Start a Business?
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • AJAX Concepts
  • Chrome DevTools Basics
  • Better SEO Through Tools
  • Better SEO Through Code
  • What is User Experience (UX)?
  • Better SEO Through Content
  • Introduction to SEO
  • 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
  • Local WordPress Development
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • Grid Layout
  • Flexbox Layout
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • 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
  • Ruby Testing
  • Standard Library
  • Ruby Core
  • Ruby Modules
  • Ruby Procs & Lambdas
  • Ruby Blocks
  • Ruby Loops
  • Ruby Methods
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Numbers
  • Ruby Strings
  • Objects, Classes, and Variables
  • What's New in Foundation 5
  • Build a Website With Foundation
  • Prototyping With Foundation
  • Build a Website With Bootstrap
  • Prototyping With Bootstrap
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Getting Started with Sass
  • ADS Writing and Preparation
  • Introduction to UI Design
  • Functional Programming in C
  • Fundamentals of C
  • Video Marketing
  • Email Marketing
  • Search Engine Optimization
  • Usability Testing
  • Improving Usability
  • Mobile Usability
  • Website Usability
  • What is Usability?
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Introduction to Design
  • Introduction to Front-End Frameworks
  • Installing a Ruby Development Environment
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • Ruby on Rails Authentication
  • Rails Frontend Development
  • Important Skills For Professional Success
  • Usability Basics
  • Social Media
  • Customizing Google Maps
  • Google Maps Integration
  • Creating Home Page Assets
  • Applying Effects
  • How to Draw in Illustrator
  •  Adding Color and Type
  • Web Apps
  • Websites
  • Coding HTML Email
  • HTML Email Basics
  • Adding a Contact Form
  • Creating the Menu and Footer
  • Getting Started with PHP
  • DNS Basics
  • jQuery Plugins
  • Form Validation and Manipulation
  • The Logo Sprint
  • Logo Design 101
  • JavaScript Objects
  • Introduction
  • JavaScript Functions
  • JavaScript Arrays
  • Creating an Icon
  • Introduction to Illustrator
  • JavaScript Numbers
  • JavaScript Strings
  • Introduction Variables
  • Learning the Language
  • Getting Started with iPhone
  • Introduction to jQuery
  • Advanced Techniques
  • Responsive Design
  • Workflow Basics
  • Graphic Basics
  • Slices & Save for Web
  • Vector Shapes
  • Type Tools
  • Masks Basics
  • Layer Basics
  • Workspace Basics
  • Color Theory
  • Principles
  • Elements
  • Website Basics
  • Ruby Basics
  • Getting Started With Rails
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • 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
  • Adaptive Design
  • Fluid Foundation
  • Introduction to Responsive Web Design
  • Advanced Selectors
  • Selectors
  • Networking
  • Personal Branding
  • Setting Your Course
  • Careers in the Tech Industry
  • Self-Assessment
  • Getting Started with CSS
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Launching the Website
  • Styling Content
  • Creating a Website Structure
  • Text Editors and HTML
  • Website Basics
  • Newbie