Good Engineer / Bad Engineer

Yin and Yang

Good engineers are value creation machines. They take responsibility for the outcome of a project. They see the situation holistically, rather than in silos. They speak up when they are stuck. They use maxims for guidance, whose meanings are contextual, not dogmatic. They view product quality as everyone’s responsibility, not just QAs. They do not shy away from making mistakes. They think for themselves. Read the article >>

My Software Engineering Interview Prep Checklist

Screen Shot 2013-11-11 at 10.00.34 AM

I’ve put together a handy checklist for interviewees at software startups.  If you’re job hunting, or may be job hunting soon, feel free to take it for a spin. Interview Prep Checklist: General Knowledge Data Structures Bit Manipulation Brain Teasers Object Oriented Design Recursion and Dynamic Programming Scalability and Memory Limits Sorting and Searching Design Patterns Testing Threads Read the article >>

In-line Logging


From the handy tip department: It’s really nice to have built-in in-line logging for your application. I’m often asked to debug issues in StepOut’s application that would be tough to handle if I was just dropping `echo()` and `die()s` everywhere. In particular, performance issues are a pain to debug without a built-in infrastructure that can spit out performance statistics at any time. Of course Read the article >>

5 Essential Tools for a New Startup CTO


Sometimes I get asked what tools I”d recommend to new lead developers. Many times, these developers are coming from mid-to-large size enterprise companies, where tools are proprietary and aimed towards the enterprise. The toolset for the open web is much different than the ones available in larger companies. Here we go: 1. Version control, and the tools to make sense of it. I can”t emphasize Read the article >>

PHP Performance Hack – Throttling During Load Issues

Screen Shot 2013-05-23 at 4.21.16 PM

I”ve had some performance issues lately with the server buckling under the pressure of a high peak user load . Other times, I”ve had issues with process intensive tasks that kept recursively spawning more instances of themelves. Creating performance intensive scripts require a good amount of design & architecture forethought, and sometimes you can”t always foresee the ways things could go Read the article >>