Christopher Shaw

Christopher Shaw

Techdegree Graduate

Harare, Zimbabwe

Skills & Experience

  • Company

    Strachans Photo

  • Job Title

    Director

  • Spoken Languages

    • English
  • Looking for work

    Yes

613 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
  • Practical Jenkins
  • Pipelines
  • How Jenkins Works
  • Exploring Best Practices
  • Test Drive
  • Meet Selenium
  • Using the Discovery Service
  • Using the Conversation Service
  • Introducing the Watson APIs
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Getting Started with Express
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Python File Systems Project Starter
  • Python File Systems Manipulation
  • Python File Systems Navigation
  • Creating a Long Term Business
  • Protecting Yourself With Contracts
  • Establishing a Proper Workflow
  • Pricing and Project Proposals
  • Finding Your First Project
  • Starting a Freelance Career
  • Reusable GraphQL
  • Making Changes with Mutations
  • Fetching Data with Queries
  • Getting Started with GraphQL
  • Additional Scraping Tasks
  • A World Full of Spiders
  • Introducing Data Scraping
  • Bokeh Visualizations
  • Bokeh Data
  • Writing a Classifier
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • The Data Analysis Process
  • Getting to Know Your Data
  • Introducing Data Analysis
  • Business Plan for Freelance Business
  • Business Plan Basics
  • Regular Expressions
  • Soft Skills - Psychology
  • Writing Online
  • Productivity
  • Presentation Skills
  • Important Skills For Professional Success
  • Dockerize a Web App
  • Managing Images and Containers
  • Building Images Using Dockerfiles
  • Fundamentals of Docker
  • Docker Use Cases
  • Selecting Relevant Data
  • Handling Bad Data
  • “Clean” or “Dirty” Data
  • Exploring pandas
  • Meet pandas
  • Data Eruption
  • Chart Toppers
  • Getting Started with Data Visualization
  • Array Programming
  • Array Organization
  • Meet NumPy
  • Bringing It All Together
  • The Cash Flow Statement
  • The Balance Sheet
  • The Profit & Loss Statement
  • Introducing Financial Statements
  • Iterating and Packing with Dictionaries
  • Introducing Dictionaries
  • Sequence Operations
  • Sequence Iterations
  • Packing and Unpacking
  • Getting Info In and Out of Functions
  • Introduction to Functions
  • Getting to Know Tuples
  • Meet Lists
  • Using Lists
  • Build an Application
  • Meet Python
  • Types and Branching
  • Functions and Looping
  • All Together Now
  • Parsing Specific Formats
  • Basic File Handling
  • Updating and Deleting Records
  • Reading and Writing Reports
  • Creating Records
  • Project Setup
  • Browser Persistent Data with PHP
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • What's New in Foundation 5
  • Build a Website With Foundation
  • Prototyping With Foundation
  • Build a Website With Bootstrap
  • Prototyping With Bootstrap
  • 10th Techdegree Peer Review
  • Introduction to Front-End Frameworks
  • Professional Development
  • Applying & Interviewing
  • The Job Search
  • Networking
  • Personal Branding
  • Setting Your Course
  • Careers in the Tech Industry
  • Self-Assessment
  • 5th Techdegree Peer Review
  • 5 Star Techdegree Reviewer
  • Dice Roller
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • Users and Authorization
  • Django Authentication
  • Customizing Class-based Views
  • Classy Views
  • 1st Techdegree Peer Review
  • Dungeon Game 2
  • Python Sets
  • Python Tuples
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Next Steps
  • Improving Our Tests
  • Behavior Driven Development with Mocha & Chai
  • Introducing Unit Testing
  • Completing and Testing the API
  • Communicating with Mongo Through Mongoose
  • Modeling Data for the API
  • Building API Routes in Express
  • Building a REST Service
  • Express Middleware
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • 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
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • 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
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Database Security
  • Queries & Results
  • Getting Started with PDO
  • MASH JavaScript
  • MASH CSS
  • MASH HTML
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Welcome to the Treehouse Club
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • 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
  • 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
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • 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
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • 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
  • Test Doubles
  • Acceptance Tests
  • Organizing your Tests
  • Creating Your Tests
  • Tools for Testers
  • How To Test Our Code
  • Contact Forms & Mailers
  • Slim and Templates
  • Dependency Management
  • Building a Collection
  • Building the Recipe
  • Understanding Classes
  • Why Object-Oriented Programming?
  • PHPDB Stage 5: Search
  • PHPDB Stage 4: Pagination with LIMITs
  • PHPDB Stage 3: Using Relational Data
  • PHPDB Stage 2: Querying the Database with PHP
  • PHPDB Stage 1: Databases and PHP
  • PHP Email Form Errors
  • PHP Email Forms
  • PHP Inventory
  • PHP Includes
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • PHP Loops
  • PHP Arrays
  • PHP Conditionals
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • Installing Sass and Setting up the Project
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • The Logo Sprint
  • Logo Design 101
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Creating an SVG
  • Introduction to SVG
  • Adding 3D Effects with CSS
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • Save for the Web
  • Adding Images and a Mockup
  • Logo Design
  • Creating a Wireframe
  • Introducing Adobe Illustrator
  • Workflow Basics
  • Slices & Save for Web
  • Vector Shapes
  • Type Tools
  • Masks Basics
  • Layer Basics
  • Workspace Basics
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Introduction to Design
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Structuring Tables
  • Table Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • 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
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • Video Marketing
  • Email Marketing
  • Search Engine Optimization
  • Usability Testing
  • Usability Basics
  • Social Media
  • Next Steps
  • Financing Our Company
  • Selling Your Product
  • Marketing Your Product
  • Product Market Fit
  • Discovery
  • 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
  • Ordering, Limiting and Paging Results
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Getting Started with MongoDB
  • 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
  • DNS Basics
  • Graphic Basics
  • Website Basics
  • What is the MailChimp API
  • The Internet
  • WWW
  • Computer Languages
  • Computer Basics
  • Running an Ecommerce Site Long Term
  • Extending WooCommerce
  • Managing Orders in WooCommerce
  • Managing Products in WooCommerce
  • Setting Up WooCommerce
  • Introduction to Ecommerce with WordPress
  • Customizing BuddyPress
  • Social Interactions in BuddyPress
  • Manage BuddyPress Member Profiles
  • Getting Started with BuddyPress
  • The Settings API in Different Places
  • Taking WordPress Settings Further
  • Getting Started with Theme Options Settings
  • WordPress Settings API Overview
  • The Walker Class for WordPress
  • Custom Menu Fields in WordPress
  • An Overview of Menus in WordPress
  • Customizing the User Experience in WordPress
  • Default User Roles in WordPress
  • An Overview of User Roles and Fields
  • WordPress Admin Settings
  • Moving from WordPress.com to Self-Hosted WordPress.org
  • The WordPress Codex
  • The Production Server
  • The Staging Server
  • The Local Development Environment
  • Launching and Supporting a WordPress Plugin
  • Building WordPress Template Tags, Widgets, and Shortcodes
  • Connecting WordPress Plugins with 3rd Party APIs
  • Building a WordPress Plugin Settings Page
  • How WordPress Plugins Work
  • Customizing the WooCommerce Cart and Checkout Process
  • Starting a Custom WooCommerce Theme
  • Cart, Checkout and Account Templates and Hooks
  • Global and Product Templates and Hooks
  • Getting Started with WooCommerce Theme Development
  • SEO Plugins for WordPress
  • Enhancing the SEO of a WordPress Theme
  • Content Comes First
  • Custom Dashboard Widgets
  • Controlling Admin Navigation
  • Customizing the Login Screen
  • Admin Color Schemes
  • Custom WordPress Customizer Settings
  • Native WordPress Customizer Options
  • Overview of the WordPress Customizer
  • Hooking Into WordPress Plugins
  • Action Functions in WordPress
  • Filter Functions in WordPress
  • An Overview of Hooks in WordPress
  • Add Bootstrap Components to WordPress Theme
  • Create Bootstrap Styled Theme Templates
  • Setup a Bootstrap Theme
  • A Template Hierarchy Review
  • Media Templates in WordPress
  • Custom Post Type Templates
  • Archive Templates in WordPress
  • Page and Post Templates in WordPress
  • Homepage Templates in WordPress
  • Core WordPress Theme Files
  • How WordPress Templates Work
  • Finishing Your WordPress Theme
  • Custom Homepage Templates in WordPress
  • Adding a Blog to a WordPress Theme
  • Custom Post Type Templates
  • 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
  • More Advanced PHP for WordPress
  • PHP Basics for WordPress
  • Introduction to PHP for WordPress
  • Local WordPress Development
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  • 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
  • Owning a WordPress Site Long Term
  • WordPress Community Management
  • Working with Media in WordPress
  • Adding and Editing Content
  • Getting a WordPress Site
  • 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
  • Security and Customization
  • Getting Started with WordPress
  • Make the REST Framework Work for You
  • RESTful Django
  • Creating Reports
  • Charts and Tables
  • Exporting
  • Cleaning Data
  • Describing Data
  • Getting Started with Data Science
  • API Protection
  • Resourceful Blueprints
  • Getting the REST You Need
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Detail View
  • List View
  • The Django Admin
  • Total Control
  • Basic ORM Usage
  • Same Old ORM
  • Inlines and Media
  • Django Model Forms
  • Django Models
  • Django Forms
  • Building Custom Filters
  • Template Tags and Filters
  • Building Custom Tags
  • Test Time!
  • Final Details
  • Django Templates
  • Model Administration
  • What a View
  • Say Hello to Django
  • Tacocat Challenge
  • How to Win Friends
  • Broadcasting
  • Takin' Names
  • Making Strong Users
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • The Lambda Lambada
  • Functional Workhorses
  • Functional Rules
  • Covering Your Bases
  • Be Assertive!
  • What Is Testing?
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Python Regular Expressions
  • Timezones
  • Math Quiz App
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • Hack-n-Slash
  • Python Inheritance
  • Python Objects
  • Dungeon Game
  • Tuples
  • Dictionaries
  • Slices
  • Lists Redux
  • Letter Game App
  • Number Game App
  • Shopping List App
  • Logic in Python
  • Python Data Types
  • Python For Beginners
  • Adding Push Notifications from Parse.com
  • Updating Other GridViews
  • Customizing a GridView for Friends
  • Customizing a ListView for the Inbox
  • 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
  • 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 Android Studio
  • Publishing on Google Play
  • Finishing the User Interface
  • The Model-View-Controller Pattern
  • Intents and Multiple Activities
  • User Input
  • Testing and Debugging
  • Improving Our Code
  • Coding the Fun Facts
  • Basic Android Programming
  • Creating the Initial Screen Layout
  • Getting Started with Genymotion
  • Getting Started with Android
  • Advanced Tooling
  • IDE Exploration
  • How it Works
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • 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