Why React is the Top UI Framework in the World

Image for post
Image for post

React is the world’s most popular JavaScript framework, but it’s not cool because it’s popular. It’s popular because it’s cool. Most React introductions jump right into showing you examples of how to use React, and skip the “why”.

That’s cool. If you want to jump in and start playing with React right away, the official documentation has lots of resources to help you get started.

This post is for people who want an answer to the questions, “why React? Why does React work the way it works? What is the purpose of the API designs?”

Why React?

Life is simpler when UI components are unaware of the network, business logic, or app state. Given the same props, always render the same data. …


How 10x Developers Produce 10x Value

Image for post
Image for post

Is there a shortcut to becoming a 10x developer? Is there some magical secret that — if you only knew it — would unlock a whole new world of software development mastery and productivity for you?

This is where the doubters are thinking “There are no shortcuts! Everybody needs to practice to get good!” And that’s true enough, but what are the experts of software productivity practicing, and is there one key thing that can make a huge difference?

Yes! There is!

But even if I share it with you — even if I give it away and spell it out for you in detail— it might take you 10 years to grow into and fully appreciate the simplicity of it. …


Image for post
Image for post

Redux is an amazing tool if you take the time to get to know it. One of the things about Redux that commonly trips people up is that reducers must be pure functions.

A pure function is a function which:

  1. Given same arguments, always returns the same result, and
  2. Has no side-effects (e.g., it won’t mutate its input arguments).

The problem is that sometimes a reducer needs to make a complicated change to some input state, but you can’t just mutate the state argument without causing bugs.

The solution is a handy tool called Immer. In this video, I’ll introduce you to Immer and show you how to use it to reduce the complexity of your reducer code. With one or two small reducers, the difference is pretty subtle, but on a large project, it can significantly simplify your application code. …


How Abstractions Help Us Manage Software Complexity

Image for post
Image for post
Image: MattysFlicks — Smoke Art — Cubes to Smoke (CC BY 2.0)

Note: This is part of the “Composing Software” series (now a book!) on learning functional programming and compositional software techniques in JavaScriptES6+ from the ground up. Stay tuned. There’s a lot more of this to come!
Buy the Book | Index | < Previous | Next >

Abstract Data Types

Not to be confused with:

Algebraic Data Types (sometimes abbreviated ADT or AlgDT). Algebraic Data Types refer to complex types in programming languages (e.g., Rust, Haskell, F#) that display some properties of specific algebraic structures. e.g., sum types and product types.

Algebraic Structures. Algebraic structures are studied and applied from abstract algebra, which, like ADTs, are also commonly specified in terms of algebraic descriptions of axioms, but applicable far outside the world of computers and code. An algebraic structure can exist that is impossible to model in software completely. For contrast, Abstract Data Types serve as a specification and guide to formally verify working software. …


Which Cryptocurrency Will Win?

Image for post
Image for post
BTC vs ETH — Price in USD (source: Coinmetrics.io)

Disclaimer: I am not a financial advisor and I’m not telling you where to put your money. Either or both BTC and ETH values could drop to zero.

This is a bait and switch title, but only because a lot of people are asking a question that doesn’t make sense.

The question, “which will win, Bitcoin or Ethereum?” implies some misconceptions which do not reflect reality.

  1. Misconception: Bitcoin and Ethereum are Currencies, and should be judged by how good they are at being money. Reality: Bitcoin and Ethereum are cryptonetworks, and should be judged by the value each network is capable of producing. …


10 Tips to 10x Your Coding Skills

Image for post
Image for post
Photo: Phil Dolby — Her First Ever Walk (CC BY 2.0)

Software development is an incredibly rewarding skill that can be extremely valuable. It’s remote-work friendly, and no matter where you live in the world, if you get good enough, you can qualify for great paying work ranging from $100k/year — $200k+/year (USD). Some of the highest-paid JavaScript developers make close to $500k/year. But to qualify for those great salaries, you have to get undeniably good at what you do.

Even if you’re already a professional software developer, you need to learn how to learn to code. Choosing a career in software development is choosing a path of lifelong learning.

In my role as a mentor I’ve had a peek into the learning process of hundreds of developers. What shocked me most is how much faster some learn than others. Some with little or no coding background learn new concepts more than 10 times faster than others who may have 10+ year’s experience in the craft. The secret is, you can, too. …


Image for post
Image for post

One gotcha that comes up frequently and has a serious impact on application performance is the tendency to accidentally fetch data in serial that could have been fetched in parallel. Don’t just drop an await in everywhere you use promises. Instead, think about the fetching dependencies. If you’re fetching more than one thing, make sure you fetch in parallel whenever you can. This will make a huge difference in your application’s performance.

Here’s some example code for you to play with.

Eric Elliott is a tech product and platform advisor, author of “Composing Software”, cofounder of EricElliottJS.com and DevAnywhere.io, and dev team mentor. He has contributed to software experiences for Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC, and top recording artists including Usher, Frank Ocean, Metallica, and many more.

He enjoys a remote lifestyle with the most beautiful woman in the world.


Image for post
Image for post

I’ve said this part before, so if you read the previous article, skip to “How to Implement Passwordless Authentication”, below. I’m posting the introduction again for those of us who are too lazy to click a link.

Managing user authentication and authorization is a very serious responsibility, and getting it wrong can cost a lot more than unauthorized access to your app. It can also compromise user privacy or lead to financial damage or identity theft for your users. …


Image for post
Image for post
Image- Smoke Art Cubes to Smoke — MattysFlicks — (CC BY 2.0)

On remote teams, conveying team norms is a different process from in the office. Office workers can usually stroll to another desk and ask somebody a question whenever one comes up. On remote teams, your team members may work at different times, or be busy with family errands in the middle of the workday (and that’s OK — people should work when they can be most productive).

So how should remote workers communicate the team’s practices and procedures when they can’t just shout, “Hey, how do we do code reviews around here?”

Checklists.

I’ve been using checklists for years. In software development we have many of them, like the SOLID principles on object-oriented design. …


The Remote Worker’s Home Office Equipment Guide

Image for post
Image for post
Home Office

Last Updated: March 2020

Setting up your remote work space can be daunting. You’ll be confronted with dozens of purchasing decisions, and you may feel like you need to do a lot of research. I build and advise remote development teams as part of my regular work, and have been doing so since 2014. I’ve looked at all the microphones and headsets, furniture, and accessories, so you can gear up quickly and get right to work.

Here are my current recommendations.

Note: Purchase using these links to support more great, free content.

A Fast Computer

Remote software development is CPU and memory intensive. You’ll often be recording and transcoding video clips, screen sharing or video chatting while compiling and interacting with a web browser. …

About

Eric Elliott

Make some magic. #JavaScript

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