This tool enables users to use new or existing credentials from the Algorand blockchain, on various networks such as (Main net and Test net) to create Algorand Standard Assets (ASA)

“Assets that represent many of the same type, like a stable coin, may be referred to as fungible assets. Single, unique assets are referred to as non-fungible assets.”

I’ve spent the past few days creating this open source based on Angular & Electron, integrating the JS Algorand SDK.

This tool that allows users to use new or existing credentials from the Algorand blockchain, on various networks such as (Main net…

Algorand aims to solve the three main problems faced by blockchains, called the blockchain trilemma.


Algorand is the decentralized infrastructure that runs Algo and other Algorand Standard Assets (ASA). These assets can come in the form of fungible tokens, NFT’s, stable coins, etc.

1. Call unsubscribe() manually

Angular has a ngOnDestroy hook that is called during the teardown phase, providing garbage collection.

When we use Observables in a component in Angular, we should set up the ngOnDestroy method, and call the unsubscribe method on all of them.

export class MessageComponent implements OnInit, OnDestroy {
messageSub: Subscription;

ngOnInit () {
const messages$ = this.messageService.getMessages();
this.messageSub = messages$.subscribe()
ngOnDestroy() {

We added ngOnDestroy to our AppCompoennt and called the unsubscribe method on the this.messageSub Observable.

If there are multiple subscriptions, consider pushing them to an array.There are two subscriptions in AppComponent. …

Angular is a TypeScript-based framework to build complex UI-heavy applications through reactive programming.

Clean code is not only about readability but also includes avoiding side-effects through programming error and unneeded complex logic. This is normal as software planning never goes as planned.

1). takeUntil — Unsubscribe from observables

Using a Reactive / Declarative approach. This RxJS operator ensures our subscription life-cycle, whether it’s using AsyncPipe or .subscribe() in ngOnInit(), will be unsubscribed during the component tear-down

// app.component.tsexport class AppComponent implements OnDestroy  {destroyed$: Subject<boolean> = new Subject();
messages$: Observable<Message[]> = this.http.get('/messages').pipe(takeUntil(this.destroyed$));
constructor(private http: HttpClient) {}ngOnDestroy(): void {

2). Use AsyncPipe | async always

Streams are a sequence of values over time. In web applications, inputs are constantly changing…

This is a true story of a great job opportunity turning into absolute HELL.

Office Space:

Yeah, hi… Welcome to hell

Also, tomorrow I need everybody to come to work at the office as a team and do the minimum working hours from 9 am to 8 pm.

- Boss

I’m an American living in Thailand — I moved here after high school to study Computer Science in Bangkok. I have been very fortunate to have met so many great people.

Working in Thailand

In mid-2019, I started to look for software engineering positions after taking a health break in the states. In Thailand, it’s…

Quick tips and tricks to improve your Laravel code.

Interstellar Background —
Interstellar Background —

As apart of life, there are times when you need to get sh*t done. Writing clean code will help you do that! Everyone has a different style and code can improve over time.


FormRequests have been around since Laravel 5.0. I did not know this, you may not know either.

Typical validation

// UserController.phpclass UserController extends Controller {  public function create() {
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'unique:users,email',
if($validator->fails()) {
return response()->json(['success' => false])

// ...

Let the code speak for itself. Your controllers…

Google Data Studio, like Google Analytics, is a dashboard and reporting tool to aggregate important data.

Why use Google Data Studio over Google Analytics when tracking information with the web?

Unfortunately, Google Analytics can be unreliable. With the increase of ad, tracking, and cookie blocking, Google Analytics can suffer from 25% up to 50%+ of its data — being events, page views, etc — from being tracked.

This can be solved through various methods such as pixel generation to find the percentage of users with ad blockers that stop Google Analytics and/or Google Tag Manager from executing, and thus tracking.

In my case, I had Google Analytics and an external source with the same event tracking…

A way to improve rich search results and usability for websites.

Image courtesy of

What is structured data?

By definition, structured data refers to a high degree of organization and quality in presenting data to search engines.

For example, imagine you have a website with various subpages — search engines can index these pages and figure out the content. However, it can take time. Especially depending on how much traffic your website gets.

By explicitly telling search engines what your page contains, you allow them to easily index, display, and generate rich results or snippets when possible.


In the first image, you can see search results appearing in the Google carousel. Two are marked up as VideoObjects that…

A short tutorial on how to get Swagger running with Laravel.

Image created by Pem Saenapatumpan

Documentation is the backbone of an application. It allows developers after you to understand how the application works without having to read through the entire implementation.

Swagger is a framework that allows real-time authorization and endpoint testing for developers and testers alike.


Let’s start with a barebones application so we’re all literally on the same page.


First, we’ll need to download composer to make our Laravel application and download any dependencies


Using composer, we can create our new Laravel application

composer create-project --prefer-dist laravel/laravel blog

Local Development Server

In this tutorial…

Developing, a website built with Laravel and Angular Universal, with Strava’s API.

Ludoo’s default team page


This last year I finally found out about Strava and started tracking my activities with my coworkers on our private app.

Our app was fairly straightforward, we authorized your Strava account with the app and pulled activities every couple of hours. After that, we updated the total distance ran and cycled in a certain time period.

We set a deadline to see how many kilometers we could reach during that time frame.

Garrett Vorce

Frontend Engineer @ Block Aero

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