Eng Confidential

Let’s first be frank and say that as coders we live pretty lavish lives compared to the rest of the middle class. Especially in the SF Bay Area! If anyone wants to complain about life, it shouldn’t be us. Really, just don’t!

However, I often wonder just how efficient we really are… working at these companies that are valued beyond what a cheap calculator could comprehend. What does it mean to be a coder and how do we improve?

Here are some lessons that I have either learned, realized or daydreamed.

1. Coding is not a gift from your good genes.
Someone once said that coding is a special gift you have. What a load of bull! I’m here to testify that it’s completely false. Anyone who can make simple decisions can in fact become decent coders. The rest is determined by interest and experience. More on those later.

2. Most of us are mediocre coders. >video
Be careful when you complain about someone else’s crappy code and your awesome ability to pinpoint the wrongs. I’ll be the first to admit that I have made this mistake many times. As coders we love to hate on other people’s work, and it’s easy to fall into the trap of being overconfident. The truth usually lies somewhere in between. Most of us are just mediocre coders. The key is to leverage unique strength from individuals, put the team in a position to benefit from mediocracy. If someone seems weak, mentor them. Give them some room to breathe and learn.

3. Don’t just write code, build products!
Before a single character of code, there must be a clear product vision. Make sure you understand that vision and make sure it’s a damn good one and worth your time. If not, speak up! We are just as responsible for the product as those product managers. Believe me they need a second opinion, and they will love you for giving it.

4. Don’t put all your eggs in the Scrum basket.
Too many folks think old school Scrum is still the bible of all eng processes. Yet all companies struggle with the same scrummy crap everyday! Long planning meetings, useless story pointing, sub-task hell, and unhappy managers using story points to calculate “velocity” in spreadsheets.
Try it out as a team first, don’t assume it’ll fix things. Learn to mix and match. Scrum is just a bucket of ideas. The team has the ultimate power to decide which pieces from it are actually useful. Take a good read on Lean Startup and Lean Manufacturing – they address some fundamental flaws that Scrum can’t possibly touch.

5. Middle managers are evil.
Zappos got it right. Middle managers need to be eliminated. I don’t buy that tech companies need a CTO, a CIO, a CPO, 5 VPs of engineering, 20 directors of engineering, 30 tech leads/scrum masters, 10 product managers… All of which want to lead a flock of engineers so they can say they actually did something for the day. Get rid of them already! Yes, fire them all… well maybe not the product managers quite yet. The flatter the hierarchy, the better the engineering team. It inspires people to work together and tiptoeing around middle managers is not something people care for.

6. Work for private companies.
They all become money making machines. Once a tech company goes IPO, the house of cards will eventually come tumbling down. The focus on short-term revenue would eventually consume the focus, vision and culture people once enjoyed. One day I’m sure this will be proven wrong, but I won’t hold my breath.

7. Startups aren’t for everyone.
Just because you know how to write code, does not mean you should work at a startup. While I do believe everyone should at least try it in their 20s… it really isn’t for everyone. If you are lucky, you end up in a place where you can learn from a lot of smart folks. However, more often you are overworked, and relatively underpaid for that matter.
When startup CEOs tell you their companies are worth millions… they are bluffing. Run away! If they are honest, and you happen to believe in their 5-year vision, with the full understanding that the equity they offer you is worthless… then you have permission to proceed.

8. Always over-communicate. 
There is no such thing as over-communication in the coding world. The truth is that most of us communicate better with APIs than we do with people. Talk to the product managers, even if you don’t have to. Make sure they know what you are working on, and make sure you understood their requests. Then repeat that process during the entire duration of the project.

9. Experience = # of failures.
Everyone can write code, a good coder is simply someone who had failed more and learned something from it. Don’t be afraid or even embarrassed to fail. Yes, you just brought down production. But you are that much more valuable to your next employer. Ok I kid! The truth is, failure is so mundane in the coding world, as long as Stackoverflow is around.

