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

JSF, Primefaces - Invoking Application Code Even When Validation Failed

A use case I have a form which has requirements as follow: - There are some mandatory fields. - Validation is triggered when changing value on each field. - A button "Next" is enable only when all fields are entered. It turns to disabled if any field is empty. My first approach I defined a variable "isDisableNext" at a backend bean "Controller" for dynamically disabling/enabling the "Next" button by performing event "onValueChange", but, it had a problem: <h:form id="personForm"> <p:outputLabel value="First Name" for="firstName"/> <p:inputText id="firstName" value="#{person.firstName}" required="true"> <p:ajax event="change" listener="#{controller.onValueChange}" update="nextButton"/> </p:inputText> <p:outputLabel value="Last Name" for="lastName"/> <p:i...

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

My must-have apps for daily work

There is no doubt that cool apps can help us be more productive and enjoyable at work. For the time being, I really love the following apps which are used by me almost every day. 1. A personal Kanban In fact, a personal kanban is the most useful app for me. Why does it matter? It is not just a to-do list, but it keeps me motivated every day because it helps me be able to know what my "big picture" is. I usually set up my plans together with a path to reach them.  KanbanFlow  is my preferred tool. KanbanFlow 2. A terminal Needless to say, a terminal is a must-have app for every developer, especially the ones use macOS/Linux. Due to its importance, I love to decorate and enhance it to be super exciting with various tools such as  iTerm ,  oh-my- zsh , and  thefuck . ;) iTerm + oh-my-zsh 3. A documentation "ecosystem" As a developer, I can not remember all things that I have experimented a day. Moreover, a document is really useful for sharing an...

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

4 Remarkable Notes for JSF Apps Using HTML5

In the previous post , I've already shared with you how my team consults clients by using a HTML prototype. This post is about the used technologies for reusing the provided HTML template and communicating with backend. What is the issue when using HTML elements with Primefaces components? Primefaces is a great extension for developing JSF web apps. However, it is really frustrating in case we have to make it work with an existing HTML template. Why? - Primefaces has its own theme for styling. - Primefaces changes the HTML structure. Therefore, that would be a huge effort to use the Primefaces' components to replicate the elements of the HTML template; especially it is impossible for images drawing by " canvas " tag. That requires us to find a better approach. Since Java EE 7 (introducing JSF 2.2 included), it supports to use HTML5 elements . The idea is that JSF components don't effect the style and HTML structure, so we can easily reuse the provided HTM...