Hi, I'm Christoph Michel 👋
I'm a , , and .
I mostly do and help small to mid-sized teams from all over the world 🌎 on both short and long-term projects on an independent contractor basis.
I strive for efficiency ⏱️ and therefore track many aspects of my life.
Latest Articles
Progress Report - February 2021
I post a progress report showing what I did and how my products performed each month. Last month’s report can be seen here. What did I do Hours worked on side-projects in February I worked 104 productive on side projects hours last month. To make these progress reports a bit…
Replaying Ethereum Hacks - Furucombo
Furucombo has been exploited yesterday for ~15M USD. Attacker Address Exploit Setup Transaction Let’s dive into the attack, understand it by reading the code of the relevant contracts, and then replay the hack using a custom contract. Background Furucombo lets users build custom…
Replaying Ethereum Hacks - Introduction
This is the start of a new series called “Replaying Ethereum Hacks” where we take a closer look at past Ethereum exploits and end up re-implementing the attacks. One might ask themselves what the benefits of doing this might be - especially as the hacks are already documented…
Paradigm CTF 2021 Solutions
Paradigm CTF 2021 was a 48-hour Ethereum focused security competition held over the last weekend. It consists of 17 challenges, most of them were quite hard, definitely harder than Ethernaut or Capture The Ether Solutions. Nevertheless, this made them even more fun. 😃 Thanks to…
Progress Report - January 2021
I post a progress report showing what I did and how my products performed each month. Last month’s report can be seen here. What did I do Hours worked on side-projects in January I worked 103 productive on side projects hours last month. To make these progress reports a bit more…
DeFi Sandwich Attacks
Capture The Ether Solutions
Ethernaut Solutions
Damn Vulnerable DeFi Solutions
Goals 2021
Progress Report - December 2020
Pricing LP tokens | Warp Finance hack
Progress Report - November 2020
Progress Report - October 2020
How I gamed EOS Defi projects and still got rekt
Progress Report - September 2020
How to install an old package version with brew
Fixing C++ compilation bugs for the MacOS Catalina upgrade
Progress Report - August 2020
Progress Report - July 2020
Obfuscating EOSIO smart contracts
Progress Report - June 2020
Progress Report - May 2020
Typing transformations in TypeScript
Progress Report - April 2020
8 EOSIO WASM intrinsics you might not have heard about
EOSIO C++ IntelliSense in VSCode
Implementing efficient Dividend tokens
Testing EOSIO smart contracts with Hydra
Progress Report - March 2020
Progress Report - February 2020
How to check if an EOS account has a smart contract
Launching EOS Token Portfolio
How to deploy a create-react-app with github-actions
Progress Report - January 2020
How to rollback to an older EOSIO.CDT version with brew
Goals 2020
Progress Report - December 2019
De-anonymizing eosblender.com
EOSIO - How to pay for users' CPU
EOSIO Dev Puzzle - What's the max amount of RAM that can possibly be consumed by storing a single uint64
Progress Report - November 2019
Earn on your unused CPU and help the EOS network!
Progress Report - October 2019
Progress Report - September 2019
What really happened during the EOSPlay hack
Progress Report - August 2019
Progress Report - July 2019
How to fetch any secondary EOSIO table index using eosjs
Progress Report - June 2019
Advanced EOSIO programming concepts
Progress Report - May 2019
How EOS code and ABI hashes are computed
Progress Report - April 2019
Blog redesign with Gatsby and TailwindCSS
Progress Report - March 2019
How to create beautiful epub programming ebooks
Progress Report - February 2019
Progress Report - January 2019
How to write pandoc plugins in Nodejs
Goals for 2019
Progress Report - December 2018
Deferred Transactions on EOS
Difference Boolean Constructor and Double Negation
Progress Report - November 2018
Deploying EOS contracts using EOS.js
Progress Report - October 2018 - No more mobile apps 😬
EOS 1.3 Contract Development Toolkit Updates
C++ Guide for EOS Development - Header files
C++ Guide for EOS Development - Multi-Index Container
Progress Report - September 2018
C++ Guide for EOS Development - Iterators & Lambda Expressions
C++ Guide for EOS Development - Templates
C++ Guide for EOS Development - Classes and Structs
Progress Report - August 2018
C++ Guide for EOS Development - Call by value / reference
C++ Guide for EOS Development - Basics
Learnings from building my first dapp on EOS blockchain
Progress Report - July 2018
Introducing King of EOS 🥁
Bugs in V8's Exponentiation Operator
Progress Report - June 2018
Building a landing page in Vue.js
React just got ugly - React 16.4 Update
Progress Report - May 2018
Async / Await - Return values
React - Fun with keys
Progress Report - April 2018
You might not need React Context
Importing Blender 3D Model with Texture to Three.js
Progress Report - March 2018
Lazy-loading images with React and Semantic UI
Thoughts on making EOS development easier
Progress Report - February 2018
How to access Google Spreadsheets with Node
Differences in Defining ES6 Class Methods
Creating a Remind-Me bot for Steem
Progress Report - January 2018
Splitting your app into micro-processes
Book Review - Attack of the 50 Foot Blockchain
How does Steem work, anyway?
Goals for 2018
Progress Report - December 2017
How to cross-post to Steem
How to cross-post to Medium
Progress Report - November 2017
Released my fifth React Native app
Trying DynamoDB for the first time
Progress Report - October 2017
Progress Report - September 2017
Headless Chrome in Node.js
Progress Report - August 2017
Progress Report - July 2017
React Native CodePush Cheat Sheet
Progress Report - June 2017
Progress Report - May 2017
Lightweight Progress Circles in React Native
Progress Report - April 2017
Book Summary - Clean Code
Progress Report - March 2017
Getting Song Lyrics in Node.js
Creating Dynamic Promise chains
Progress Report - February 2017
Google Drive in React Native
JavaScript void Keyword
Progress Report - January 2017
How to use D3.js in React
Playing around with Relay and GraphQL
Book Summary - Heard On The Street - Quantitative Questions from Wall Street Job Interviews
Creating Google AdSense Reports with Express
Progress Report - December 2016
Book Summary - On Writing Well
How is async/await transpiled to ES5
How are generators transpiled to ES5
Released my fourth React Native app
Styling TimePickerAndroid in React Native
Structuring Redux Selectors
How to set appParams in React-Native
Progress Report - November 2016
Book Summary - Team Geek
How to create a React Native Android Library
Ultimate Guide to non-working CSS margins
How to use React in Markdown
How to migrate from Wordpress to Phenomic
Moving from WordPress to a Static Site Generator
Publishing React Native App on Android
What I learned from building my first React Native App
Set React Native App Icon When Minimized
Charts in React Native with React-Native-SVG and D3.js
How to add Permissions in React Native
How to Get The Size of a React Native View Dynamically
Performance Optimizations in Redux' mapStateToProps
How to create a Pull Request on GitHub
Why you should not use mapStateToProps too often
Modifying a Leaf of the Redux State Tree
Styling DatePickerAndroid in React Native
How to create a More-Popup Menu in React-Native
Better JS Logger for Debugging
Limitations of the react-native JS engine
Enumerating a Grid in Spiral Order
Using Actions in Redux the Correct Way
Drawing Fractals with L-Systems in D3.js
Moving Wordpress to a different domain
Javascript ES6 + Babel.js + Grunt with Sublime Text
Howto Raytracer: Ray / Triangle Intersection Theory
Howto Raytracer: Ray / Plane Intersection Theory
Howto Raytracer: Ray / Sphere Intersection Theory
Creating seamless textures the easy way
Understanding front faces - winding order and normals