engineering

Practical Techniques to Achieve Quality in Large Software Projects

High quality is hard to achieve and very expensive, but it’s worth every penny and must be taken extremely seriously. There is no silver bullet – just lines of defense. The good news is with the proper lines of defense, quality becomes incremental. It only goes up with every release. With enough test coverage and quality tools you can substantially increase the quality of your product and protect it from regressions. When you embark upon a large software project you need to figure out...


Common Pitfalls in Writing Lock-Free Algorithms

Formally, a multi-threaded algorithm is considered to be lock-free if there is an upper bound on the total number of steps it must perform between successive completions of operations. The statement is simple, but its implications are deep – at every stage, a lock-free algorithm guarantees forward progress in some finite number of operations. Deadlock is impossible. The promise of a lock-free algorithm seems remarkable in theory. Concurrent threads can modify the same object, and even if...


MemSQL: My First *Real* Startup Experience

This is reposted from Momchil Tomov’s blog. Momchil was part of the first summer batch of MemSQL Interns. After seemingly stumbling into their office by accident, getting interviewed on a lark, and receiving an offer as my Christmas gift, I kept an open mind for what to expect from MemSQL. The one-year-old YC alum was set to build the world’s fastest database, leaving competitors like MySQL and MongoDB in the dust. Very ambitious indeed. From day one, I was thrown in the fire pit....


Excellent Post On MemSQL Architecture

http://highscalability.com/blog/2012/8/14/memsql-architecture-the-fast-mvcc-inmem-lockfree-codegen-and.html