Charlie Thomas

Charlie Thomas

Shipston on Stour

40,856

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

    Monzo

  • Job Title

    Software Engineer

  • Spoken Languages

    • English

466 Achievements

  • Reusable GraphQL
  • Making Changes with Mutations
  • Fetching Data with Queries
  • Getting Started with GraphQL
  • Merge Sort and Linked Lists
  • The Merge Sort Algorithm
  • Building a Linked List
  • Exploring Arrays
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • Getting the REST You Need 2
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Recursion and Space Complexity
  • Algorithms in Code
  • Time Complexity
  • Playing a Counting Game
  • Dockerize a Web App
  • Managing Images and Containers
  • Building Images Using Dockerfiles
  • Fundamentals of Docker
  • Docker Use Cases
  • Security: Solutions
  • Go Concurrency Overview
  • Go Custom Types Overview
  • Go Data Structures Overview
  • Go Flow Control Overview
  • Go Syntax Overview
  • Deleting and Updating Data
  • Fetching Data Using Fetch Requests
  • Inserting and Saving Data Using a Context
  • Understanding the Core Data Stack
  • Displaying Additional Views
  • Using the Vending Machine
  • Loading Data From a Resource
  • Modeling an Interface
  • Running Apps on a Device
  • Improving Our User Interface
  • Structs As Data Models
  • View Controllers and Views
  • Getting Started with iOS Development
  • Error Handling
  • Creating Flexible Objects Using Protocols
  • Protocol Basics
  • Objects and Optionals
  • Introduction to Optionals
  • Introduction to Enumerations
  • Differentiating Between Objects
  • Class Inheritance
  • Classes in Swift
  • Complex Data Structures
  • Adding Power to Functions
  • Functions in Swift
  • Control Flow With Conditional Statements
  • Control Flow With Loops
  • Dictionaries in Swift
  • Introduction to Collections
  • Security: Concerns
  • Big Data at Netflix
  • Where and How Big Data Is Used
  • What is Big Data
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Creating Rails Apps
  • Component Lifecycle
  • Designing Dataflow
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • Covering Your Bases
  • Be Assertive!
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • What Is Testing?
  • Python Regular Expressions
  • Blocks Practice
  • Working With Blocks
  • Ruby Blocks
  • Structs as Data Models
  • View Controllers and Views
  • Django Models
  • Django Forms
  • Building Custom Filters
  • Building Custom Tags
  • Template Tags and Filters
  • Basic Selectors
  • Getting Started with iOS Development
  • Working By Yourself
  • Hello, GitHub!
  • Differentiating Between Objects
  • Class Inheritance
  • Classes
  • Complex Data Structures
  • Developing Express Apps Like a Boss
  • Getting Started with Express
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Data Types and Variables
  • Intro to Objective-C
  • Foundation Framework
  • Introduction to Objective-C
  • Managing Complexity
  • Interacting With Data From the Web
  • Simple Data Structures
  • Closures in iOS
  • Closures and Closure Expressions
  • Functions as First Class Citizens
  • Refactoring Our Code (Swift)
  • Building the Master and Detail Views (Swift)
  • Deploying to a Device
  • Debugging Our App
  • Using Angular's Built-in Directives
  • Controllers and Scope
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • Functional Workhorses
  • How it Works
  • Functional Rules
  • Getting Started with Angular
  • Efficiency!
  • Tacocat Challenge
  • Letter Game App
  • How to Win Friends
  • Prototypal Inheritance
  • Quiz Practice Project
  • Constructor Functions & Prototypes
  • Swift Value vs Reference Types
  • Finding the Data You Want
  • Introduction to Methods
  • AJAX and APIs
  • jQuery and AJAX
  • JavaScript Objects
  • JavaScript Arrays
  • Perfect
  • Perform
  • Number Game App
  • Console I/O
  • Prepare and Plan
  • Database Security
  • Queries & Results
  • Getting Started with PDO
  • Broadcasting
  • Programming AJAX
  • AJAX Concepts
  • Shopping List App
  • Logic in Python
  • Python Data Types
  • Python For Beginners
  • Getting Data from a Database
  • Data, Databases and SQL
  • Securing and Maintaining a MySQL Database
  • Contact Forms & Mailers
  • Slim and Templates
  • Dependency Management
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • Control Flow with Conditional Statements
  • Local WordPress Development
  • Control Flow With Loops
  • Swift Dictionaries
  • Swift Properties
  • Introducing Adobe Illustrator
  • Exploring the Java Collections Framework
  • Swift Operators
  • Building a Music Library and Playlists (Swift)
  • Organizing Data
  • Selecting Elements and Adding Events with JavaScript
  • Swift Types
  • An Introduction to Swift Programming
  • Introduction to Collections
  • Function Parameters
  • Functions in Swift 2.0
  • Installing Programs
  • Environment and Redirection
  • SQL Calculating, Aggregating and Other Functions
  • Joining Relational Data Between Tables in SQL
  • Getting There
  • Swift Inheritance
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Getting Started in Maya LT
  • Player Input and Cameras
  • The Unity Editor and Scene Setup
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Introduction to Video Games
  • Swift Classes and Objects
  • Swift Structs and their Methods
  • Swift Enums and their Methods
  • Using a Navigation Controller With Segues (Swift)
  • Swift Enums
  • Hooking up the Model to the View
  • Swift Optionals
  • Building the Weather UI
  • Working with JSON
  • Working With Multiple View Controllers (Swift)
  • Improving Our User Interface
  • Swift Parameters and Tuples
  • Swift Structs
  • Swift Functions
  • Control Flow
  • Collections
  • Concurrency and Error Handling
  • MASH JavaScript
  • MASH CSS
  • MASH HTML
  • Networking
  • Pointers and Memory
  • Using a Data Model
  • Views and View Controllers
  • Handling Routes in Node.js
  • The Internet
  • Gettin' CRUD-y With It
  • Our Diary App
  • Test Time!
  • Final Details
  • JavaScript Loops
  • Django Templates
  • Model Administration
  • What a View
  • Say Hello to Django
  • Operators
  • Types
  • Functional Programming in C
  • Exploring an API
  • PHP Objects and Classes
  • WWW
  • Meet Peewee
  • Meet Objects
  • Build a Simple Todo List Program
  • Cleaning Data
  • Variables and Constants
  • Character Builder
  • Describing Data
  • Getting Started with Data Science
  • Branches
  • Getting Started with CSS
  • Integrating Validation Errors
  • Creating a Simple Server in Node.js
  • Planning for Performance
  • Ruby Booleans
  • Takin' Names
  • Making Strong Users
  • Computer Languages
  • Computer Basics
  • Finishing the User Interface
  • The Model-View-Controller Pattern
  • Installing Wordpress
  • Getting Started with WordPress
  • Intents and Multiple Activities
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • Simple PHP Application: Wrapping Up The Project
  • Build a Bank Account Class
  • Ruby Variables and Methods
  • Ruby Objects and Classes
  • Getting Started With Git
  • Ruby Procs & Lambdas
  • Ruby Blocks
  • Ruby Loops
  • Ruby Methods
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Numbers
  • Ruby Strings
  • Build a Simple Contact List
  • Ruby Iteration
  • Ruby Loops
  • JavaScript Objects
  • JavaScript Functions
  • Buggy Logs
  • Cleaner Code
  • Choosing Options
  • Organizing Forms
  • Hack-n-Slash
  • JavaScript and the DOM
  • JavaScript Arrays
  • JavaScript Numbers
  • JavaScript Functions
  • JavaScript Conditional Statements
  • Form Basics
  • JavaScript Strings
  • Introduction Variables
  • Creating a Simple Drawing Application
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • JavaScript Numbers
  • Creating a Simple Lightbox
  • JavaScript Variables
  • Creating a Spoiler Revealer
  • Introduction to jQuery
  • Introducing JavaScript
  • Build a Grocery List Program
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Logical Operators
  • Ruby Control Structures
  • Ruby Operators
  • Python Inheritance
  • Python Objects
  • PHP Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • Dungeon Game
  • Tuples
  • Dictionaries
  • Slices
  • Building a Command Line Application
  • Introduction to Node.js
  • PHP Getting Started
  • Flask Templates
  • Welcome to Flask
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Welcome to the Treehouse Club
  • Structuring Tables
  • Table Basics
  • User Input
  • DNS Basics
  • Local Python
  • Publishing on Google Play
  • Perfecting the Prototype
  • Lists Redux
  • Using your New Tools
  • Getting Started with Java
  • Getting Started with Xcode
  • Testing and Debugging
  • Improving Our Code
  • Coding the Fun Facts
  • Basic Android Programming
  • Creating the Initial Screen Layout
  • Getting Started with Android
  • How Ruby Works
  • Starting the App
  • Working with PHP Functions
  • Self-Assessment
  • Pick a Number! Any Number!
  • Putting the "Fun" Back in "Functions"
  • Color Theory
  • Shopping List
  • Things That Count
  • Ins & Outs
  • Say Hello to Python
  • Introduction to Game Design
  • Fundamentals of C
  • Using Intents to Display and Share Posts
  • Adapting Data for Display in a List
  • Using Git for Android
  • Getting Started with Android Studio
  • Animate This (iOS7)
  • Getting Data from the Web
  • Exploring the Master-Detail Template
  • Getting Started with Genymotion
  • Rebuilding from Scratch
  • Starting a Freelance Career
  • Debugging HTML and CSS Problems
  • Why Version Control Matters
  • 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
  • Website Basics
  • ADS Writing and Preparation
  • Introduction to UI Design
  • Testing and Debugging
  • Animate This
  • Designing your App
  • Refactoring into a Model
  • Manipulating Schema with SQL
  • Installing a Ruby Development Environment
  • Sharing Your Creation
  • Interrogating the App
  • Shaking Things Up
  • Creating a Data Collection
  • Understanding Views and View Controllers
  • Getting Started (iOS7)
  • Introduction to Front-End Frameworks
  • Logo Design 101
  • Introduction to Design
  • Configuring WordPress
  • Getting Started with WordPress
  • Creating Tables and Manipulating Data with SQL
  • Video Marketing
  • Selectors
  • Integrating With Paypal
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • Pretty Little Things
  • Email Marketing
  • Principles
  • Elements
  • Listing Inventory Items
  • Ruby on Rails Authentication
  • Rails Frontend Development
  • Search Engine Optimization
  • Adding a Contact Form
  • Introduction to Illustrator
  • Intro to User Experience
  • Usability Testing
  • Reading Data from Databases with SQL
  • Usability Basics
  • Social Media
  • Graphic Basics
  • Web Apps
  • Objects, Classes, and Variables
  • Console Processes
  • Ruby Basics
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Learning the Language
  • Workspace Basics
  • Getting Started with Android
  • Websites
  • Making Money
  • Introduction
  • Creating the Menu and Footer
  • Introduction
  • Console Users and Permission
  • Marketing Strategy
  • Getting Started with CSS
  • Moving Around in the Console
  • Introduction to Accounting
  • Getting Started with PHP
  • Marketing Basics
  • Forming Your Company
  • Corporate Structure
  • Adaptive Design
  • Fluid Foundation
  • Introduction to Responsive Web Design
  • Why Start a Business?
  • Forms
  • Tables
  • Objects
  • Links
  • Getting Started With Rails
  • Lists
  • Text
  • Introduction
  • Launching the Website
  • Styling Content
  • Creating a Website Structure
  • Text Editors and HTML
  • Website Basics
  • Newbie