Tips for accepting feedback with grace and dignity.

Image for post
Image for post
Photo by Jason Rosewell on Unsplash

Like writing, programming is personal and intimate. You pour your creativity and thoughts into a machine through your fingertips. It is no surprise, then, that you may feel a little angry when you read critical reviews on your code.

How do you handle criticism? For one, stop sulking and think before leaping into defending yourself or lashing out at others. Below is a guide to what I think about when I read code reviews.

What Can I Learn

Code review plays a crucial role in software quality assurance. A good piece of feedback may uncover defects — program correctness, performance issues, security vulnerabilities — before your code ever reaches the users. …

CSS grid, linear-gradient, neumorphism, and a moment in Go history.

Image for post
Image for post
Photo by Hassan Pasha on Unsplash

I was inspired to write about Go after watching The Queen’s Gambit recently. Something is alluring about learning a five-hundred-year-old chess opening move. The modern computer can simulate millions of game patterns in a fraction of a second. But it will never know the joy of learning the name and history behind a move.

This article will feature the famous opening sequence in a match between Go Seigen and Honinbo Shusai Meijin in HTML and CSS.

On October 16, 1933, the 18-year-old Chinese-born prodigy Go Seigen faced Honinbo Shusai Meijin, the 21st head of the Honinbo house — the most prominent Go institution in Japan since 1612. It was dubbed the game of the century at the time, for it was the epitome of a generational war against a backdrop of rising tension between the two men’s respective native countries. …

Tips for implementing pay transparency at your workplace.

Image for post
Image for post
Photo by Michael Behrens on Unsplash

I spent three years building a human resource information system at a startup. Our team was in charge of building performance reviews, cascading goals, salary history, and other talent management tools.

We also had to implement an incredibly flexible permission system to manage who has access to which piece of information in the product. Because some companies took extraordinary care around their data, while others left everything out in the open. I was always fascinated by how companies treat their data and what it says about their company cultures.

A couple of years later, I talked to Pascal Roy, owner of Elapse Technologies, who opened my eyes to open-book management. …

Elevate your skills with deliberate practice.

Image for post
Image for post
Photo by Sven Mieke on Unsplash

In her book Grit: The Power of Passion and Perseverance, Angela Duckworth interviewed dozens of high achievers and noted the importance of deliberate practice in their successes. Below is how Duckworth describes the way experts practice:

First, they set a stretch goal, zeroing in on just one narrow aspect of their overall performance. Rather than focus on what they already do well, experts strive to improve specific weaknesses. They intentionally seek out challenges they can’t yet meet.

This article will identify fundamental strengths crucial to software development and design specific routines to get you into coding shape. …

Tips for choosing your organizational designs.

Image for post
Image for post
Photo by Braden Collum on Unsplash

I first heard about Kent Beck’s product development triathlon metaphor in 2016 when he visited the ThoughtWorks office in New York. Kent Beck identified three stages of the product development cycle — Explore, Expand, and Extract, and proposed that either agile or waterfall development model could be appropriate depending on which stage you are in.

The framework has helped me find words to describe how organizational designs should evolve based on the product development cycle. Below I will outline three patterns of organizational design to complement Kent Beck’s 3X.

Image for post
Image for post
Search Engine by manypixels


When you are launching or planning for a new product, you are exploring a new market. You are the new kid on the block. Your resources are limited — a couple of software developers, a three-month cash runway, and your day job. It is time for making lots of small bets and hopes for at least one big win. …

Tips for improving your coding style

Image for post
Image for post
Photo by Glenn Carstens-Peters on Unsplash

As a new programmer, you may find it frustrating to have to consistently write grammatically correct sentences in order for the computer to understand you. This is because — unlike human languages — programming languages are unforgiving. A misspelling or misplaced punctuation can render an entire program unusable.

However, a programming language is a communication medium for both computers and humans. After overcoming the obstacle of making computers compile your code, you have to work on making your code legible to other programmers so that it is easy to extend and maintain. Your coding style reflects where you learned to program, what editor you use, which languages you favor, and how you collaborate with others. …

Solving the wrong problem is often more costly than building the wrong solution.

Image for post
Image for post
Photo by Jurica Koletić on Unsplash

As a software developer, I am a natural problem-solver. I take one look at a problem and immediately start thinking about how to solve it in my head. However, plunging head-first into a solution without seeing the big picture first is often counter-productive.

In this article, we will take a look at three software development practices that can help us find the right problem to solve. But before we talk about coding, let us first take a page from product management–the profession specializes in finding problems.

What Is Problem Space

The product development process consists of two stages — problem space and solution space. Problem space is where you attempt to identify a customer need. Solution space is the product that addresses the need. Working in problem space involves listening to customers, capturing their needs, and asking questions to paint a picture of their situation. …

Take off the coding training wheels!

Image for post
Image for post
Photo by Daniel Schludi on Unsplash

My partner recently enrolled in a virtual coding boot camp. As I watched her tackle her first programming lessons, I was surprised to find out how much of what I learned in school did not translate to work.

In this article, we will identify four programming constructs that may have been foundational when you first discover how programming works–but will slow you down on the next leg of your journey.

Unlearn Loops

Loops are one of the first constructs you learn as a student of computer programming. …

You, too, can bake a perfect Chrome Extension following this recipe!

Image for post
Image for post
Photo by Reuben Mcfeeters on Unsplash

Chrome is the most popular web browser on the planet and takes up nearly 70% of the market share. Chrome Extensions are small software programs that spice up your web browsing experience.

You can whip up an excellent extension by simply mixing three essential ingredients: HTML, CSS, and JavaScript. And then toss them all into one big zip file. But why start from scratch when you can leverage a rich JavaScript user interface library and stay in the comfort of your familiar development environment?

In this article, we will take a look at a recipe that combines React and its enabler, Create-React-App, to make a tasteful Chrome Extension. …

I don’t want to use Redux for state management. What are my options?

Image for post
Image for post
Photo by Free To Use Sounds on Unsplash

Redux is a state management library often used in combination with React. The popular JavaScript library follows the Flux architecture pattern and helps you manage a complex application state with precision and control.

Redux is the default state management solution for many. However, we shouldn’t fall for the law of the instrument. In this post, we will explore several alternative state management techniques using React Hooks.

The code examples in this post are edited for clarity and readability. …


Li-Hsuan Lung


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