• Build the Cloud: Customer Adoption for Infrastructure-as-a-Service

    Since 2006, Amazon’s cloud business, Amazon Web Services, has expanded from launching some virtual machines and offering static file storage to everything. However, the growth of customer base and revenue is still impressive. Revenue growth is still over 40% YoY for a 17 billion dollar business (12 months ending December... [Read More]
  • Design Consideration of a Workflow Engine

    In a distributed, service-oriented software system, it is often required to achieve some goals with a combination of one or more operations, such as API calls, database operations, or others. The series of operations are often called “workflows” and the software designed to drive the workflows to completion is called... [Read More]
  • Remove Non-Deductible Traditional IRA Contribution

    If you make a traditional IRA contribution before doing your tax for the year hoping you can deduct the contribution, but only to find your income is too high to deduct the contribution, you will want to remove non-deductible contributions from the Traditional IRA and invest the money in a... [Read More]
  • Backdoor Roth

    This is the notes I gathered when researching how to make Backdoor Roth contribution, how to gather tax documents and report contributions and conversions in tax filing using TurboTax. The content is modified from thefinancebuff.com. See original content in reference links at the end. [Read More]
  • GoLang: Formatted Printing

    Formatted printing in Go uses a style similar to C’s printf family but is richer and more general. The functions live in the fmt package and have capitalized names: fmt.Printf, fmt.Fprintf, fmt.Sprintf and so on. The string functions (Sprintf etc.) return a string rather than filling in a provided buffer.... [Read More]
  • GoLang: Memory Allocation

    Go has two allocation primitives, the built-in functions new and make. Composite literal is a special way of allocating new instances every time it is evaluated. [Read More]
  • GoLang: Error Handling

    Go’s preferred way to deal with errors is through return values, not exceptions. Go programs express error state with error values. The error type is a built-in interface: [Read More]
  • Go-Misc

    Go Workspace Go is designed to work when your code is inside a workspace. The workspace is a folder composed of bin, pkg and src subfolders. In short, create a go folder with a src subfolder wherever you expect to put your projects. The workspace defined by $GOPATH. Simply set... [Read More]
  • GoLang: Concurrency

    Go is often described as a concurrent-friendly language. The reason for this is that it provides a simple syntax over two powerful mechanisms: goroutines and channels. [Read More]