10. Don’t be tied to a particular tech.
Don’t get too close and personal with your favorite stack. Learn its shortcomings and watch for its replacements. This is a fast moving industry, don’t be afraid to pick up a new language to test things out. I wrote in PHP since high school some 10 years ago. Until about a couple of years ago, I started doing full stack JS and picking up Go. Embrace change, at the very least it’ll keep your mind fresh.

11. Find a positive influence and soak it in.
Listen to your intuition. Let the positive energy soak in from people who love you and willing to take a chance with you. Don’t waste your time with the negatives, be religious about this! In both personal and professional life. Get rid of the negatives and keep a healthy distance from them. Life is too short for people and things that are not worth the time.

12. Destroy all career comfort zones.
Don’t get too attached to career comfort zones. They are blackholes that will consume your soul, how little that you had to begin with. Look around a little, make use of those recruiter emails sometime. A new opportunity is not only refreshing, but it challenges you to constantly look outside the box, the things you think you already know.

Conclusion
The tech industry is unique. It teaches the mediocre coder that anyone dared to make a difference can indeed succeed. It teaches us that no matter how imperfect, the journey is the reward.

I fully expect this list to grow. And if you read this far… well I’m sure you must have something to say. See you in the comments.

NAS + HTPC – the latest alternative to Drobo and media center set-top boxes

It has been quite a while since I last wrote about my quest on building a NAS (network attached storage) box. The last article generated quite the interest among fellow enthusiasts, and I have had many people sending in suggestions and questions.
So here I am again – writing about my second NAS build that will address most if not all the issues that were brought up.

Requirements
The purpose of this build is both a NAS and a HTPC. I sat the box right next to my receiver and TV, I want to be able to record live TV, play 1080P HD movies and store my large photo/music collection.

  • RAID engine capable of real time drive upgrade/swap, like the Drobo
  • OS capable of running a media center frontend with live TV support.
  • Efficient hardware that is both powerful and eco-friendly.
  • Finished product must be quiet and easily serviceable.
  • Finished product must be cheaper than the most basic Drobo.

Continue reading →

Pages: 1 2 3

Environmentalism needs a facelift

Tree HuggerI studied Environment and Business at the University of Waterloo for 5 years and I have always kept quiet about some of the obvious ambiguities and ironies in the program. We were a passionate group of folks who believed there is common ground to be found between economic growth and environmentalism.

However, it was a difficult task when even the professors could not suggest a suitable alternative to nuclear power; especially considering the electric vehicle revolution. It soon became obvious that the modern idea of environmentalism was a dream and an impractical one – a dream that only seemed to have initiated costly marketing campaigns. The modern idea of environmentalism in a capitalist society simply cannot survive. Continue reading →

Galaxy Nexus Review + 30hr battery life!

Finally got me some time to write a new post! to kick things off… I must tell you that hell has froze over and I have given away my iPhone 4 and bought a Samsung Galaxy Nexus

Why???
I was an dedicated iPhone user up until now, and I was fairly happy with it. I jumped ship mainly because the Galaxy Nexus was on sale from Verizon for $99 (even cheaper now, $0.01 from Amazon)
I had recently moved to San Francisco, CA and needed a phone with a data plan. Secondly, this was perhaps the most rumored and anticipated Android phone to date. People have been talking about it for ages, from its code name – Nexus Prime which expected to house the latest and greatest Android 4.0 Ice Cream Sandwich OS.
Of course, the price was the major deciding factor here. $99 I paid for one of the best 4G phones on the market.

At first glance
At first glance the hardware was stunning. 4.65 inch AMOLED display with 720p at 316 ppi. This phone is right up there with the iPhone 4S in terms of pixel density and resolution. 1.2 GHz dual-core ARM Cortex-A9 with 1GB RAM gave this phone plenty of horsepower, although it is not going to break any speed records. The Verizon version came with 32GB of storage and the standard 1850 mah battery. Again, fairly standard stuff.

Battery Life
This was perhaps one of the biggest culprits at first glance. The phone lasted roughly 10 hours on 3G… and 6hours on 4G with moderate data usage. Those were absolutely horrifying numbers… things did improve slightly after the initial break-in period on the new battery. However, I was still getting disgustingly weak battery life. Continue reading →

