Bruno Santos

Bruno Santos

Member Since June 12, 2013

29,859

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

    HSBC

364 Achievements

  • Going Further with Routing
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • Getting Started with Hibernate
  • Data Persistence & ORMs
  • Using the MVC Architecture with Spring
  • Modeling, Storing, and Presenting Data with Spring
  • Creating Spring Controllers and Thymeleaf Views
  • Spring Components and Configuring Our App
  • Setting Up Your Local Environment for Spring Development
  • Using Java's Built-In Annotations
  • Bells and Whistles
  • Diving into Web Development
  • What to Test
  • How To Test
  • Why Test
  • Java Maps
  • Java Lists
  • Generics in Java
  • Interfaces in Java
  • Java Inheritance
  • Gotchas and Wins
  • Iteration
  • Creation
  • Delivering the MVP
  • Creating the MVP
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Harnessing the Power of Objects
  • Meet Objects
  • The Data Analysis Process
  • Getting to Know Your Data
  • Introducing Data Analysis
  • Presentation Skills
  • Important Skills For Professional Success
  • React Component Patterns
  • Stateful Components and Lifecycle Methods
  • Managing State and Data Flow
  • Introducing jQuery (2017)
  • Create Function Using Arrow Syntax
  • Defining Variables With let and const
  • Build Modular Interfaces with Components
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • Stateful Components
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • Getting to Know Tuples
  • Packing and Unpacking
  • Getting Info In and Out of Functions
  • Introduction to Functions
  • Sequence Operations
  • Sequence Iterations
  • Iterating and Packing with Dictionaries
  • Introducing Dictionaries
  • Building a Flashcard App
  • Sweeping Vues: Loops, Methods, Directives
  • What a Beautiful Vue!
  • Introducing Vue
  • API Protection
  • Resourceful Blueprints
  • How to Win Friends
  • Broadcasting
  • Takin' Names
  • Making Strong Users
  • Getting the REST You Need 2
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • Buggy Logs
  • Cleaner Code
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Dice Roller
  • Getting Started with MongoDB
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Traversing the DOM
  • Responding to User Interaction
  • JavaScript Objects and Conditionals
  • Using Template Literals
  • Practice forEach
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Dungeon Game 2
  • Python Sets
  • Python Tuples
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Build an Application
  • Using Lists
  • Meet Lists
  • Practice Functions
  • All Together Now
  • Go Concurrency Overview
  • Go Custom Types Overview
  • Go Data Structures Overview
  • Go Flow Control Overview
  • Go Syntax Overview
  • Sinatra ERB Templates
  • Creating New Sinatra Apps
  • Gems In Depth
  • Ruby Gems
  • Ruby Standard Library: Part 2
  • Ruby Standard Library: Part 1
  • Ruby Core
  • Store Inventory Using Modules
  • Include and Extend
  • Ruby Core Modules
  • Ruby Module Basics
  • Input and Output
  • Search
  • Ruby Class Design
  • Blocks Practice
  • Working With Blocks
  • Ruby Blocks
  • 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
  • Dockerize a Web App
  • Managing Images and Containers
  • Building Images Using Dockerfiles
  • Fundamentals of Docker
  • Docker Use Cases
  • PHP Arrays
  • PHP Conditionals
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • Hello, GitHub!
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • 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
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Getting the REST You Need
  • 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
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Introducing Spreadsheets
  • Design a Better App
  • Graphical User Interfaces
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Creating a Story
  • Navigating Through an Adventure
  • Delegation in iOS
  • Introduction to Delegates
  • Memory Management in Swift 2
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization in Swift 2
  • Properties in Swift 2
  • Displaying Additional Views
  • Using the Vending Machine
  • Loading Data From a Resource
  • Modeling an Interface
  • Error Handling
  • Creating Flexible Objects Using Protocols
  • Protocol Basics
  • Introduction to Optionals
  • Structs as Data Models
  • Running Apps on a Device
  • Improving Our User Interface
  • Introduction to Enumerations
  • Running Apps on a Device
  • Improving Our User Interface
  • Getting Started with iOS Development
  • Structs As Data Models
  • View Controllers and Views
  • What is Agile?
  • View Controllers and Views
  • Getting Started with iOS Development
  • Differentiating Between Objects
  • Class Inheritance
  • Classes
  • Complex Data Structures
  • Function Parameters
  • Functions in Swift 2.0
  • Control Flow with Conditional Statements
  • Control Flow With Loops
  • Swift Dictionaries
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • 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
  • Introduction to Illustrator
  • 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
  • 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
  • Local WordPress Development
  • WordPress Admin Settings
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  • WordPress User Roles
  • WordPress Plugins
  • The Logo Sprint
  • Logo Design 101
  • WordPress Themes
  • The WordPress Customizer
  • Managing Media in WordPress
  • Managing Content in WordPress
  • How to Install WordPress on Your Computer
  • Getting Started with WordPress
  • Layer Basics
  • Workspace Basics
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Introduction to Design
  • Grid Layout
  • Flexbox Layout
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • 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
  • Structuring Tables
  • Table Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • 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
  • 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
  • Text, Fonts, and Lists
  • Values and Units
  • Advanced Selectors
  • Selectors
  • Getting Started with CSS
  • Forms
  • Tables
  • Objects
  • Links
  • Lists
  • Text
  • Introduction
  • Launching the Website
  • Pointers and Memory
  • Functional Programming in C
  • Fundamentals of C
  • Styling Content
  • Creating a Website Structure
  • Text Editors and HTML
  • Website Basics
  • Newbie