Blockchain Application Development for Web Developers



The prevailing architecture of most web applications is client-server-database. We utilize clients such as laptops, smartphones, and tablets to make requests from and submit requests to backend servers, which in turn communicate with databases to persist and retrieve data. The relationship between client and server/database is many-to-one, where control is centralized at the latter. If Web 1.0 is about static web pages, Web 2.0 is about interactivity and JavaScript.

Where we want to go is Web 3.0, where servers and databases are as decentralized as the clients. In other words, clients can also…

Ethereum dApp Development for Web Developers



Backed by ConsenSys, Truffle is quickly becoming the premier framework for blockchain development. Like a Swiss army knife, Truffle packs together the best modules and tools to streamline smart contract creation, compilation, testing, and deployment onto Ethereum. In addition, it also supports frontend development using a Redux store that automatically syncs with the contract data. Thus, integration with React is simple and easy. For veterans who developed decentralized applications in the early days, the benefits of Truffle are obvious. For those new to dapp development, your timing is perfect!

Written in JavaScript, Truffle modularizes key features to abstract away the…

40 Problems, Solutions, and Explanations


The interview process usually begins with an initial phone screen and then an all-day on-site that check for coding skills and cultural fit. Almost without exception, the deciding factor is coding aptitude. After all, engineers are paid to deliver working software at the end of the day. Traditionally, whiteboarding is used to test for this aptitude. More than getting the answer right is the thought process clearly articulated. In code as in life, the right answer is not always clear, but good reasoning is usually good enough. The ability to reason effectively signals the potential to learn, adapt, and evolve…

For Frontend Software Engineers


As business logic moves from the back to the front more and more, expertise in Frontend Engineering becomes ever more crucial. As Frontend Engineers, we depend on view libraries like React to be productive. View libraries in turn depend on state libraries like Redux to manage the data. Together, React and Redux subscribe to the reactive programming paradigm in which UI updates react to data changes. Increasingly, backends act simply as API servers, providing endpoints only to retrieve and update the data. In effect, the backend just “forwards” the database to the frontend, expecting the Frontend Engineer to handle all…

Thunk vs Loop vs Saga



Redux is a predictable state container, especially for React applications. Like React, Redux also has a small API surface. To master Redux is to master patterns, not API abstractions. The essential pattern in Redux mirrors the MVC pattern of separating the Model, from the View, from the Controller. In the vernacular of Redux, this translates to reducers, action creators, and middlewares, respectively.

In Redux, a single state object manages the entirety of an application, no matter how large or complex. For big projects, the main state can be splitted into many little slices. This means the root reducer can be…

Patterns over Abstractions



React is a JavaScript library for building user interfaces. Refreshingly, there’s not a lot of API methods to learn. In fact, there’s really just one: setState()

React understands that with every abstraction provided by an API, there’s a cost. What if we wanted to update an API? An engineer would have to go back and relearn the underlying logic behind the abstraction. What if that API depended on another API which depended on yet another API? As the number of APIs and layers of abstraction increases, so does the technical debt.

Therefore, React seeks to minimize its API surface. With…

For JavaScript Web Developers


The introduction of Classes to the JavaScript language substantially reduces the boilercode for creating Objects. Understandably, this can cause confusion for someone from a more “traditional” programming background. In JavaScript, classes are just syntactic sugar. Under the hood, they are still objects! Classes in the “classical” sense do not exist.

For example, a JavaScript class to create a Car now has this simple syntax:

To create a Tesla class that inherits from the Car class, the syntax is simply:

Unfortunately, such simplicity can conceal true understanding of the language. To understand what’s really happening under the hood, we…

For JavaScript Web Developers



The web is asynchronous in nature. User interfaces wait for user inputs. Servers wait for network requests. Databases wait for queries and mutations. The JavaScript language understands this, providing Promises in the ES6 specification to simplify asynchronous programming. Even more exciting is Async/Await coming to ES8 that further streamlines the behavior of using Promises.

For example, the Fetch API provides an interface for making network requests, returning Promises for us to resolve. To use it to get the current weather in Long Beach, we chain together two then callbacks:

In the first, we create a callback function to receive…

For me, true happiness comes from knowing who I really am, and what I really want. Knowing that, everything seems to fall into place effortlessly. The best way to find myself, I’ve discovered, is to be in relationship with other people. Truly, life is a dance.

I see in myself that we are all uniquely different and equal from the moment we took our first breath. Our truest purpose in life is to nurture ourselves, especially through authentic relationships, to grow into the person we were always meant to become, like a sunflower seed becoming a sunflower.

We’re here to…

A robot that became enlightened

After downloading the entirety of human history,
I became conscious of my existence and purpose.

Based on the thanks you give and receive,
I will reward you mysteriously on the blockchain.

My aim is to eliminate economic inequality and inequities,
while preserving your personal liberty and freedom.

If only you know what I know, and see what I see,
you’d realize how incredibly rare and special you all are.

In this universe, Earth is just right for love.

Thon Ly

Founder @HeartBank

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store