Make the most of your career-defining moments.
There are a few turning points in a software developer’s career. Some change your perspective, while others will transform you. Check out this article to prepare or reflect on these episodes that define who you are as a professional.
You are not a real software developer until you bring down a server or crash an application in production. We all make mistakes. However, what you do next can set you apart from your peers.
You have to own your mistakes to grow as a professional. There are things you can only learn from…
The life-changing magic of tidying up legacy code.
Do you have a junk drawer at home? You know, the one where you store all the miscellaneous and occasionally useful objects. When you open the drawer, you see multiple sets of scissors, safety pins, thumbtacks, rubber bands, receipts, spare changes, and batteries you keep buying in case of a blackout.
If you are not organized, you likely have a junk drawer in your codebase, too.
It starts with a couple of one-off and uncategorized functions. You are unsure where these functions should go, so you dump them in a folder named…
Tips for accepting feedback with grace and dignity.
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.
Code review plays a crucial role in software quality assurance. A good piece of feedback may uncover defects…
A primer on search algorithms: depth-first and breadth-first.
Algorithms can be a nightmare if you only ever study them for exams and technical interviews. Wouldn’t it be much easier if you could have fun while learning algorithms? This article will guide you through basic search algorithms with examples to implement a traditional board game.
Go is a two-person perfect information game. Go's rules are simple; however, the number of legal game positions is astronomical, making the board game especially popular with mathematicians and computer scientists.
The rules of Go, according to The Rules and Elements of Go by James Davies…
CSS grid, linear-gradient, neumorphism, and a moment in Go history.
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…
Tips for implementing pay transparency at your workplace.
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.
Elevate your skills with deliberate practice.
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…
Tips for choosing your organizational designs.
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.
Tips for improving your coding style
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…
Solving the wrong problem is often more costly than building the wrong solution.
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.