I don’t know if 11 years of experience in programming and three published books can be considered a career, but in this 11 years I got promotions I did not chase or even wanted so this must count for something. I do not know if I did anything different than others that try to succeed, but my attitude and hard work got me from a low place to a place higher than I even dared to dream so I thought it might be useful for others.

So here there are, the 10 commandments of my career.

1. Do your best. Sounds easy, sounds simple, but it is difficult to do your best. Especially on your bad days. The truth is you will spend at least 8 hours at work, you might as well use it properly, to deliver quality products and acquire quality knowledge.

2. If you do not like it, change it. Nothing is perfect in this world, thus companies are not either. You will get defective management, defective products to work on, defective people to work with. But nothing changes its state without interference and stimuli. So do your part: speak up and act. You would be amazed how much much you can change. A strong warrior is forged in battle so be thankful for the battles you have to take part of.

3. Ask. Do not expect people to know or care, what you want or need. If you do not ask, people will rarely know what you need and give it to you. There are also people who are shy and can’t say no, even if they don’t really want to give you something. So ask and insist when necessary.

4. Read your contract, know your rights. This should be obvious, but many people skip this part. You have more rights than you think. There are rules put in place to protect you from bullies that are high up the corporate ladder, because with great power sometimes it’s not the great responsibility that comes, but great assholeness. So know them and invoke them when necessary.

5. Never stop improving. This should also be obvious, but some people get cozy at their jobs and get complacent. The only constant in this universe is change. So ride the change like a surfer rides the ocean. Keep your mind fresh and open and enjoy all the wonders of changing time. People who are reluctant to change fade into the background of the company, those who welcome it shine like the sun.

6. Speak up.Do not be afraid to voice your concerns and make proposals. Be open. Be creative. Even in companies that are known to have rigid hierarchy and fixed processes, exceptions can happen when good ideas are strongly voiced. Provide feedback whether is positive or negative. People like being complimented for their good work and even if uncomfortable, people accept that they have to improve. Those that do not want to improve, will most likely quit at some point anyway.

7. Establish boundaries. Be explicit about your do’s and dont’s. For example, it’s ok to state upfront that you do not like overtime, or working in shifts. Preferably do this at the interview, but if you were ok with this at first and then later some changes in your life make you incompatible with this sort of activities, do not be afraid to communicate it. Contracts are not always explicit about your responsibilities and anything you are asked to do that is not in there, you can be negotiated upon.

8. Work with friends, not colleagues. We are humans, not robots. We make mistakes, we change, we have good days and we have bad days. Know your colleagues. The key to a productive team is to figure out when people are having a bad day and not pushing them and to figure out when they have good ones to challenge them. Also, building trust and friendship with your colleagues leads to a more comfortable working environment, that ultimately… does not feel like work. The truth is, for at least 8 hours a day we share the same space, breathe the same air with a select group of people. The key to a good collaboration is to know their strengths and weaknesses, and harness any of them to build a quality product.

9. Learn from the best. Learn from the worst. Learn from mistakes. And teach others. We are humans, we have genius epiphanies and brain farts. We have cheerful moments and we have low ones. Every experience is learning experience. From the best, copy behaviours that will make you the best. From the worst you can learn what not to do. From mistakes you can learn what was tried and failed, so you will know what not to try. And yeah, preferably learn form mistakes done by others. And teach others. We all die not knowing a lot of things. But be generous with your knowledge, share it so we all die knowing more things. ;)

10. Keep it simple. To make things complicated is easy. You don’t even have to try too much, just take something that you know and build it in your own personal way, thinking that you will never share it with anyone. To people that do not know what you tried to build and how, it will look complicated. The hard part in any domain is to build complex things in a simple way, so that others can understand it and contribute to it. So keep things simple. Implement complicated things in simple ways. Simple is the most practical way after all.

I know some ideas in the above paragraphs might related or even repeated. But, as Aristotle says: “We are what we repeatedly do; thus excellence is not an act, but a habit.”