Understand Selenium and Web Driver

Integration test, system test, or end to end test in web development are a really helpful tool to make sure the application work as intended. Because it actually simulates a real browser and tests the application just l


Announce apollo-reactive-store

State management in frontend is always a problem. Unlike backend, the state in frontend world is pretty fragmented. Not only the local state at each component, the remote state from API, also the global state that is sh


Abstraction and essential complexity

TLDR: Inline abstractions and simplify logic to write better code. Programmer’s work today is based on different levels of abstractions in the form of APIs and modules, they hide large amounts of implementation detail


Top 10 mistakes senior developers make

There is a lot of article talking about mistakes made by junior developers. But as the experience goes, people encounter different problems and make different mistakes. Here I am talking about some of the mistakes I mad


Why inheritance is bad?

It’s been a while ago, when I first study programming in college. I remember the moment when professor introduce us object oriented programming by the classic dog and cat example:

Dog is an animal, Cat is an animal, therefore, they can both share the behaviors of an animal.


Good engineer, bad engineer

This an article inspired by the book “Hard things about hard things”, the “good product manager, bad product manager” section. Which is a really good way to explain what is the good quality of a position and what is the opposite behavior of that.


Bash like a marshall

Bash is a programming language design for interact with user. Which have a very flexible syntax to take command from user.
But in the bottom, it’s just a programming language like any others, it provides variable, function and flow control.


Command-t.vim crash on yosemite

The bug

Today I updraged my mac osx to 10.10 yosemite,
However, the command-t.vim plugin does not work correctly with new os.

I saw the command-t.vim could not load the C extension message from vim.


What I Talk About When I Talk About Pairing

Pair programming, I used to heard a lot about it.
Some said, it is fun.
Some said, it produce good and clean code.
Some said, you can learn from your pair everyday.
Therefore, When I have chance to join a pair programming shop. I took the offer without any hestitation.

So after 7 months of pair programming. I thinks it’s a good time to talk about it.


Review of 2012

2012 is a great year for me, lots of new things and new experience happened,
and I also explored and learned lots of things in software from work and projects.

In the last day of 2012, I think it is a good time to review what I have done in this year,
what I can improve and my expectation for the incoming year.