Category Archives: Freelance

Communication problems between distanced members


Lacking communication….

If money is your startup’s problem, you should open a branch to outsource some development work into cheaper countries, like Vietnam. Then, you would exchange 1 problem with another, probably harder than you thought.

Communication: this is a key. Effective, efficient, going into the right way. In startups, there are much less time for documentation. Things have to go really fast, features after features, products after products. It is much better for startups to go fast, try with different ideas until they get it correctly. And when they get the idea correctly, it is time to execute, as fast as possible to get the products into the market. Distance difference is a main barrier for communication, talking over Skype feels very different from talking face-to-face. Another barrier is time difference.

The time difference between Vietnam and America is huge, 10-15 hours time difference. When the Vietnamese developer wakes up, their colleague sleep, and vice versa. I have seen some approaches to this problem: scheduling out some fixed time in the day or week, to meet, or someone has to sacrifice. The first one is not normally working for startup when lots of communication needs to happen. The second one will not last for long.

2nd professional year


Success is moving from failure to failure

Success is moving from failure to failure

So, today is the end day of my second year of professional working. As normal, I take a look back my career and see how it is going, what has happened over the last year and if it is going well with my old plan here.


What did I do?

I planned to learn more and work more in the technology, gain skills in Artificial Intelligence, Web and Mobile development. Almost all of them fail. All reasons started from this CMU scholarship admission that brought me back to Australia.

It was a huge chance, a chance that I had been dreaming for. It was not just the excellent environment of CMU, it was not just the reputation of this university, it was a chance for my own business. Coming back to a good market, having chance to work with smart people and starting inside a uni was a good chance.



So, I spent my time here studying finance, economics and entrepreneurship. I also spent most of time building up and trying different things, from outsourcing, writing book to product development. Lots of lessons, lots of new things and lots of failures as well. I again, grew up much faster than I ever did, just as the first time I went oversea to Melbourne. A lot of pains, but also a lot of gains.

What did I learn?

Well, I learnt something more about finance, economics and accounting. That helped me to solid my money management skills a little bit. It is better not to be fooled by those financial and business guys :)). I learnt from both the theory inside CMU and both from the work. And I sometimes had to pay more for the real life to learn.

I also learnt about sales, marketing and investment for both Android and iPhone apps. Go over 2 markets, learn different techniques, become a salesman and a customer support sometimes, all are painful when all look like a new job for a geek.

Management is also something I learnt more from real life than some boring courses in CMU. Painful and stressful sometimes, but I got lessons out of it, adjust more for the real life and moving forward.

Working deeper in some iphone and android project. I also gained and solid my iPhone skills after writing the book about it. Starting to learn android development. That’s all for my technical skills this year.

What will I do for this coming up year?

I now look for more chances to grow rather than just outsourcing and earning money. I am now working on a new and innovative project called Hearie (that I will write about it soon). I still need to figure out a good market for it but I still love doing it and it is moving ahead. That’s good.

A good fact is: failure always hurt, sometimes it damn hurts, but I learnt from it well.

What’s the biggest lesson I learned so far this year?

Lesson over plan and time management

Biggest lesson this year

My learning progress this year has been increasing so fast, many things change in my life for the last 3 months. I changed to new living environment, new learning environment and start up my business when I came here. There are lots of lessons that I learnt as a manager in my new startup and a student in CMU. I think the 2 biggest lessons I have learnt so far this year are: planning and time-management.

Plan and Vision

Let me tell about my story first. My plan has been changing every month since the last November. The event that I went to CMU has changed my plan for my master degree and my career. You can read over my past plan here. I had a plan to work hard and plan for the master degree 2 years later. Then that plan changed. Next, I plan to study hard in CMU. Then, chances came and plan changed.

The main point that I want to get is my visionary. My vision and objectives over all of the plans do not change. I want to become an entrepreneur and build something that can change the world, something innovative in terms of technology and business. Planning is a tool for me to set up my vision, to see what will happen for me and other trends and I am more than willing to change any plan when necessary.

I have learnt significant lessons over financial planning in my CMU, which will help me over my company growth a lot. I think that this is what I lack from my undergraduate career. Money. Financial. These are important for any business technology people. I believe if you want to be successful, you have to understand about 3: Money, People and Technology.


The last few months, I ran in a crazy way, not like ever before. Look, everybody, who knows me, will know how fast I learn, implement new ideas and improve myself. However, I never see I learn and work at that crazy speed before. Lots of things got done, lots of breaking news. And I am still looking for more.

There are a couple of issues and lessons I learn from that fast moving. Time-management. I got a few problems at the first time when I have too many things to do than the time I can have. Then, I try different approach to optimize my time, calendar, todo list and time saving strategy. I now work much more efficiently than months ago and can really focus on a thing that I do. That’s why I love moving fast. Only by moving fast, you can learn really fast.

Again, what I want to say is you have to focus, and have a good timing management skills to control your time. Time cannot be bought!

Installing App with iPhone Configuration Utility

iPhone Configuration Utility

iPhone Configuration Utility


I always have problems finding a good tutorial for my customers whenever I send them the adhoc app for testing, so I write this post to have a basic place for me and everybody else to send to their beta tester/customer without touching to iTunes with the crazy syncing process. This can be good for JailBreak iPhone as well but this is another story.


1/ Download iPhone Configuration Utility.

You can download the iPhone Configuration Utility for Windows here, and for Mac here.

2/ Plugin and find your device

You can find your device easily, and then choose add button as shown in the red box

iPhone Configuration Utility - Device

Show Devices in iPhone Configuration Utility

3/ Select your app

Open Your File Browser and select the file you need, in this case is

iPhone Configuration Utility - SelectFile

Select Application File

4/ Go back to device and open the Applications Tab

iPhone Configuration Utility - Applications

Applications Tab

5/ Installing the app in

iPhone Configuration Utility - Install Applications

Install Applications


Remote working and management

My Office

My Office

Working as a freelancer, I have to deal with many remote works, including working remotely with my customer, my colleagues and my employees and it certainly has some different difficulties from other sitting together jobs. Here are lessons that I have been learning from these jobs:

Our good tool for communication is skype, IM and teamviewer. We try to keep a good and frequent communication with clients before our approach is too far from what they expect, or in case they want to change their requirement frequently.

As other oursourcing jobs, it is normal that we have to wake up early or sleep lately to match clients’ time as well as developers’time. Communication requires lots of patient and understanding from both sides. Many clients told me that they never meet a software developer like me, who can sit down, listen and talk with them about what they need, how to improve their app’s qualities. I am happy with this commendation. Sometimes, I even do not need to ask for bonus, but they are generous to give me more bonus to reward my efforts working for them.

Remote management requires trust on your employee. I am never a fan of a strict manager. My strategy is to manage adult, not manage children; therefore, we have to trust them working hard and passionate. We try to hire best developers that we can, and they should do their jobs automatically with integrity without any strict control from managers.

People may keep asking me how I manage my employees when I am in Australia, how to prevent them from cheating me. I do understand that with a loose management like this, it is hard to ensure 100% no cheating but whenever I hire a best developer with high motivation, they will just work on it themselves. An important part of managing is to foresee, to plan over the next few months to few years strategies not to just stand behind every developer to make sure they do not cheat. Trust and integrity are important.

This reminds me the time working at MultiNC, my first job. My boss was never in office, rarely asked us where the project was going on. What we, as developers do, is to try our best to create a best application based on the strategy that we set up. We frequently brought the products to the manager and asked for feedback.

Trust will relate to self-motivation. You can only motivate yourself when you know that your managers trust you and you feel happy and freedom about your work. I would not be surprised when many developers feel bad about their jobs and think that they just do low level jobs. Because managers treat them as resources, give them low level jobs and never trust them in doing their jobs best. Money is not enough to motivate people. For me, people are motivated by giving them enough money, enough challenge and enough respect to do what they love doing.

Freelancer Lessons and Strategies

freelancer jobs

freelancer jobs

As my plan in Adelaide, I want to get some job to earn money as well as keep me up to date with industry technologies. However, this turns out to be much harder than I believe when Adelaide is such a small city that does not have many IT companies here.
Then, I started my second option in my plan to looking for freelancer jobs and going to websites that offer freelancer jobs to see what I can get from there, and things are growing up fast enough and I learnt some key lessons over the my new job.



Price was my first concern over deals and bid to get accepted a project. However, I can see that most of times, price is not the top priority for employers. What they care is they can have a high quality product in a short amount of time with a reasonable price. My strategy is to pick a fixed hourly rate for myself when competing and then just calculating over the number of hours I need to work and give them a general price.
I try to convince people about quality, in many terms: communication and product. I think it is true for any work with clients to try to exceed their expectations, try to understand their problems well and do exactly what solves their problems. The price can be higher but we can save time, money and make people feel safe, they would hire us. So, don’t aim for only price. Put one that is reasonable and prove clients that it is worth every penny


This is always a way to cut down the business cost. People hire me because they want to look for more reasonable price with the same quality. And I can make another step to outsource them back to Vietnam developers. It cut down the price for me and the client and I can save my time to more important jobs, such as studying in my university 🙂 (Supposed to be the most important one)

There are certainly more aspects about management when you have to do outsource and communication with customers when both of these are remote only. I don’t forget about technology lessons that I learnt and expect to learn and work over these freelancer works. These will be shared on the next entry.


Image source:

My Career – A year look back and fro

vodkhang's career step

vodkhang's career step

It has been almost one year from my first day into my career (4/11) and since that day I have learnt a lot of things and sharing lots of things in my blog, stackoverflow, facebook and twitter. I will try to summarize and make a general view for my career in the last year. I will also give out my vision for my career for the next year

Web Development
My first work is Scala researching – a still hot technology and growing quickly until now.

Although currently, I do not work much in Web Development, but I will try, for sure, come back to this field again. Why? My vision about this field is still hot, highest and most challenging technology for scalable system is still here with the born of lots of things like Cloud Computing, Google App Engine, Scala, Ruby and Clojure. Maybe my next programming language for the web is Ruby. I already have the intention to jump into here. Hope that my colleagues in KMS can help me to catch up this technology fast.

The good thing about Web Development now is that we have Google App Engine and some App Store for the web is growing. With the born of Cloud OS which will happen soon, I hope that I will have the time and chance to come back, either individually or as a developer in the company.

Artificial Intelligence
This area is cool by its name and it is part of a reason I went to Melbourne last year. I had chance to work full time on it and even it was not a success, I learnt a lot from it. What I think is that I will try to focus on Computer Vision and Machine Learning (and may be Agent system) with the intention to apply them into iPhone someday. Why is iPhone? Because I still need to do something with commercial purpose and dealing with iPhone will at least give me some financial benefit in short term. And with iPhone and client technology, I don’t have to deal with massive amount of database problem which I have no chance to practice.

Related to Artificial Intelligence, I intended to take Phd from years ago. However, my decision now is something industry oriented rather than academic environment. I appreciate the academic environment, which is good to work and learn what you like but for now, I think I do not prefer it.

Mobile Development

I came to this area by luck, I didn’t really intend to jump into. iPhone programming is cool by its design, working in limited environment and dealing with memory management. There is another challenge for building iPhone app for me is how to make it the best for user, in other terms, usability.

I learnt lots of things about usability over last few months after reading some books: “Don’t make me think” and “User Interaction Design”. This viewpoint is a little bit from a designer’s perspective rather than a developer’s one. This is cool and make me understand more about users. To be honest, before I do iphone development, I am scared of designing (both in terms of graphics and interaction) and I don’t get love in it. But now, I think I can do at least interaction design well. The usability lession is a first and perfect one for overcoming scareness in my career.

Other stuff
Working in iPhone let me have time to learn something else that I am scared about. Git in terminal for example. I am scared of terminal and scripting and all those administration stuff before.

I am also trying to do a lot of testing in iPhone, from UI Automation Testing to Unit Testing which make me fall in love. I love the Google Testing Blog’s Term: “If it ain’t broke, you’re not trying hard enough”. Now, I feel so bad for anytime I cannot make a software crashed :). It is also good that I am still looking forward to improving my productivity day by day, automation process, hot keys and dual monitor was what I achieved. The next stuff will be emacs, for example.

My current love in technology can be said: “user, automate and scale”.

PS: To be honest, I hope that this is the first time I can focus 150% into working and researching. For the whole last year, I had to spend so much time in university assignments, exams and then GRE. Those things do not just take off my time but also kill my energy and passion so fast, while those things are either not challenging, boring or just I do not love it.