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

  1. Replaying Ethereum Hacks - Rari Fuse VUSD Price Manipulation

    A few days ago, pool 23 of Rari’s Fuse platform was exploited. In this episode of the Replaying Ethereum Hacks series, we will look at what happened and replay the exploit by implementing it from scratch. Attacker Address Price Manipulation TX Fuse inflated deposit & borrow TX…

    Categories:
  2. Progress Report - October 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 October I worked 156 productive on side projects hours last month. I noticed this includes C4 but it…

    Category:
  3. How to become a smart contract auditor

    From time to time, I receive messages asking me for advice on how to get started as a smart contract security auditor. While there are already articles written about this topic, most of them are just a collection of security-related articles which they throw at beginners…

    Categories:
  4. Progress Report - September 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 September I worked 139 productive on side projects hours last month. To make these progress reports a bit…

    Category:
  5. Progress Report - August 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 August I worked 68 productive on side projects hours last month. To make these progress reports a bit more…

    Category:
  6. Progress Report - July 2021

    Category:
  7. Progress Report - June 2021

    Category:
  8. Progress Report - May 2021

    Category:
  9. BSC PancakeBunny Exploit Post Mortem

    Categories:
  10. EOS vaults.sx hack

    Categories:
  11. Progress Report - April 2021

    Category:
  12. Progress Report - March 2021

    Category:
  13. Replaying Ethereum Hacks - Sushiswap BadgerDAO's Digg

    Categories:
  14. Progress Report - February 2021

    Category:
  15. Replaying Ethereum Hacks - Furucombo

    Categories:
  16. Replaying Ethereum Hacks - Introduction

    Categories:
  17. Paradigm CTF 2021 Solutions

    Categories:
  18. Progress Report - January 2021

    Category:
  19. DeFi Sandwich Attacks

    Categories:
  20. Capture The Ether Solutions

    Categories:
  21. Ethernaut Solutions

    Categories:
  22. Damn Vulnerable DeFi Solutions

    Categories:
  23. Goals 2021

    Categories:
  24. Progress Report - December 2020

    Category:
  25. Pricing LP tokens | Warp Finance hack

    Categories:
  26. Progress Report - November 2020

    Category:
  27. Progress Report - October 2020

    Category:
  28. How I gamed EOS Defi projects and still got rekt

    Categories:
  29. Progress Report - September 2020

    Category:
  30. How to install an old package version with brew

    Categories:
  31. Fixing C++ compilation bugs for the MacOS Catalina upgrade

    Categories:
  32. Progress Report - August 2020

    Category:
  33. Progress Report - July 2020

    Category:
  34. Obfuscating EOSIO smart contracts

    Categories:
  35. Progress Report - June 2020

    Category:
  36. Progress Report - May 2020

    Category:
  37. Typing transformations in TypeScript

    Category:
  38. Progress Report - April 2020

    Category:
  39. 8 EOSIO WASM intrinsics you might not have heard about

    Categories:
  40. EOSIO C++ IntelliSense in VSCode

    Categories:
  41. Implementing efficient Dividend tokens

    Categories:
  42. Testing EOSIO smart contracts with Hydra

    Categories:
  43. Progress Report - March 2020

    Category:
  44. Progress Report - February 2020

    Category:
  45. How to check if an EOS account has a smart contract

    Categories:
  46. Launching EOS Token Portfolio

    Categories:
  47. How to deploy a create-react-app with github-actions

    Categories:
  48. Progress Report - January 2020

    Category:
  49. How to rollback to an older EOSIO.CDT version with brew

    Categories:
  50. Goals 2020

    Category:
  51. Progress Report - December 2019

    Category:
  52. De-anonymizing eosblender.com

    Categories:
  53. EOSIO - How to pay for users' CPU

    Categories:
  54. EOSIO Dev Puzzle - What's the max amount of RAM that can possibly be consumed by storing a single uint64

    Categories:
  55. Progress Report - November 2019

    Category:
  56. Earn on your unused CPU and help the EOS network!

    Categories:
  57. Progress Report - October 2019

    Category:
  58. Progress Report - September 2019

    Category:
  59. What really happened during the EOSPlay hack

    Categories:
  60. Progress Report - August 2019

    Category:
  61. Progress Report - July 2019

    Category:
  62. How to fetch any secondary EOSIO table index using eosjs

    Categories:
  63. Progress Report - June 2019

    Category:
  64. Advanced EOSIO programming concepts

    Categories:
  65. Progress Report - May 2019

    Category:
  66. How EOS code and ABI hashes are computed

    Categories:
  67. Progress Report - April 2019

    Category:
  68. Blog redesign with Gatsby and TailwindCSS

    Categories:
  69. Progress Report - March 2019

    Category:
  70. How to create beautiful epub programming ebooks

    Categories:
  71. Progress Report - February 2019

    Category:
  72. Progress Report - January 2019

    Category:
  73. How to write pandoc plugins in Nodejs

    Category:
  74. Goals for 2019

    Category:
  75. Progress Report - December 2018

    Category:
  76. Deferred Transactions on EOS

    Categories:
  77. Difference Boolean Constructor and Double Negation

    Category:
  78. Progress Report - November 2018

    Category:
  79. Deploying EOS contracts using EOS.js

    Categories:
  80. Progress Report - October 2018 - No more mobile apps 😬

    Category:
  81. EOS 1.3 Contract Development Toolkit Updates

    Categories:
  82. C++ Guide for EOS Development - Header files

    Categories:
  83. C++ Guide for EOS Development - Multi-Index Container

    Categories:
  84. Progress Report - September 2018

    Category:
  85. C++ Guide for EOS Development - Iterators & Lambda Expressions

    Categories:
  86. C++ Guide for EOS Development - Templates

    Categories:
  87. C++ Guide for EOS Development - Classes and Structs

    Categories:
  88. Progress Report - August 2018

    Category:
  89. C++ Guide for EOS Development - Call by value / reference

    Categories:
  90. C++ Guide for EOS Development - Basics

    Categories:
  91. Learnings from building my first dapp on EOS blockchain

    Categories:
  92. Progress Report - July 2018

    Category:
  93. Introducing King of EOS 🥁

    Categories:
  94. Bugs in V8's Exponentiation Operator

    Categories:
  95. Progress Report - June 2018

    Category:
  96. Building a landing page in Vue.js

    Categories:
  97. React just got ugly - React 16.4 Update

    Categories:
  98. Progress Report - May 2018

    Category:
  99. Async / Await - Return values

    Categories:
  100. React - Fun with keys

    Categories:
  101. Progress Report - April 2018

    Category:
  102. You might not need React Context

    Categories:
  103. Importing Blender 3D Model with Texture to Three.js

    Categories:
  104. Progress Report - March 2018

    Category:
  105. Lazy-loading images with React and Semantic UI

    Categories:
  106. Thoughts on making EOS development easier

    Categories:
  107. Progress Report - February 2018

    Category:
  108. How to access Google Spreadsheets with Node

    Categories:
  109. Differences in Defining ES6 Class Methods

    Category:
  110. Creating a Remind-Me bot for Steem

    Categories:
  111. Progress Report - January 2018

    Category:
  112. Splitting your app into micro-processes

    Categories:
  113. Book Review - Attack of the 50 Foot Blockchain

    Category:
  114. How does Steem work, anyway?

    Categories:
  115. Goals for 2018

    Category:
  116. Progress Report - December 2017

    Category:
  117. How to cross-post to Steem

    Categories:
  118. How to cross-post to Medium

    Categories:
  119. Progress Report - November 2017

    Category:
  120. Released my fifth React Native app

    Categories:
  121. Trying DynamoDB for the first time

    Categories:
  122. Progress Report - October 2017

    Category:
  123. Progress Report - September 2017

    Category:
  124. Headless Chrome in Node.js

    Category:
  125. Progress Report - August 2017

    Category:
  126. Progress Report - July 2017

    Category:
  127. React Native CodePush Cheat Sheet

    Categories:
  128. Progress Report - June 2017

    Category:
  129. Progress Report - May 2017

    Category:
  130. Lightweight Progress Circles in React Native

    Categories:
  131. Progress Report - April 2017

    Category:
  132. Book Summary - Clean Code

    Category:
  133. Progress Report - March 2017

    Category:
  134. Getting Song Lyrics in Node.js

    Categories:
  135. Creating Dynamic Promise chains

    Categories:
  136. Progress Report - February 2017

    Category:
  137. Google Drive in React Native

    Categories:
  138. JavaScript void Keyword

    Category:
  139. Progress Report - January 2017

    Category:
  140. How to use D3.js in React

    Categories:
  141. Playing around with Relay and GraphQL

    Categories:
  142. Book Summary - Heard On The Street - Quantitative Questions from Wall Street Job Interviews

    Category:
  143. Creating Google AdSense Reports with Express

    Categories:
  144. Progress Report - December 2016

    Category:
  145. Book Summary - On Writing Well

    Category:
  146. How is async/await transpiled to ES5

    Category:
  147. How are generators transpiled to ES5

    Category:
  148. Released my fourth React Native app

    Categories:
  149. Styling TimePickerAndroid in React Native

    Categories:
  150. Structuring Redux Selectors

    Category:
  151. How to set appParams in React-Native

    Category:
  152. Progress Report - November 2016

    Category:
  153. Book Summary - Team Geek

    Category:
  154. How to create a React Native Android Library

    Category:
  155. Ultimate Guide to non-working CSS margins

    Category:
  156. How to use React in Markdown

    Categories:
  157. How to migrate from Wordpress to Phenomic

    Categories:
  158. Moving from WordPress to a Static Site Generator

    Categories:
  159. Publishing React Native App on Android

    Categories:
  160. What I learned from building my first React Native App

    Categories:
  161. Set React Native App Icon When Minimized

    Categories:
  162. Charts in React Native with React-Native-SVG and D3.js

    Categories:
  163. How to add Permissions in React Native

    Categories:
  164. How to Get The Size of a React Native View Dynamically

    Categories:
  165. Performance Optimizations in Redux' mapStateToProps

    Categories:
  166. How to create a Pull Request on GitHub

    Category:
  167. Why you should not use mapStateToProps too often

    Categories:
  168. Modifying a Leaf of the Redux State Tree

    Categories:
  169. Styling DatePickerAndroid in React Native

    Categories:
  170. How to create a More-Popup Menu in React-Native

    Categories:
  171. Better JS Logger for Debugging

    Category:
  172. Limitations of the react-native JS engine

    Categories:
  173. Enumerating a Grid in Spiral Order

    Category:
  174. Using Actions in Redux the Correct Way

    Categories:
  175. Drawing Fractals with L-Systems in D3.js

    Categories:
  176. Moving Wordpress to a different domain

    Category:
  177. Javascript ES6 + Babel.js + Grunt with Sublime Text

    Category:
  178. Howto Raytracer: Ray / Triangle Intersection Theory

    Categories:
  179. Howto Raytracer: Ray / Plane Intersection Theory

    Categories:
  180. Howto Raytracer: Ray / Sphere Intersection Theory

    Categories:
  181. Creating seamless textures the easy way

    Category:
  182. Understanding front faces - winding order and normals

    Categories: