Latest Comments
No website changes have been recorded.
Search
Stuff I like
  • The Essays of Warren Buffett: Lessons for Corporate America, Second Edition
    The Essays of Warren Buffett: Lessons for Corporate America, Second Edition

    Read this review post

  • The Five Rules for Successful Stock Investing: Morningstar's Guide to Building Wealth and Winning in the Market
    The Five Rules for Successful Stock Investing: Morningstar's Guide to Building Wealth and Winning in the Market

    Read this review post

  • Programming Pearls (2nd Edition)
    Programming Pearls (2nd Edition)
  • Pattern Recognition and Machine Learning (Information Science and Statistics)
    Pattern Recognition and Machine Learning (Information Science and Statistics)
  • Programming Collective Intelligence: Building Smart Web 2.0 Applications
    Programming Collective Intelligence: Building Smart Web 2.0 Applications
  • Dyson DC25 Ball All-Floors Upright Vacuum Cleaner
    Dyson DC25 Ball All-Floors Upright Vacuum Cleaner
  • Sigma 30mm f/1.4 EX DC HSM Lens for Canon Digital SLR Cameras
    Sigma 30mm f/1.4 EX DC HSM Lens for Canon Digital SLR Cameras

Powered by Squarespace
« Have 20 Google Wave Invites | Main | Why you don't learn how to write programs in university »
Sunday
01Nov2009

What I have learnt as a Journeyman

I have been working at Google for almost two years now. Google is a great place to work in - great benefits, outstanding colleagues and, well, a stable job in today's economy. And to think this all started with my wife applying for me on her own accord [see Making a career choice]. I have grown immensely as a software engineer, but there is still so much room to grow. Here are a few tidbits that I have picked up along the way:

Unit testing - when your code is live and serving traffic 24/7, it enables me to sleep better knowing that it is tested. The tests range from small (each library has unit tests for each individual function) to big (integration tests that the service can connect to all backends and work as intended). Using Mock objects helps to test environments in a controlled fashion. Unit-testing for failure conditions have saved production crashes in numerous occasions. [See Google Testing Blog]

Refactoring works. Especially with those nifty unit tests written to ensure everything works.

Code does smell, and at Google, it's usually my own first working implementation. Oh, wait, that's why refactoring works.

Mapreduce is my hammer - all nails shall tremble in its presence.

Patterns, paradigms and ideology are great, but don't let it get in the way of getting things done. Overengineering is your worst enemy.

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>