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

Coders are NERDS | Learning English with Podcast

Let's learn three English vocabulary words based on real-life context through a humorous video about the life of software coders, especially at big tech companies when they work from home. Credit to Joma Tech. 🤓

Junit - Test fails on French or German string assertion

In my previous post about building a regex to check a text without special characters but allow German and French . I met a problem that the unit test works fine on my machine using Eclipse, but it was fail when running on Jenkins' build job. Here is my test: @Test public void shouldAllowFrenchAndGermanCharacters(){ String source = "ÄäÖöÜüß áÁàÀâÂéÉèÈêÊîÎçÇ"; assertFalse(SpecialCharactersUtils.isExistSpecialCharater(source)); } Production code: public static boolean isExistNotAllowedCharacters(String source){ Pattern regex = Pattern.compile("^[a-zA-Z_0-9_ÄäÖöÜüß áÁàÀâÂéÉèÈêÊîÎçÇ]*$"); Matcher matcher = regex.matcher(source); return !matcher.matches(); } The result likes the following: Failed tests: SpecialCharactersUtilsTest.shouldAllowFrenchAndGermanCharacters:32 null A guy from stackoverflow.com says: "This is probably due to the default encoding used for your Java source files. The ö in the string literal in the J...

Git Feature Branch Workflow

Motivator It's important for a team to have an agreement on how the changes of source code should be applied. According to projects and teams size, we will define a workflow or select one from recommended workflows ; the "Feature Branch Workflow" is a candidate. What is it? - One branch "master" for main codebase - Several separated branches for features development Why should we care? - Be super simple and allow each developer works on a particular feature. - A stable codebase (master) benefits for continuous integration (CI) environment - Leverage "Pull request" for Code review How it works? A lifecyle of a feature branch (usually created by a story) 1. Creator creates a new branch from a story.  For example: "ABC-1-setup-projects" 2. Creator checkouts the created branch and works on the branch (commits, pushes) 3. Creator has done the feature, he uses "pull request" to merge his branch into branch "master...

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<...

Gzip upload on browsers

Today, I faced a problem that I could not upload my archive file with gzip format on Firefox, even it worked on Chrome. I was using macOS. My application had a setting to whitelist accepted files. I’ve already added "application/gzip" to that list. "It’s strange!", I thought. I finally figured out that my uploaded file's type actually was "application/x-gzip" on Firefox. I also asked my colleagues to check their uploaded files on Window and Ubuntu. Hmm… they were totally different! It was "application/x-compressed" on Window, and was "application/x-compressed-tar" on Ubuntu. In fact, gzip is already standardized by IANA. There is a note in RFC-6713 as below: "Some applications have informally used media types such as application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, and gzip/document to describe data compressed with gzip. The media types defin...