What is up with tech IPOs?

First all, Happy New Year to all! This is the first post of 2012, and I want to give my 2 cents on why tech stock, especially new IPOs aren’t doing so hot.

Market not understanding value of tech?
This is a common excuse tech companies use to explain their lukewarm stock performance. Just look at Zynga (NASDAQ: ZNGA); their IPO was 100 million shares for $10 but the stock has been trading below the IPO price at around $9. Groupon’s IPO (NASDAQ: GRPN)  was also fairly flat. Initially the stock was priced at $20 raising the company more than $700 million but the price is hovering around the IPO price. So why have these new IPOs not taken off like Google or Yahoo back in the days?

I think the problem is not that investors don’t understand tech companies, but simply that they do not trust them to be profitable in the long term. We look at the business model of Zynga – games are web-based, free to play, simplistic game-play, and lead-gen supported. The gamer doesn’t have to actually pay for the game unless they need special game currency to be more successful in the game. In this case, they can  either take out a credit card, or fill in a bunch of offers from lead-gen sources to pay. The only innovation Zynga brings to the table is the idea of a social game where you can connect with your friends on Facebook. This does add major value to the game, but it is nothing new. In fact this has been done on consoles in years, Facebook is just a more convenient place than XBOX Live or PSN. Therefore, Zynga is surviving on a shoestring of an idea that is incomparable to the value that companies like Google, Apple and Microsoft brought to the market. How can investors get excited about Zynga?

I don’t think investors are not understanding tech, they have seen so much change in tech over the past 10 years. It is simply getting more difficult to wow them.  Continue reading →

Much ado about Wireless Carriers

Irrelevant Prologue: It’s been a while since my last post, and just want to reassure everyone that I am still planning to do another build of my poor man’s drobo NAS. So please stay tuned and follow me on Twitter to get updates.

Now let’s talk about the main topic – ISP/Carriers. I recently graduated from the University of Waterloo, and relocated to San Francisco, California for a job opportunity. I love this city, the people and the cultural dynamics. However, my 3 year contract with Canadian wireless carrier Fido still have 2 more years left to go. Don’t get me wrong, I’d be very happy if I could stay with Fido because of the deal they gave me for my iPhone 4. They just don’t do business here in the US. Therefore, I started researching about carriers that serve the Bay Area.

American vs. Canadian Carriers/ISP
Carriers are ISPs these days because they provide an Internet uplink for your mobile device. Unlike Rogers/Fido, Bell, and Telus in Canada, some of these carriers don’t provide residential wired services, either cable or DSL. For example, Verizon and T-Mobile are solely wireless carriers. Other than the difference in market coverage, the technologies these companies use across the border are completely compatible. It is either GSM or CDMA with equivalent 4G class technologies for speed boost. This means that an unlocked phone purchased from either country can work across the border. Just remember that if you bought a phone from a local carrier, it is probably locked to their network, in which case you can only roam and are unable to switch to another carrier.

International Roaming
There are a lot of people buying the new iPhone 4S because it can support both CDMA and GSM bands, which means you have more options to roam aboard if your phone is unlocked. Carriers like O2, Vodafone, Virgin and Orange have some great prepaid deals for travelers, and they have begun to ship GSM cards in microGSM form factor.

Continue reading →

Steve Jobs, the biography

This was an insanely well-written biography for Steve Jobs that covered everything from the history of his adoptive parents, his early days at school to the eventual success he had with the companies he built. Walter Isaacson did a great job to recreate the past events and more importantly the emotions and struggles of the person – Steve Jobs.

I was extremely impressed with the detail and the openness that Steve gave to Isaacson, knowing he was an extremely private person. However, as the cancer complications became fatal, I guess Steve wanted to passed on his true legacy to his kids and the rest of the world. He was no longer the private and maybe a bit selfish person he once was.

In addition to the stories, there were never before seen photos of his family; interviews from his friends, former colleagues and even enemies. What surprised me the most was the never before told flaws of the great person we all came to love.

Steve was perhaps the worst manager to work for!

Continue reading →