Saturday, August 31, 2013

Troubleshooting

Troubleshooting
by Christian Mutaba

Over the past couple of years, I have worked with many great software engineers. When I worked at Cisco, I was lucky to work with two dear friends with very extraordinary skills. I think of them as great hackers. They were able to write beautiful code that made me nod and smile. Their work is pure art. I define great hackers as programmers who are:

1. Able to learn fast and get a lot of work done in very little time. (speed)
2. Able to write clean, algorithmically efficient and bug free code. (beauty)
3. Able to troubleshoot technical issues quickly. (accuracy)
4. Able to come up with great unique ideas, solutions or designs. (creativity)
5. Able to communicate complex ideas effectively. (simplicity)

I have worked with a rockstar programmer, a great mentor of mine, who could troubleshoot and fix an issue in 15 minutes that I couldn't figure out after 5 days of hard work and sweat. I noticed that back then, I used to use brute force. I didn't really understand how things worked. I just wanted to finish my task. Troubleshooting should be seen as a very good learning opportunity instead of a nightmare. When it comes to it, I have noticed that most programmers try to solve all the technical issues at once instead of using a dichotomic divide and conquer approach. They read the error message on the terminal or in the log file, and instead of making inferences, they expect the message to tell them exactly what to do next to fix the problem.

I once had to spend 36 hours at home troubleshooting an operating system issue of a computer that my friend and I built. This allowed me to learn a lot more about Linux. To become a better troubleshooter, you need to troubleshoot with a good attitude and embrace the challenge. When someone asks for my help troubleshooting an issue, below is a set of questions that I ask: 

1. What are you trying to do?  (if you don't understand what they are trying to do, you can't help them)
2. What are you doing instead?
3. If the error message is true, what else must be true?
4. What are the parts that work as expected? (divide and conquer)
5. Now, that we know the exact part that doesn't work. What should we try next?

Good luck!

The Evolution of Securities Trading

The Evolution of Securities Trading
by Christian Mutaba

In the beginning, people bartered. As society grew more complex, precious metals became the standard form of payment. Today, we use paper money, credit cards and checks to pay for goods and services. Not immune to change, the financial services industry has also evolved. Not too long ago, pit trading sign language and the art of screaming market orders were valuable skills. Then old-fashioned technology allowed traders to phone in market orders with brokers and fax trade allocation documents. Today, investment professionals use trading applications to relay messages with stockbrokers and everything is done in real time. By entering a few inputs on their computers, they allow their clients to become owners of a publicly traded company of their choice.

Behind the scenes, institutional investors cover specific industries while making bets on behalf of their clients. An army of economists and financial analysts study particular market segments and share their findings and recommendations with portfolio managers, who then decide which stocks to buy or sell and which accounts to allocate these trades on. Most portfolio managers work with traders who place stock orders on their behalf and help them reduce execution cost by minimizing market impact and commissions. Execution costs are an important determinant of investment performance and institutional investors are required by law to seek the best trade execution for their clients.

Pit trading sign language and the art of screaming market orders have become outmoded. Today, trading rooms are much quieter and trading systems much more sophisticated. Advances in technology have given rise to High-Frequency Trading, a practice consisting of owning securities for a very short time, sometimes less than a second. Trading baskets of stocks using sophisticated algorithms has become common practice. The majority of securities are now exchanged via FIX, the Financial Information eXchange protocol. FIX increases efficiency, connectivity and liquidity in the market while reducing operational error and trading costs. Nowadays, electronic trading accounts for over 70% of volumes in the United States and nearly 90% of institutional orders are routed electronically.

Tomorrow promises further advancements in trading far beyond what is imaginable. The world is becoming very flat. With securities trading paving the way for the direction of the global economy, technological advances are sure to continually change the way business is done in the financial services industry.

Focus on ONE thing.

Focus on ONE thing.
by Christian Mutaba

I had lunch and an inspiring conversation with a former colleague. One thing she mentioned that I thought would be important to share is "focus on one thing". We tend to have too many things going on at the same time. The list of things we would like to do next is probably very long. It's safe to say that we typically find it hard to abandon good ideas and only focus on the very best ONE.

The most successful people in business or sports tend to focus on ONE thing and learn everything about it. It helps a lot when it's something they are very passionate about. Their focus gives them an edge over their competition. If it really takes ten years of grueling practice to become a world-class expert, then time shouldn't be wasted. We tend to confuse passion with interests, and career with hobbies, so we end up as jack of all trades instead of becoming really good at one. 

In a very competitive environment, the lack of focus can be a recipe for failure. It's better to be known for one thing you do exceptionally well. Choose it wisely, learn all about it patiently, and become amazing at it. All in all, the lesson of that day: stay focused.