Skip to main content

Looking back on my 2021


As of this writing, the COVID-19 pandemic still persists. In Vietnam, people have just passed a horrible time of lockdown, we needed to stay at home for nearly 4 months. I have even got covid infected and spent a quarantine time for more than three weeks.

My balcony garden

More books read

This year, I read 22 books of various kinds. Reading books becomes my habit.

English books

  1. Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People
  2. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
  3. Leaders Eat Last: Why Some Teams Pull Together and Others Don't
  4. The Tao of Microservices
  5. Software Architecture for Developers: Volume 2

Vietnamese books

  1. Nhân tố Enzyme 
  2. Nếu biết trăm năm là hữu hạn
  3. Đạo giáo
  4. Tâm Thành và Lộc Đời
  5. Lịch sử tư tưởng Nhật Bản
  6. Totto-chan bên cửa sổ
  7. Thiền sư và em bé 5 tuổi
  8. Swiss Made
  9. Suối Nguồn
  10. Hạnh Phúc và May Mắn
  11. Một đời quản trị
  12. Con chó nhỏ mang giỏi hoa hồng
  13. Cách nuôi dạy những đứa trẻ dễ cáu giận, khó bảo
  14. Muôn kiếp nhân sinh
  15. Fear: Trump Ở Nhà Trắng
  16. Dấu chân trên cát
  17. Biết chính mình

Tech Lead at UMB Solution (ubitec)

Tech Lead was my official job title at ubitec. I have worked closely with two teams (7 developers in total) for developing two products ubichat and ubibot. My responsibilities were divided into three following roles:

- Software engineer: joined teams to implement/solve several challenging problems

- Technical consultant: for developers, Product Owners, Product Managers, and customers.

- Mentor: grew the teams in both technical skills and soft skills

Mental care

In my spare time, I enjoyed reading books and watching videos. I have been doing "meditation" in ... every moment in my life (no kidding 😊)

The following was my favorite 2021 Youtube channels:

- The Quoc Khanh Show Premium (TQKS Premium)

- Bar stories - Dustin On The Go

- Johnny Trí Nguyễn

Making life easier

This was a tough year due to COVID, however fortunately I could get my car driving license and buy a new house.

---

Happy new year, 2022!

Comments

Popular posts from this blog

The HelloWorld example of JSF 2.2 with Myfaces

I just did by myself create a very simple app "HelloWorld" of JSF 2.2 with a concrete implementation Myfaces that we can use it later on for our further JSF trying out. I attached the source code link at the end part. Just follow these steps below: 1. Create a Maven project in Eclipse (Kepler) with a simple Java web application archetype "maven-archetype-webapp". Maven should be the best choice for managing the dependencies , so far. JSF is a web framework that is the reason why I chose the mentioned archetype for my example. 2. Import dependencies for JSF implementation - Myfaces (v2.2.10) into file pom.xml . The following code that is easy to find from  http://mvnrepository.com/  with key words "myfaces". <dependency> <groupId>org.apache.myfaces.core</groupId> <artifactId>myfaces-api</artifactId> <version>2.2.10</version> </dependency> <dependency> <groupId>org.apache.myfaces.core<...

Why Functional Programming Matter

What issues do we concern when implementing and maintaining systems? One of the most concern is debugging during maintenance: "this code crashed because it observed some unexpected value." Then, it turns out that the ideas of  no side effects  and  immutability , which functional programming promotes, can help. Shared mutable data is the root cause Shared mutable data are read and updated by more than one of the methods. Share mutable data structures make it harder to track changes in different parts of your program. An immutable object is an object that can't change its state after it's instantiated so it can't be affected by the actions of a function. It would be a dream to maintain because we wouldn't have any bad surprises about some object somewhere that unexpectedly modifies a data structure. A new thinking: Declarative programming There are two ways thinking about implementing a system by writing a program. - Imperative programming: has...

Styling Sort Icons Using Font Awesome for Primefaces' Data Table

So far, Primefaces has used image sprites for displaying the sort icons. This leads to a problem if we want to make a different style for these icons; for example, I would make the icon "arrow up" more blurry at the first time the table loading because I want to highlight the icon "arrow down". I found a way that I can replace these icons with Font Awesome icons. We will use "CSS Pseudo-classes" to achieve it. The hardest thing here is that we should handle displaying icons in different cases. There is a case both "arrow up" and "arrow down" showing and other case is only one of these icons is shown. .ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s { background-image: none; margin-left: 5px; font-size: 1.1666em; position: relative; } .ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s:not(.ui-icon-triangle-1-s)::before { content: "\f106"; font-family: "FontAwesome"; position: ...

Avoiding Time-Wasting Pitfalls in Agile Estimation

If you do Scrum at work, you might be very familiar to the estimation in Planning 1 . My PO has once complained to my team that why it took too long for estimating just a story. Wasting time results in the planning timebox is violated. I give you some advice from my experience: Estimation is estimation, not measure. When you read some requirements, you see some risks but you actually don't know how complicated it will be.  Don't try to influence the others by explaining how to do it in too detail. Just keep in mind that you know the business domain pertaining to customer needs and estimate how much effort you will spend for it. The effort should be compared to your baseline one that you use for a simple requirement. The bottom line is we do "relative estimation", not absolute estimation. For example, you are asked to estimate the height of a building. Basically, you just need to answer "how many times higher is the build than your height"; you do...

When we don't see the sun, we see other stars

What are your motivations for creativity? - I want to make a change. - It makes me happy! It is a need of my mind. How to be creative for a thing? There are two steps: - See the thing as every people see it - Think about a new different thing from it How to think about a new different thing? There are two ways: - Forget all things you have already known. - A whack on the side of your head. ;) This was what I have learned from the following great book: source: Amazon.com Well! A physical whack on the side of your head is needed sometimes but the meaning behind is that you need to break these 9 following locks on your mind. Remove them! The lock #1: "The correct answer" We all learn from schools that there is only one correct answer to a question. For example, a proposition is only true or false in Algebra. In reality, there are always some answers to a question basing on a point of view. For example, number 6 becomes number 9 if you look it ...