Thomas Dimnet
seal-mask

Thomas Dimnet

Techdegree Graduate

Paris, Paris, France

Software engineer / Ex-CTO / Teacher at OpenClassrooms / Lifelong learner, curious, zebra.

43,597

Total Points

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

Skills & Experience

  • Spoken Languages

    • French
    • English

417 Achievements

  • What is Asynchronous Programming?
  • Callbacks and the DOM
  • Programming AJAX
  • AJAX Concepts
  • Build an Accessible Form
  • Connecting to a Database with SQLAlchemy
  • Exterminator
  • Creating a Basic Website with Flask
  • Introduction To Accessibility
  • Working with SQLAlchemy
  • Common Commands
  • Introduction to SQLAlchemy
  • Directories and Files
  • The Command Shell
  • Timezones
  • Math Quiz App
  • Dates and Times
  • Creating a Memory Game
  • Emulating Built-ins
  • Welcome to OOP
  • Buggy Logs
  • Cleaner Code
  • Practice Functions
  • Python: Instant Objects
  • 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
  • What is Wireframing?
  • How to Critique Design
  • Principles of Design
  • Elements of Design
  • Using Slack Effectively
  • Introducing Slack for the Techdegree
  • 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
  • Python Slices
  • Python Lists
  • Build an Application
  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Using Lists
  • Meet Lists
  • All Together Now
  • Functions and Looping
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Types and Branching
  • Meet Python
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Security: Solutions
  • Security: Concerns
  • S3 Storage Service
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • The Merge Sort Algorithm
  • Building a Linked List
  • Exploring Arrays
  • Recursion and Space Complexity
  • Algorithms in Code
  • Time Complexity
  • Playing a Counting Game
  • Error Handling and Memory Management
  • Building Standard Library Functions
  • Closure Expressions
  • First Class Functions
  • Generics and Protocols
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • Generic Types
  • Generic Functions, Parameters and Constraints
  • 1st Techdegree Peer Review
  • Adding Sound Effects
  • Personalizing The Story
  • Refactoring Our Code
  • Creating the User Interface Programmatically
  • Creating a Story
  • Navigating Through An Adventure
  • Using the Delegate Pattern in iOS
  • The Delegate Pattern
  • Writing Great Swift
  • Access Control
  • Memory Management in Swift
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization
  • Properties
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Displaying Additional Views
  • Using the Vending Machine
  • Loading Data From a Resource
  • Modeling an Interface
  • Error Handling
  • Creating Flexible Objects Using Protocols
  • Protocol Basics
  • Objects and Optionals
  • Introduction to Optionals
  • 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
  • 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
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Array Manipulation
  • Array Iteration
  • Going Further with Grid Layout
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Getting Started with GraphQL
  • Dockerize a Web App
  • Building Forms With Bootstrap
  • Using Bootstrap Components
  • Managing Images and Containers
  • Building Images Using Dockerfiles
  • Responsive Layouts With the Bootstrap Grid
  • Fundamentals of Docker
  • Docker Use Cases
  • Express Middleware
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • Completing and Testing the API
  • Communicating with Mongo Through Mongoose
  • Modeling Data for the API
  • Getting to Know Bootstrap 4
  • Go Further With Mongo
  • Working With Collections
  • Building a REST Service
  • Understanding MongoDB
  • Getting Started with MongoDB
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Working with Text
  • The Internet
  • Ordering, Limiting and Paging Results
  • Building API Routes in Express
  • Getting the REST You Need
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Computer Languages
  • Discovery
  • Computer Basics
  • Why React Native
  • Access for Everybody
  • Improving Our Todo App
  • Services in Angular
  • Using Angular's Built-in Directives
  • Controllers and Scope
  • Next Steps
  • Behavior Driven Development with Mocha & Chai
  • Improving Our Tests
  • Getting Started with Angular
  • Introducing Unit Testing
  • Actions, Dispatch and Reducers. Oh my!
  • Going Further with Routing
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • Working By Yourself
  • Middleware
  • Deeper into Routing with Express
  • Hello, GitHub!
  • Using Templates with Express
  • Building Your Resume
  • Creating a Command Line Weather Application
  • Getting Started with Express
  • AWS and "The Cloud"
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • Selections with D3
  • 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
  • Updating and Uninstalling Packages with npm
  • Getting Started with Express
  • Installing Packages with npm
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Classes
  • What is npm?
  • Stateful Components
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Thinking in Components
  • First Steps in React
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • Angular Form Validation
  • Improving the Application Code
  • Angular Basic Forms
  • Editing and Filtering Names
  • Adding and Removing Names
  • Traversing the DOM
  • Services in Angular
  • Responding to User Interaction
  • Angular Components
  • Making Changes to the DOM
  • Setting Up an Angular Application
  • Getting a Handle on the DOM
  • The Browser Environment
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Welcome to Gulp.js
  • AJAX and APIs
  • Introduction to Node.js
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Web Apps
  • Websites
  • Introduction
  • Custom Media Players
  • Quiz Practice Project
  • Captioning Video
  • Media Basics
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Traversing and Manipulating the DOM with JavaScript
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Finding Your First Project
  • Getting Started with CSS Transitions
  • Creating an SVG
  • Introduction to SVG
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Starting a Freelance Career
  • Understanding Flexbox
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Getting Started with Sass
  • Debugging, Best Practices, and Production
  • Refactoring with Sass
  • Installing Sass and Setting up the Project
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • Creating a Simple Drawing Application
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • 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
  • WordPress Plugins
  • WordPress Themes
  • How to Install WordPress on Your Computer
  • Advanced Selectors
  • Getting Started with WordPress
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Structuring Tables
  • Table Basics
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Error Handling
  • Creating Distributable OOP Packages
  • Autoloading and Composer
  • Databases and International Concerns
  • Starting Right with PHP Best Practices
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Getting Started With Git
  • Why Version Control Matters
  • Test Doubles
  • Acceptance Tests
  • Organizing your Tests
  • Creating Your Tests
  • Tools for Testers
  • How To Test Our Code
  • 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
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • 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
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Database Security
  • Queries & Results
  • Getting Started with PDO
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • Joining Relational Data Between Tables in SQL
  • Manipulating Schema with SQL
  • Hosting with GitHub Pages
  • Creating Tables and Manipulating Data with SQL
  • Reading Data from Databases with SQL
  • Building and Customizing the Blog
  • Getting Started with Jekyll
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Contact Forms & Mailers
  • Slim and Templates
  • Dependency Management
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • PHP Email Form Errors
  • PHP Email Forms
  • PHP Inventory
  • 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
  • PHP Includes
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • PHP Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • Newbie