Skip to main content

My 2022 Review

2022 was completely a mind-blowing year for me. Lots of changes happened at work. At present, things seem to be going to settle down, I want to look back at my year.

My balcony (2022)

Q1

At beginning of the year, I started with Metaverse and NFT research. I completed my first course about a new technology Blockchain on brilliant[dot]com which became my best favorite learning platform later on. Getting a certified IBM developer certification was also a good experience. I gained more knowledge of technologies including containerization, microservices, DevOps, and Cloud-Native. It triggered me to plan for DevOps toolchain enhancement for the company. Adopting GitOps practice was a good start. It is one of my main focuses for my position role as a Tech Lead. I was really impressed by the book “The Brief History of Time”. The story of Stephen Hawking was so inspiring. To me, it was one of my favorite books of this year. Sadly, this period was the time when some of my good friends were leaving the company.

Q2

Changing the organizational process was so truly difficult. Lots of discussions have been conducted to have the same voice for a group of people since the new role Engineering Lead was proposed for the change. What I experienced well in this period was that whenever I put my energy into something, all related things will come around me. And, franking is the only medicine to treat toxic sicknesses and environments. I started to sharpen my English pronunciation skills with ELSA speak app. I also spent time reading human management-related books including “The Mythical Man-Month” and “Peopleware”. I also spent a month interviewing for a new role as an Engineering Manager in a startup.

Q3

The role of Engineering Lead was adopted well. Working with completely new teams with new projects was an excellent experience. I have learned to work with new people who don’t have the same mindset as me. As a leader of the new teams, I understand more about the effortless approach to leading people. Getting the Professional Scrum Master (PSM) certificate helped me set up my working style as a Scrum Master with new teams. I affirmed that I should not be a hero but rather that I need to give more authority to the team to be self-organized.

Q4

Still, there were many things happened unanticipatedly. Another good member was leaving the company. It was the first time I joined team HR to define a process of annual performance appraisal. It took a huge time and effort. Some new practices were officially applied as a company standard such as Engineering Levels, OKRs, and the role of Team Lead. I also have experience with leading some development teams working on different projects built with different technologies. Giving clarity of the projects' roadmap for developers was my important job. Moreover, I have learned along with teams to solve different emerging project issues.

Comments

Popular posts from this blog

Creating a Chatbot with RiveScript in Java

Motivation "Artificial Intelligence (AI) is considered a major innovation that could disrupt many things. Some people even compare it to the Internet. A large investor firm predicted that some AI startups could become the next Apple, Google or Amazon within five years"   - Prof. John Vu, Carnegie Mellon University. Using chatbots to support our daily tasks is super useful and interesting. In fact, "Jenkins CI, Jira Cloud, and Bitbucket" have been becoming must-have apps in Slack of my team these days. There are some existing approaches for chatbots including pattern matching, algorithms, and neutral networks. RiveScript is a scripting language using "pattern matching" as a simple and powerful approach for building up a Chabot. Architecture Actually, it was flexible to choose a programming language for the used Rivescript interpreter like Java, Go, Javascript, Python, and Perl. I went with Java. Used Technologies and Tools Oracle JDK 1.8...

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

Multiple Inheritance of State and Implementation

Today, I was just curious about why an enum can not extend anything else. I took a look on the Oracle document here , and I found the answer is below: "All enums implicitly extend java.lang.Enum. Because a class can only extend one parent (see Declaring Classes), the Java language does not support multiple inheritance of state (see Multiple Inheritance of State, Implementation, and Type), and therefore an enum cannot extend anything else." I have been learned of it before. But, wait a sec...! Why Java does not support multiple inheritance of state? Since I have worked with other programming languages like C++, I was able to make a class extend some other classes. The short answer is to avoid the issues of multiple inheritance of state .  I wonder if other programming languages have these below terms but Java does. Multiple inheritance of state It is the ability to inherit fields from multiple classes. There is a problem and Java avoids it. "For exa...

[Snippet] CSS - Child element overlap parent

I searched from somewhere and found that a lot of people says a basic concept for implementing this feature looks like below: HTML code: <div id="parent">  <div id="child">  </div> </div> And, CSS: #parent{   position: relative;   overflow:hidden; } #child{   position: absolute;   top: -1;   right: -1px; } However, I had a lot of grand-parents in my case and the above code didn't work. Therefore, I needed an alternative. I presumed that my app uses Boostrap and AngularJs, maybe some CSS from them affects mine. I didn't know exactly the problem, but I believed when all CSS is loaded into my browser, I could completely handle it. www.tom-collinson.com I tried to create an example to investigated this problem by Fiddle . Accidentally, I just changed: position: parent; to position: static; for one of parents -> the problem is solved. Look at my code: <div class="modal-body dn-placeholder-parent-positi...

Attribute 'for' of label component with id xxxx is not defined

I got the warning in the log file when I have used the tag <h:outputLabel> without attribute " for " in xhtml file. It was really polluting my server log files. The logged information actually makes sense anyway! We could find an answer as the following: "Having h:outputLabel without a "for" attribute is meaningless. If you are not attaching the label, you should be using h:outputText instead of h:outputLabel." However, these solutions are not possible just for my situation. Instead of using h:outputText for only displaying text, my team has used h:outputLabel too many places. We were nearly in our release time (next day) so it is quite risky and takes much efforts if we try to correct it. Because the style (with CSS) is already done with h:ouputLabel . The alternative by adding attribute " for " the existing h:outputLabel is not reasonable either. I really need to find another solution. Fortunately, I came across a way if I cha...