Welcome to the That Fundamentals

Recently I have created website: That Fundamentals that I will focus most of my writing. Currently the site is under construction. It is more of experience of trying new thing. And it will become the main portal of mine.

what happens to this blog? Well, nothing, It will be running as it is since it is free. Later on I might category the content that should post in this blog or That Fundamentals Blog. The main purpose of my writing is to experience and improve my skill. Therefore, i will not limit myself to anything.

I have a busy period at work the last couple of months. Stay tuned, More will come 🙂

Value and output

For the past of 1-2 years, my life philosophy has changed. Let’s forget about the past of how i was. I will  focus on the present and the future I want to be:

VALUE and OUTPUT

Let’s talk about VALUE. It came from this valuable statement of Jim Rohn:

We get paid for bringing value to the market place

Jim Rohn quote

Everyone has his/her own value. And that value is evaluated by the market you are in. In my field, it is IT industry. Why do I talk about value here and now? Well, there are some:

  1. Because, I want to remind myself about “VALUE”. Therefore I am always aware of improving my value if I want to get more.
  2. Because, VALUE is the only thing you should put in the table when discussing your opportunity and your price.
  3. Because, you should give your price base on your VALUE.
  4. Because, you should NOT give your price base on your age. You are not get paid for your age or for your being old. NO NO, it does not work like that
  5. Because, I want to help people around me aware of the term “VALUE” and help them improve their VALUES.

For more, I suggest you listen to this life changing video

How about “OUTPUT”? What is it about? It is about your delivery:

Deliver result

I usually tell people that about my theory of this:

  1. You think you know 100 things
  2. When ask you to TALK about them, you can express using your speaking language 60-70 things out of 100
  3. When ask you to WRITE about them, you can write just about 30-40 out of 100
  4. When ask you to DO, you can do around 10 out of 100
  5. And you might DELIVER 1-3 out of 10 done

And many people I know (just the one i know, i do not speak in general) stop at step #1 and they think they have that value. Here is the phase:

I think I am good and I deserve better

And here is what I (will) reply:

OK. Wonderful, can you show me your delivery (output)?

Well, most of the cases, you know the result of the conversation.

So, my friends, if you are in such a conversation, make sure next time you will: Hey wait a minute, here are my deliveries 🙂 And you have a strong evidences on the table for the deal/discussion.

Have a nice weekend 🙂

Scrum Gathering 2015

I had a chance to attend the first Scrum Gathering 2015 in Vietnam. It was the first time of many things – more detail later. The event was about Agile/Scrum. Therefore, before I talk about my personal impression and feeling, you should clearly state about my background of Agile/Scrum:

NOT MUCH

I have been coding for long time and have been reading and applying (kind of) for quite a while. However, I am not applying Agile/Scrum as the scrum materials.

And I was not going to the event to learn Agile/Scrum either. I went because:

  1. It was an international event, speakers are well known – or at least I heard about them
  2. I have not ever been in any community conference
  3. Mind open: See how they are doing out there
  4. Meet new people

So, what did i feel? I felt good (event I had sickness that day 🙁 ). I felt involved. I met people from different countries, with different job titles. They were talking a lot about agile, about scrum, about processes, … They are truly professional. And I felt “LOST” in the beginning. I did not know how and where to get started. However, very quickly the community atmosphere helped me get started

Hey, man, you are here for a reason. Let’s open and talk to people

And I started to talk. Things just kept going as it should be.

However, there was one problem:

I do not know what to ask speaker

That was when I realized that I have many things to learn. I might write more about that in some later posts.

Next are some of the thoughts i had during the event, especially when people asked speaker of how to solve this issue, that issue, …

I started to think: Hey, wait a second! They focus a lot on this phase: Scrum welcomes changes. So they expect scrum to give them the tool to deal with changes from client/customer. And we also have the same philosophy in coding. We are as developer/architect told to design/code in such a way that: you can deal with requirement changes easily or less costly.

No one mentioned about that in the event 🙁 And when i mentioned about that in the discussion. They seems to ignore that, and show the gesture that: Yeah, we know and just move on with their discussion.

Everything comes to code, btw 🙂

PS: I had many things in my head after the event. However, the Mr. Bacteria knocked me down. Therefore, those are information that left in my head. I want to write them down before they’ve gone 😛

PS2: I will join this event next year for sure 🙂

Step back and think again: How much do you know about languages you are using?

Recently I did many interviews for position of both Jr. and Sr. Developers. Here, I will not talk about the interview itself, rather the lessons I learn from those interviews. First, let’s talk about the context: I am focusing on the technical aspects. And:

  1. I know those  candidates are doing very good job at their current position since they get good paid for their job
  2. I know what people usually put on their CV
  3. I do not want to criticise on anything or any skill they have. And I assume what they write in CV is what they mean.

