Evan Demaris

Evan Demaris

Portland, OR

I have a passion for learning and teaching, and enjoy cryptography, electrical engineering, and developing apps for Android, Unity, and the UWP. When I'm not studying or working, I love swimming, jogging, and playing outdoor casual sports.

Skills & Experience

  • Company

    Freelance

  • Job Title

    Software Developer

  • Spoken Languages

    • English, Spanish
  • Looking for work

    Yes

771 Achievements

  • UI Patterns
  • Persuasive Patterns
  • Designing with Patterns
  • Strings
  • Numbers
  • If Statements
  • Methods
  • C# Syntax
  • Prototyping with a Design System
  • Material Design Basics
  • Understanding Design Systems
  • Planning Your Users’ Journey
  • Strategy: Determining Goals for your Product
  • Understanding Our Users
  • Intro to User Experience (UX) Design
  • How to Make Wireframes in Adobe XD
  • How to Make Wireframes in Sketch
  • How to Make Wireframes in Balsamiq
  • How to Make Wireframes on Paper
  • What is Wireframing?
  • UX Content Attributes
  • Implementing UX Content
  • Creating UX Content
  • UX Content Basics
  • How to Critique Design
  • Putting It All Together
  • Embracing the Process
  • Curating the Work
  • Portfolio Goals
  • Demystifying the Portfolio
  • Introducing Data Scraping
  • A World Full of Spiders
  • Additional Scraping Tasks
  • Selecting Relevant Data
  • Handling Bad Data
  • “Clean” or “Dirty” Data
  • Python: Inheritance
  • Python: Instant Objects
  • Build an Application
  • Using Lists
  • Meet Lists
  • Principles of Design
  • Elements of Design
  • Regular Expressions
  • Merge Sort and Linked Lists
  • The Merge Sort Algorithm
  • Building a Linked List
  • Exploring Arrays
  • Searching Names
  • Sorting Algorithms
  • Recursion and Space Complexity
  • Algorithms in Code
  • Time Complexity
  • Playing a Counting Game
  • Common Commands
  • Directories and Files
  • Unit Testing
  • The Command Shell
  • Practice Functions
  • All Together Now
  • Functions and Looping
  • Improving Usability
  • Mobile Usability
  • Website Usability
  • What is Usability?
  • Getting Work Done
  • A Lifestyle Choice
  • Growing Your Business
  • Client Services
  • Sales and Pitching
  • Marketing and Promotion
  • Writing a Classifier
  • Updating and Deleting Records
  • More Advanced PHP for WordPress
  • PHP Basics for WordPress
  • Introduction to PHP for WordPress
  • Deploy a Rails App with Capistrano
  • Interfaces in Java
  • Vulnerabilities: Configuration, Components, and Logging
  • Try Out Capistrano
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Security: Solutions
  • Security: Concerns
  • Create a Banner Ad
  • Hello, Photoshop!
  • Digital Media Basics
  • Parsing Specific Formats
  • Basic File Handling
  • Adding the UI
  • Learning Anko
  • Is This Thing On?
  • Modelling Solitaire
  • Putting It All Together
  • Hello Kotlin!
  • Types and Branching
  • Meet Python
  • UI Testing with Espresso
  • Unit Testing - Now Featuring Robolectric!
  • Unit Testing
  • Local Notifications
  • Broadcast Receivers
  • Implicit Intents and Intent Filters
  • For All Intents and Purposes
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • Connecting Room to the UI
  • Working with Room
  • Data Persistence Basics
  • Test Drive
  • Exploring Best Practices
  • Meet Selenium
  • WebDriver Input Actions
  • WebDriver Waits
  • Use Selenium with Testing Frameworks
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • Hooking Up the Model to the View
  • Building the Weather UI
  • Working with JSON
  • Concurrency and Error Handling
  • Networking
  • Exploring an API
  • Working with jQuery Collections (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Introducing jQuery (2017)
  • Reading and Writing Reports
  • Environment Variables
  • Creating Records
  • Interactive Visualizations
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • Project Setup
  • 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
  • The 3D Views
  • Build and Share a Unity Game
  • Game Audio
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • Error Checking
  • Conditional Formatting
  • Pivot Tables
  • LOOKUP Functions
  • The Design Solution
  • Score, Enemies, and Game State
  • The Design Problem
  • Design Principles
  • What is Product Design?
  • Pickups
  • The Rest of the Story
  • Finishing the User Interface
  • The Model-View-Presenter Pattern
  • Intents and Multiple Activities
  • Player Input and Cameras
  • The Unity Editor and Scene Setup
  • Introduction to Video Games
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Creating and Modifying Database Tables
  • 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
  • What Is WordPress?
  • Tuning the User Interface
  • User Input in Android
  • Using the Discovery Service
  • Using the Conversation Service
  • Publishing on Google Play
  • Introducing the Watson APIs
  • Video Marketing
  • Interacting with Google+ APIs
  • Email Marketing
  • Search Engine Optimization
  • Usability Testing
  • Usability Basics
  • Social Media
  • The Data Analysis Process
  • Getting to Know Your Data
  • Introducing Data Analysis
  • Reusable GraphQL
  • Making Changes with Mutations
  • Fetching Data with Queries
  • Getting Started with GraphQL
  • Gotchas and Wins
  • Iteration
  • Creation
  • Team Collaboration in Figma
  • Prototyping Designs in Figma
  • Introducing Figma
  • Refining the App
  • Building the Application
  • Setting up with Create React App
  • Combining Array Methods
  • Array Manipulation
  • Array Iteration
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • Finishing the Game
  • Introducing JavaScript
  • Dockerize a Web App
  • Managing Images and Containers
  • Building Images Using Dockerfiles
  • Fundamentals of Docker
  • Docker Use Cases
  • Integrating 3rd Party APIs
  • Implementing Redux
  • Implementing React Native
  • Why React Native
  • Design Patterns
  • Rehearsal and Delivery
  • Creating and Refining
  • Preparing to Present
  • Page Layout
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • Installing WordPress Locally
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • Regular Expressions
  • Go Concurrency Overview
  • Go Custom Types Overview
  • Go Data Structures Overview
  • Go Flow Control Overview
  • Go Syntax Overview
  • Practicing Data Visualization in Excel
  • Chart Formatting and Layout
  • When To Use What Type of Chart
  • Introduction To Data Visualization
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • Going Further with HTML
  • Getting Started with Data Science
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • S3 Storage Service
  • AWS and "The Cloud"
  • Connecting to Play Services
  • Lists, Code, Links and Images
  • Understanding Markdown
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Build a Spreadsheet
  • Spreadsheet Best Practices
  • Spreadsheet Functions & Formulas
  • Getting Started With Spreadsheets
  • Interacting with Your API
  • Introducing Spreadsheets
  • Adding Play Services to Your App
  • Tablet Time
  • Ingredients and Directions
  • Managing Fragments
  • Introducing Fragments
  • Review Functional Programming Fundamentals
  • Optimization Best Practices
  • Asset Optimization
  • Reduction and Aggregation
  • Why Web Performance Matters
  • Meet Streams
  • Java's Functional Toolset
  • Styling and Scaling Data
  • Migrating a SQLite Database
  • CRUD Operations with SQLite
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Finishing the Prototype
  • Grid Layout and UI Components
  • Getting to Know Foundation for Apps
  • Dungeon Game 2
  • Python Sets
  • Python Tuples
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • File Uploads and Entity Updates in Spring + Hibernate
  • User Messages in Spring
  • Getting Started with CRUD in Spring + Hibernate
  • Data-Driven Application Design
  • Integrating Hibernate with Spring
  • Persisting Data with Hibernate
  • Getting Started with Hibernate
  • Data Persistence & ORMs
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Finishing Our CRUD Web App
  • Adding Form Validation
  • Improving Our Form
  • Creating a Basic Form
  • Introducing CRUD Applications
  • Data Binding with D3
  • Adding a List Page
  • Selections with D3
  • Modeling and Presenting Data
  • Views
  • Controllers
  • Project Setup
  • Using SQLite for Structured Data
  • Putting it all Together
  • Actions, Dispatch and Reducers. Oh my!
  • Sets and Dictionaries
  • Lists
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Arrays
  • Data Retreiver
  • Serialized!
  • Data Parser
  • Data Reader
  • Abstraction
  • System.Object
  • Polymorphism
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • DOM Traversal
  • Get Involved in Open Source
  • DOM Manipulation
  • Events
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • Working By Yourself
  • Final Project: Create a Typographic Site
  • Hello, jQuery!
  • Going Further with Routes
  • Navigating and Nesting Routes
  • Getting Started with React Router
  • Laying Out Type for the Web
  • Key-Value Saving with SharedPreferences
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Basic Web Typography
  • Customizing WordPress Themes
  • File Storage
  • Creating Home Page Assets
  • WordPress Themes
  • Installing Wordpress
  • 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
  • How to Choose and Use Webfonts
  • Applying Effects
  • Introduction to Typography
  • Query Builder
  • WordPress User Roles
  • Website Basics
  • The Lambda Lambada
  • Query Operators
  • Component Lifecycle
  • Number Game App
  • Functional!
  • Functional Workhorses
  • WordPress Plugins
  • WordPress Themes
  • Now You're Querying!
  • Workflow Basics
  • Slices & Save for Web
  • Designing Dataflow
  • The WordPress Customizer
  • Managing Media in WordPress
  • Vector Shapes
  • Managing Content in WordPress
  • Type Tools
  • Masks Basics
  • How to Install WordPress on Your Computer
  • Getting Started with WordPress
  • Logic in Python
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • Layer Basics
  • Save for the Web
  • Adding Images and a Mockup
  • Logo Design
  • Creating a Wireframe
  • Workspace Basics
  • Introducing Adobe Illustrator
  • Keyframe and Line Drawing Animations
  • Next Steps
  • Improving Our Tests
  • Functional Rules
  • Behavior Driven Development with Mocha & Chai
  • Introducing Unit Testing
  • Transitions and Transforms
  • More TODO with the MEAN Stack
  • Creating and Editing Data in a MEAN App
  • Setting Up MongoDB
  • Advanced Sass Concepts
  • Improving your Gulp Workflow
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • Installing Sass and Setting up the Project
  • Compile Sass with Gulp
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Loops and Final Touches
  • Going MEAN with Angular
  • Going MEAN with Express
  • Introduction to MEAN
  • Gulp your JavaScript workflow!
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Welcome to Gulp.js
  • Handling Routes in Node.js
  • Go Further With Mongo
  • Creating a Simple Server in Node.js
  • Working With Collections
  • Understanding MongoDB
  • Getting Started with MongoDB
  • Finding the Data You Want
  • Using a jQuery Carousel
  • Getting Data from a Database
  • Data, Databases and SQL
  • Securing and Maintaining a MySQL Database
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • SQL Calculating, Aggregating and Other Functions
  • Doing More with Express
  • Serving Static Files in Express
  • Using Templates with Express
  • How to Draw in Illustrator
  • The Request and Response Objects in Express
  • Encapsulation with Properties
  • Developing Express Apps Like a Boss
  • Getting Started with Express
  • Hello, GitHub!
  • Updating and Uninstalling Packages with npm
  • Getting Started with Sass
  • Installing Packages with npm
  • What is npm?
  • Encapsulation and Arrays
  • Building a Command Line Application
  • Introduction to Node.js
  • Inheritance
  • Introduction to Data Persistence
  • Methods
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Chrome DevTools Basics
  • Web Apps
  • Websites
  • Improving Our Todo App
  • Object-Oriented Programming
  • Perfect
  • Introduction
  • Services in Angular
  • Adding 3D Effects with CSS
  • Joining Relational Data Between Tables in SQL
  • Using Angular's Built-in Directives
  • Manipulating Schema with SQL
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Controllers and Scope
  • Introduction to Methods
  • Getting Started with CSS Transforms
  • AJAX and APIs
  • jQuery and AJAX
  • Creating Tables and Manipulating Data with SQL
  • Getting Started with Angular
  • Programming AJAX
  • AJAX Concepts
  • Custom Media Players
  • Perform
  • Transition Timing Functions and Delays
  • Captioning Video
  • Media Basics
  • Console I/O
  • Traversing and Manipulating the DOM with JavaScript
  • Getting Started with CSS Transitions
  • Reading Data from Databases with SQL
  • Selecting Elements and Adding Events with JavaScript
  • PHP Internal Functions
  • PHP Returns & Closures
  • JavaScript and the DOM
  • Structuring Tables
  • Table Basics
  • Python Data Types
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Prepare and Plan
  • Responsive Layouts with the Bootstrap Grid
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Getting to Know Bootstrap 4
  • Creating a Simple Drawing Application
  • Python For Beginners
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • Creating a Simple Lightbox
  • Start menu and App Icon
  • PHP Functions Basics
  • Creating a Spoiler Revealer
  • Sound Design
  • Animating and Saving Sprites
  • Introduction to jQuery
  • Advanced Selectors
  • Designing Characters and a Scene
  • PHP Loops
  • PHP Conditionals
  • Going Further with Attribute Selectors and Pseudo-Classes
  • PHP Datatypes
  • PHP Data & Structure
  • Selectors - Beyond the Basics
  • Introduction to Game Design
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • Choosing Options
  • Introduction to Front-End Frameworks
  • Organizing Forms
  • Form Basics
  • Building a Layout with Flexbox
  • PHP Getting Started
  • Flexbox Properties
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Positioning Page Content
  • Understanding Flexbox
  • Going Mobile
  • Designing Email with CSS
  • Coding HTML Email
  • HTML Email Basics
  • CSS Layout Project
  • Finalizing the Project
  •  Adding Color and Type
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • The Logo Sprint
  • Logo Design 101
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Color Theory
  • Getting Started with CSS Layout
  • JavaScript Functions
  • Principles
  • Elements
  • JavaScript Numbers
  • JavaScript Variables
  • Design Foundations Final
  • Becoming a Problem Solver
  • Fundamental Concepts
  • Designing with the Latest Features
  • Understanding Aesthetics
  • Introduction to Design
  • Basic Layout
  • Moving Forward with UX
  • Tools UXers Use
  • How UXers Think
  • Introducing JavaScript
  • Bells and Whistles
  • What Do User Experience Designers Do?
  • What is User Experience (UX)?
  • Diving into Web Development
  • Better SEO Through Tools
  • Activity Transitions: Advanced Topics
  • Shared Element Transitions
  • Better SEO Through Code
  • Creating an SVG
  • Introduction to SVG
  • Creating an Icon
  • Transitions Framework
  • Better SEO Through Content
  • Introduction to SEO
  • Animation Basics
  • The Box Model
  • Understanding Values and Units
  • Introduction to Illustrator
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • Basic Selectors
  • Adding a New Web Page
  • Make It Beautiful with CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Soft Skills - Psychology
  • Writing Online
  • Getting Familiar with HTML and CSS
  • Writing Your Own Java Annotation
  • Productivity
  • Using Java's Built-In Annotations
  • Getting the REST You Need
  • GET and POST Requests in a Browser
  • Adding Pages to a Website
  • Introduction to HTTP
  • Workflows
  • Presentation Skills
  • Styling Web Pages and Navigation
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • Installing Programs
  • Environment and Redirection
  • Customizing Colors and Fonts
  • Console Processes
  • But Wait There's More!
  • Console Users and Permission
  • Moving Around in the Console
  • Bound Services
  • Introducing Services
  • Scrum Artifacts
  • Scrum Events
  • Getting Started with CSS
  • Introducing Scrum
  • CSS: Cascading Style Sheets
  • Threads in Android
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • Letter Game App
  • Forms
  • What to Test
  • What is Agile?
  • Tables
  • How To Test
  • Objects
  • Links
  • Why Test
  • Lists
  • Text
  • Important Skills For Professional Success
  • Using the MVC Architecture with Spring
  • Introduction
  • Modeling, Storing, and Presenting Data with Spring
  • DNS Basics
  • Graphic Basics
  • JavaScript Conditional Statements
  • Creating Spring Controllers and Thymeleaf Views
  • Spring Components and Configuring Our App
  • Setting Up Your Local Environment for Spring Development
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • Build and Share a Unity Game
  • Game Audio
  • Score, Enemies, and Game State
  • Pickups
  • Player Input and Cameras
  • The Unity Editor and Scene Setup
  • MASH JavaScript
  • MASH CSS
  • MASH HTML
  • Treehouse Club - JavaScript
  • Event Planning
  • Build a Pomodoro App
  • Introduction to Video Games
  • Design a Better App
  • Graphical User Interfaces
  • Advanced Tooling
  • Treehouse Club - CSS
  • IDE Exploration
  • How it Works
  • Efficiency!
  • Shopping List App
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • Delivering the MVP
  • Creating the MVP
  • Swift Optionals
  • Harnessing the Power of Objects
  • Welcome to the Treehouse Club
  • WWW
  • The Internet
  • Computer Languages
  • Meet Objects
  • Computer Basics
  • The Project
  • Introducing SharedPreferences
  • The Activity Lifecycle
  • 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
  • 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
  • Perfecting the Prototype
  • Basic Android Programming
  • Using your New Tools
  • Getting Started with Java
  • Creating the Initial Screen Layout
  • Getting Started with Android
  • 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
  • Local Python
  • Hack-n-Slash
  • Python Inheritance
  • Python Objects
  • Dungeon Game
  • Tuples
  • Dictionaries
  • Exterminator
  • 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
  • Newbie