Skip to main content

My 2017 Review

Passion for System Design

After finishing a one year project, my longest stable team (lasted for 3 years) was separated into two smaller teams. Sadly, but that was a good chance for me to become a key member in my new team. My preferred skills were about system architectures; therefore most of the tasks of building the application structures were handled by me. In order to enhance my design system skills, I have spent much my time for reading books closely after work. These following books help me a lot.
- Object-Oriented Thought Process | Matt Weisfeld
- Head First Design Pattern | Elisabeth Freeman and Kathy Sierra
- Java 8 in Action: Lambdas, Streams, and Functional-style Programming | Alan Mycroft and Mario Fusco

Junior Technical Architect

I was requested to join a technical architect team (aka Team. Alpha) where I actually had gained experiences almost on interviewing candidates for my company (lol). Besides, I noticed myself must improve the skills of convincing people because I had had a strong debate with other members once in a sharing session (yes, I failed). It was really tough to convince others when introducing a stuff/an idea was totally new. But, "Do it Anyway" because debating makes problems clear.


New MacBook

This was something very normal but I think it's worth the money for tackling a new experience on a new operating system (macOS). I really loved it!

Facing challenges in finding a new company

I had worked at my old company (Axon Active Vietnam) for more than 4 years. It was not too long but I felt that it was the time for me to move out of my "safe zone". I had spent much time for interviewing to select a company for my new journey. Sadly, I had failed in a lot of places, from Outsourcing to Product to Startup companies. It was really a frustrated decision but eventually, I made a resignation when I didn't have a new offer. And, even my manager who also suggested a raise to keep me on my team. I appreciated that.

Fortunately, I had received several offers (exactly 3) at the end days before I left my old company. The following was my log: (Company | Applied position | Interview Notes)
  1. NVG | Senior Web Java Developer | Various questions about frameworks are being used.
  2. LenderRate | Developer | Algorithms (level: hard, difficult).
  3. ContentNet | Senior Developer | Deeply technical questions about Java core, design patterns and how to approach a technology.
  4. Absolute Vietnam | Developer | Deeply technical questions about Java core (but, it's my strong points).
  5. Innotech | Full-stack developer | Behavior questions (quickly, only <30 minutes).
  6. FPT | Developer onsite longterm in Singapore | Specific frameworks (Restful API, NodeJS, Microservices).
  7. Adnovum | Professional Developer | How you understand your most favorite projects and used technologies; algorithms (level: easy/medium).
  8. Freelancer with my beloved team | So, I passed it without conditions (Haha).
  9. Politely declined to interview at Zalora, SAI GON BPO.

Winning my first project with my freelance team

With a strong spirit of a startup, my team focused on trying to make our first project super succeed by providing a good quality and fast-building application. It was not only collaborating well with customers but consulting them to have a "better" application.

The following were key values of my team:
- Having the same vision: sharing a "can do" attitude. We organized some practical sessions each sprint such as knowledge sharing, code reviewing, and retrospective.
- Focus: reflection and adaption on whole sprint goal, not individual tasks status.
- Being agile: being flexible/effective at work rather than following strictly a process.

My desk at CirCO CoWorking Space

Happy New Year! 2018.

Comments

  1. Holy crap! but, it was cool. Algorithms can be called as "Chi" in Kung Fu!

    ReplyDelete

Post a Comment

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

How to apply Lean - Kanban for your business

This is the topic of Scrum Breakfast meetup this time, speaker: Ms. Phuong Bui - Technical Project Manager of YOOSE Pte. Ltd. http://www.meetup.com/Scrum-Breakfast-Vietnam-Agile-and-Scrum-Meetup/events/230313727/ Lean comes from Lean manufacturing is a method that focuses on elimination of wastes. In other words, this is a set of principles for archiving the quality, speed and customer alignment. The first time I knew about the term "Lean" is  from the book Software Craftsmanship . Sandro recommends if we want to transform our pet projects into a real business, we should get familiar with Lean Startup concepts. In this talk, Ms. Phuong pointed out some major wastes includes information (ex: unclear requirements), processes (ex: waiting), physical environment and people. Knowing what the problems should be the best way to eliminate them. The difference between  Single item flow and Batch processing is the second main point; and it is the Lean's idea. Batch pr...

Why Business Rules Engine Matter

"A good DSL minimizes the 'communication gap' between a domain concept and the code that implements it" - Robert C. Martin A Use Case It looks like adopting a new technology is always driven by a business need. The organizations, such as banks, have their own business processes (such as data gathering and document management). These processes are different from others but usually the differences are not big. How do we build a product which can be reused the similar features but still be adaptable with the specific requirements of each bank? Then, the answer is we should have a library/framework. There is an idea that we can implement this library/framework by using a business rules engine. Which has the following benefits: Be able to modify implementation of business domain at runtime (such as XML, CSV) S ource code is more readable for both developers and domain experts. Therefore, source code can be consider it as a document Since Business Rules Engine...

A User Guide To Working With Huong

  Introduction I write this user guide to help us (you and me) have a good collaboration at work. I hope you also share yours. How I view success We all feel passionate and happy at work. We all enjoy discussing transparently. We take it easy to give and receive feedback. After all, we together develop and bring valuable applications to users. How I communicate I mostly prefer a face-to-face conversation. Just leave me a message on Slack if you don't want to come to my desk. For a big topic which takes more than 30 minutes, we should have a meeting. Only send me emails only if stuff is very formal or out-of-office hours Things I do that may annoy you I do practice the Pomodoro technique so that sometimes you see me in the "do not disturb" mode. Often to make things clear, I am at ease talking   frankly   with you. What gains and loses my trust It is easy to gain my trust when you commit to what you say. You show your passion and endeavors to achieve that. It is easy to lo...

Building Axon.ivy Projects on Bitbucket Pipelines

Read me  if you don't know what Axon.ivy (Ivy) is. Motivation -  Ivy projects are designed to be built on a continuous integration (CI) server like Jenkins - Today, Bitbucket supports for CI with Bitbucket Pipelines - We're using Bitbucket. Then, why not? It must be very cool and convenient for us if we can centralize our CI and VCS (version control system) tools in one place. Here is an approach We have to use a maven plugin called project-build-plugin  to build ivy projects. This plugin requires an instance of Ivy engine during building time. Bitbucket Pipelines allows us to specify our own docker image as a build environment. What we need to do  is to prepare our docker image with needed stuffs such as JDK, Maven, Ivy engine, etc. Step 1. Prepare Docker images For testing purpose, I already created two docker images: Maven and Axon.ivy engine. They are now available on Docker Hub This image for Maven using Oracle JDK 8 This image for Axon.iv...