Publications and books

What follows is a list of my written work. It's not exhaustive and you could probably find more examples by Googling around or visiting some of the links at the end of this page. 

Note that these are tutorials and guides mostly, but I also write public and internal technical documentation like this Support portal at Diffbot.com or their Diffbot PHP Client Documentation.

Books

Jump Start PHP Environment is a PHP book published in December 2015 after 1 year of writing.

Many entry level PHP developers want a quick path to glory, a shortcut to "knowing PHP." Too many books and tutorials go straight into a pre-made, awful environment that just wants you to code, with no regard for security, version control, or other absolutely essential practices. This book is aimed at the absolute beginner who wants to start learning PHP, but aims to set you up with a thorough understanding of what makes for a good, modern, adaptable PHP environment before you start diving into PHP itself.

Articles and Tutorials

My area of expertise spans two contexts: web and blockchain. Each section will list the top 15 best performing (over 20k total views) articles I've written on that topic.

Blockchain

1. [CodeMentor.io]  Programming for Ethereum: An introduction into Ganache

A gentle introduction to Ganache, the private virtual Ethereum blockchain developers can run on their computers and play with without fear of breaking something or having to go online.

2. [Bitfalls.com] The Difference Between Proof of Work, Proof of Stake, and Proof of Authority

There are different consensus algorithms in blockchains. This post describes the three most popular, but the list is by no means exhaustive.

3. [SitePoint.com] Creating and Deploying a Custom Ethereum Token

Part of a dapp development course, this tutorial introduces the writing of a custom token for a bigger project. The token is non-standard in that it has a locking function, which lets the owner lock a holder's amount. Find out why by giving it a read.

4. [Bitfalls.com] How Does The Lightning Network Work?

The LN is a long anticipated upgade to the Bitcoin network. But does it really have a chance of succeeding? And how does it work anyway? I answer this in this detailed emoji-illustrated guide.

5. [Bitfalls.com] What is an Ethereum Testnet and How is it Used?

When developing for Ethereum, you don't want your demo software on the main network. Firstly, it costs money, and secondly, it's not smart to debug in production. Testnets are there so that people have a "staging" environment on a public blockchain.

6. [SitePoint.com] Ethereum Gas Explained: How Transaction Costs are Calculated

Ethereum uses ether as network gas. This gas is used to pay for transactions on the network, and is expressed in "gas cost". But how is this calculated, and where does it come from? I explain it all in this post.

7. [Bitfalls.com]  The Anatomy of a Pump and Dump Group

I once ended up in a Pump and Dump group by accident. It fascinated me so I set out to learn more about these types of scams. This article is a detailed account of how such groups operate, with screenshots of the whole pumping and dumping process.

8. [SitePoint.com] A Deep Dive into Cryptography

Rather self-explanatory, this article is a detailed introduction into cryptography - the stuff powering blockchains and cryptocurrency.

9. [Bitfalls.com] Solidity Development Crash Course: Building a Blockchain Raffle

This tutorial teaches how to build a raffle on the Ethereum blockchain. A very simple contract doing one very simple but specific things, while keeping caveatos of blockchain randomness (or lack thereof) in mind.

10. [SitePoint.com] Explaining Ethereum and its difference to Bitcoin

Ethereum. Programmable money. Many think it's silver to bitcoin's gold, when in fact it's oil, as from oil comes everything else. This introduction explains Ethereum in a newbie-friendly way.

11. [Bitfalls.com] "Provably fair" games on the blockchain and the origin of gambling

The blockchain is deterministic, which means every participating node must come to the same conclusion after doing some mathematical operations. This clashes head-on with the concept of random number generation. How then, can we get randomness on a blockchain?

12. [SitePoint.com] Blockchain: How it Works and Why it's so Popular

An introductory and extremely newbie-friendly illustrated post into blockchain as a concept and a technology.

13. [Bitfalls.com] Your First Ethereum Address: Learning to Use MyEtherWallet

MyEtherWallet is an excellent wallet interface which lets you interact with the blockchain from your browser: sending tokens, deploying contracts, calling smart contract functions, and more. Here we tackle its basics.

14. [SitePoint.com] Storing Cryptocurrency: How Hardware Wallets Work

A primer into the Ledger Nano S hardware wallet and how it works - from recovery phrases to hidden private keys.

15. [Bitfalls.com] The Curious Case of 184 Billion Bitcoins

Once upon a time, there was a big bug in the Bitcoin protocol. It allowed for the creation of 184 billion bitcoins in a single transactions. To run away from the mistake, the Bitcoin protocol was forked. This was the very first escape fork - the changing of software to undo a mistake.

16. [Bitfalls.com] Getting Started with Embark 3.2 and Developing Your Own ERC20 Token

Upon Status' release of Embark Framework 3.2, I jumped in to cover a quickstart and get people off the ground. This tutorial explains how to build a custom token by using Embark.

17. [Bitfalls.com] Can Blockchain Be Used to Fix Elections?

A discussion about common misconceptions about voting and the blockchain. The TL;DR of it is: it's not only possible but exclusively positive to try and blockchainize voting.