In candidate’s CV, I usually see these:

  1. C#: Advance, 4-5 years experienced
  2. Java Script: Fluently
  3. Other technologies (frameworks, languages) that are said as: expert or at least many years of experienced

However, when I started to ask some questions about C#, such as Event, Delegate, Parallel, Value Type, Reference Type, Argument passed to method, … I got many bad answers. Some did not know Event and Delegate.

Then I asked myself a big question:

WHY?

Then I started to think: What happen if I step back, honestly ask myself these questions:

What do you really know about C#? How deep you are in the languages you are working it day by day? And what kind of features that C# offered that you use most?

Fact: I have been working with C# for 10 years. I code C# everyday. However, sadly speaking, I have not known the language, the tool that feeds me much. The same answer goes for other tools, languages.

For fun, let summary what I usually do with C#:

  1. Create new class
  2. Define class, member, property, method
  3. Basic types: int, DateTime, string, …
  4. Lately, I coded with asynchronous style, but not much

Most of the things I do with C# are there since C# was created long time ago

OK! That are enough for fact and sad news! What do I learn from all these:

Sharpen your knife

That is: I will focus on learning deeper in the languages I work with, in the frameworks I used. For everything I learn, I will tell myself: Take a close look, a deeper step. Make sure you understand it.

The more I know about them (the tools I used) the more joy I have at work.

So keep learning!

Some thoughts after the month of interviews

Over the last month, I had the pleasure to interview many candidates for position of both Junior and Senior developer. Those interviews taught me a lot. But first, let talk about the good news. We gave many good offers to many good developers. They are smart, enthusiasm, very good programming skills.

We had guy that is so fascinating in coding. All he wants is an environment that challenges him, give him enough thing to code. He is willing to code overnight. We had  guy that is very strong at best practice, design pattern, good coding skill, doing some pet projects, We had guy that can talk about technologies all day, … I am looking forward to working with you guys at RIT Home I am sure you will love your new home with wonderful colleagues.

However, from those interviews, I had some concerns, thoughts about the developers. My thoughts here are not base on any statistic or calculations. They are just my observations these days. Therefore, I’d better write it clearly about the “Context”.

Here is the context:

  1. My company is looking for developers, working mostly on .NET. There are many other techs that we are working on, such as NodeJS, Java script (AngularJS, Meteor, ..)
  2. We are willing to pay high price for good developers
  3. I am a developer with 9 years experience. I code most of my time in OOP with .NET. I care about code quality. I believe that a good developer must know about OOP, learn SOLID principles, improve skill everyday

There are all ranges of candidates applying for the job: Junior, Senior, Graduated, Project Manager, Architect. They were all good at what they were doing at their companies. I had no doubt about that.

The attitude and spirit! I believe that recruitment is a market where employee and employer meet their own requirements. So that is the win-win relationship. Company needs you, and you need company. No more no less. I met many candidates with that spirit. However, some of them did not. They came to the interview as if the company needed them and they did NOT need the company. You might be so confident about your skill but that is not the right spirit when you are applying for a job.

The value! We removed the logic test for Senior position. But, I asked them to solve an algorithm test. It will require candidate to identify the logic and write 2 loops to print the result (Pretty much the same like that). Well, some could not figure out the rule, some could not write the loop to print. And in the interview, my favourite subjects are: OOP, SOLID principle and some of design patterns. Many cannot explain what “Encapsulation” means. They coded for long time, but never heard about: Single Responsibility Principle. Maybe they have different views on programming.

The CV! In the skills set area, it seems that candidates write too much that do NOT belong to them. Some of the skills belong to the projects that they had a chance to be a member of, and that they had never used it in real. Don’t do that! It is not a good impression when the interview asked you since they thought you knew a lot but actually, you did not. You should write what you actually know, write what you are actually good at. At least when you look at your CV, you can realize that: You have not learned any thing new these days. And that opens a chance for growing.

The price! Some of them asked for ridiculous price. It is not about the company can pay that price or not. It is that, your skill does not match your price, in the context of company. You might be good at something else. But please remember that we are looking for value in the fields we wrote in job ad.

And why do you write about those stuff? If you are developers, and you are reading my blog. I hope you think again about your career path as developer. If you do not care enough about OOP, SOLID, Design pattern, I suggest you think again. If you want some help, you can ask. There are many good developers out there, they are willing to help you. If you are looking for a job, please come with the right attitude, come with cooperation spirit. That, you can contribute to the company, and the company can help you grow. When you name a price, please base on your real value, not what the company is willing to pay. Over the time, your value is the only thing that matters.

Enjoy the code, Enjoy the life.