Travis Alstrand
seal-mask

Travis Alstrand

Treehouse Project Reviewer

CA

I love learning allllll the things!

55,031

Total Points

Points are earned whenever you take an important action on Treehouse.
Learn more about when and how points are earned.

371 Achievements

  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Security: Solutions
  • Security: Concerns
  • Persisting Data with Hibernate
  • Getting Started with Hibernate
  • Data Persistence & ORMs
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Working with Text
  • Ordering, Limiting and Paging Results
  • Writing Your Own Java Annotation
  • Using Java's Built-In Annotations
  • Bells and Whistles
  • Diving into Web Development
  • What to Test
  • How To Test
  • Why Test
  • Advanced Tooling
  • IDE Exploration
  • How it Works
  • What is Agile?
  • Java Maps
  • Java Lists
  • Generics in Java
  • Interfaces in Java
  • Java Inheritance
  • Practical Applications and Ethical Considerations
  • Introduction to NLP
  • Gotchas and Wins
  • Iteration
  • Creation
  • Harnessing the Power of Objects
  • Meet Objects
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Introduction to AI Chatbots
  • CSS Fundamentals
  • HTML Fundamentals
  • Getting Familiar with HTML and CSS
  • The Time Tracker
  • The Birthday App
  • Date and Time Basics
  • Introduction
  • Building a Platform Game with Phaser
  • Building a Breakout Game with Phaser
  • Implementing UX Content
  • Creating UX Content
  • UX Content Attributes
  • UX Content Basics
  • Introduction to Computer Vision
  • Creating Web Designs with Generative AI
  • Project Planning with Generative AI
  • Hierarchy and Layout
  • Writing Copy
  • Going Further with Type
  • Laying Out Type
  • Web Typography
  • How to Choose and Use Fonts
  • Introduction to Typography
  • How to Make Wireframes in Adobe XD
  • How to Make Wireframes in Balsamiq
  • How to Make Wireframes on Paper
  • What is Wireframing?
  • Layout Patterns
  • Understanding State
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • Generative AI
  • Data Cleaning
  • Understanding Cleaning Data
  • Python Regular Expressions
  • Review Your Checklist with an Advisor
  • Build Your Professional Portfolio
  • Use LinkedIn to Grow Your Network
  • Film Your Pitch Video
  • Give Your Resume a Makeover
  • Seaborn Data Visualization Challenges
  • Plotting Functions
  • Introduction to Seaborn
  • Practicing Data Visualization
  • Line and Area Charts, Scatter Plots, and Maps
  • Bar Charts, Histograms, and Pie Charts
  • Data Visualization Fundamentals
  • Data Eruption
  • Chart Toppers
  • Getting Started with Data Visualization
  • Welcome to Basic Statistics for Data Analysis
  • 50th Techdegree Peer Review
  • Exploring pandas
  • Meet pandas
  • Array Programming
  • Array Organization
  • Meet NumPy
  • React Router and Authentication
  • Implementing Basic Authentication
  • Introducing the Authentication Project
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Build a Spreadsheet
  • Spreadsheet Best Practices
  • Spreadsheet Functions & Formulas
  • Getting Started With Spreadsheets
  • Introducing Spreadsheets
  • Welcome to Basic Math for Data Analysis
  • Tools of the Trade
  • Breaking Down Data Analysis
  • Mike the Frog
  • Treehouse Staff
  • Introducing Large Language Models
  • Encapsulation and Arrays
  • Inheritance
  • Methods
  • Object-Oriented Programming
  • If Statements
  • Numbers
  • Strings
  • Methods
  • C# Syntax
  • Navigation Patterns
  • 100 Days of Code
  • Designing for iOS
  • Working With Human Interface Guidelines
  • Designing With Patterns
  • Finishing the Game
  • Introducing JavaScript
  • How to Critique Design
  • Principles of Design
  • Elements of 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
  • Connecting to a Database with SQLAlchemy
  • Creating a Basic Website with Flask
  • Working with SQLAlchemy
  • Introduction to SQLAlchemy
  • React Component Patterns
  • Stateful Components and the Effect Hook
  • Managing State
  • Data Flow
  • Build Modular Interfaces with Components
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • Functions in TypeScript
  • Manipulating Types
  • Working with (More) Types
  • Getting Started with TypeScript
  • Timezones
  • Math Quiz App
  • Dates and Times
  • Creating a Memory Game
  • Emulating Built-ins
  • Welcome to OOP
  • Technical Interview Prep: Basic Python
  • Buggy Logs
  • Cleaner Code
  • 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
  • Build an Application
  • Using Lists
  • Meet Lists
  • Practice Functions
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • React Router and Authentication
  • Implementing Basic Authentication
  • Introducing the Authentication Project
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • Working By Yourself
  • Hello, GitHub!
  • Validating Data
  • The Importance of Data Validation
  • Retrieve Related Data in Sequelize Queries
  • Create Related Data Using Sequelize Models
  • Data Relationships in Sequelize
  • Understand Data Relationships
  • Refactoring and Modularizing a REST API
  • Create, Read, Update, Delete
  • Managing Data and Asynchronous Code
  • Getting to Know REST APIs
  • Getting the REST You Need 2
  • Performing CRUD Operations
  • Defining Models
  • Getting Started with Sequelize
  • Asynchronous Code in Express
  • 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
  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • 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
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Getting Started with Express
  • Managing Packages with NPM
  • Hello Node.js
  • Creating a Command Line Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • Regular Expressions
  • The Role of Selectors in JavaScript
  • Pseudo-classes and Combinators
  • Selector Basics
  • Building Forms With Bootstrap
  • 25th Techdegree Peer Review
  • Using Bootstrap Components
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Practice forEach
  • Combining Array Methods
  • Array Manipulation
  • Array Iteration
  • Exploring Async/Await
  • Understanding Promises
  • Asynchronous JavaScript with Callbacks
  • What is Asynchronous Programming?
  • Programming AJAX
  • AJAX Concepts
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • 10th Techdegree Peer Review
  • Introducing 'Four in a Row'
  • Checking Out and Returning a Book
  • Starting with Some Methods
  • The Rough Plan
  • Practicing Getters and Setters
  • Practicing Classes
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Practicing Object Basics
  • Introduction to Object-Oriented JavaScript
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Creating an SVG
  • Introduction to SVG
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • 5th Techdegree Peer Review
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Loop Through Objects
  • Object Basics
  • Multidimensional Arrays
  • Loop Through Arrays
  • 5 Star Techdegree Reviewer
  • Store Multiple Values in an Array
  • Working with 'for' Loops
  • Simplify Repetitive Tasks with Loops
  • Arrow Functions
  • Pass Information Into Functions
  • Create Reusable Code with Functions
  • The Math Object
  • Working with Numbers
  • Making Decisions in Your Code with Conditional Statements
  • Working With Strings
  • Storing and Tracking Information with Variables
  • Hello, JavaScript!
  • Going Further with Grid Layout
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • 1st Techdegree Peer Review
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Adding 3D Effects with CSS
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • GitHub and Other Remote Repositories
  • Managing Committed Files
  • First Commits
  • Common Commands
  • Directories and Files
  • The Command Shell
  • Build an Accessible Form
  • Introduction To Accessibility
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Structuring Tables
  • Table Basics
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Mobile-First CSS Layout
  • Finishing Touches
  • Styling Images
  • Styling Boxes
  • Styling Text
  • CSS Media Queries
  • CSS Layout Techniques
  • Box Model Concepts
  • The CSS Box Model
  • Fundamental Concepts
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • 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
  • Newbie