18. [Status.im] Nimbus for Newbies

An newbie-friendly introduction into Nimbus, the new Ethereum 2.0 client we are working on at Status.

19. [Status.im] Two Point Oh: Explaining Validators

An explanation of Validators in the new Ethereum 2.0 staking system - how they work, how to become one, and when they're coming.

20. [Status.im] Two Point Oh: The Beacon Chain

A look at the Beacon Chain - the new core of the next-gen Ethereum network and its connection to the validators explained earlier.

21. [Status.im] Two Point Oh: The Tale of Two Ethers

During the PoW-PoS transition phase, two different ethers will exist. This post explains what that means.


You can find more of my blockchain posts here and here.

Web

1. [Blog] Autofight

Autofight was a crazy popular 5-part post of mine from back in the day (2013!) where I documented the creation of an open source army-on-army battle simulation in PHP for a job interview. The content can still be accessed here. One of the fights has been recorded and published on Showterm.

Fun fact: the tutorial actually resulted in a person getting a job from the same company years later, as they were met with the same task.

2. [SitePoint.com] Re-introducing Vagrant: Virtual Machines for Healthy Web Development

Vagrant is a confusing beast for many, especially with the advent of Docker. This post explains what it is by starting at the root: virtual machines. It also covers why it's better to focus on Vagrant rather than Docker if you must choose.

3. [SitePoint.com]  Improving Performance Perception: On-demand Image Resizing

We often focus on optimizing our images before uploading them to the server. This then entails custom optimizations, exports as webp, changing the rendering output of the web app and more. What if we could outsource this optimization to our server, but only when the image has been requested?

4. [SitePoint.com] How to Install PHP Extensions from Source

An oldie but goldie and still relevant today. Web developers aren't low level programmers and thus often struggle with command line instructions. This tutorial clarifies the process.

5. [SitePoint.com]  What is a CDN and how does it work?

CDNs enhance security and improve performance. But how?

6. [SitePoint.com] Basic TDD in your new PHP Package

Test Driven Development in web development is far too rare even after years of being common practice in many other disciplines. This tutorial shows how easy it is to get started with TDD, encouraging you to start with it, rather than tack it on.

7. [SitePoint.com] Introduction to R and RStudio

R is a wonderfully complex and versatile language for data processing, but it's also chaotic, unorganized, and woefully inconsistent in function names. Its core library is a mess and using it is anything but intuitive.

8. [SitePoint.com] Mastering Composer: Tips and Tricks

Composer is PHP's package manager. It's amazing on its own, but with these tips and tricks it upgrades one's deployment and development process.

9. [SitePoint.com] Turning a Crawled Website into a Search Engine

Diffbot can be used to crawl entire sites and download their data. But how can we use that data then? Here we learn how to search a big dataset and make a makeshift search engine.

10. [SitePoint.com] BDD in Laravel: Getting Started with Behat and PhpSpec

BDD is a testing practice that's more readable to end-users but even less used than TDD. As such, the framework Laravel does its best to be super compatible with it from code-line zero.

11. [SitePoint.com] Easy Multi-language Twig Apps with Gettext

Multi-language is hard and relying on JavaScript, while handy, tends to reduce performance and create issues with search engines. Gettext can help with this.

12. [SitePoint.com] Console Game Development in PHP: Detecting Keypresses

One of many posts detailing the use of PHP for ... uhh... things it wasn't meant to be used for. One of those is game development with loops and keypresses and yet - it works!

13. [SitePoint.com] The Balance Between Visual and Technical Debt

What is visual debt? Does it matter, considering the sea of technical debt most apps are drowning in?

14. [SitePoint.com] How Bitwise Operators Work

Bitwise operators were all the rage back in the day because they allowed expressive mathematical operations on data without using up much memory. We now have an abundance of memory and careful programming has gone out the window, but is there still a use case for bitwise?

15. [SitePoint.com] The Theory of Constraints in PHP

The Theory of Constraints is a development and organization principle helping projects get from point A to point B by eliminating the weakest link - the constraint - of a development process. How can this be applied to web and, specifically, to PHP?


You can find more of my web posts here.

Other writing

1. Cheering on the End of the World

A pessimistic view of where we're headed if we continue to worship now-clumsy giants like Google.

2. Neural Decorators

An idea about how memory works in humans, and how that may be applied to androids and AI, either in the future or in current Sci-Fi shows.

3. Unmasking Bitcoin White: A rampant crypto scam

Exposing a cryptocurrency scam. The scammers have, in response to this post, rebranded and attempted a relaunch. They were re-exposed. The project has been dying a slow death ever since.

4. The dKuna Use Case: Is Government Cryptocurrency an Option?

At a bank-funded fintech hackathon, we built and presented a national stablecoin with multi-sig security features built in and super-governmental oversight (i.e. central bank controls wallet until ECB takes over until interpol takes over etc.). This post explains the project's purpose.


If you're feeling stalky, more stuff is available by browsing the links below. Most are no longer maintained.