In preparation for my talk for php[world], I was genuinely concerned that the topic was too basic for vast majority of developers (I even purposely named the talk PHP performance 101).During the talk, I was really surprised to see that most people in the audience found the performance tips I prepared helpful, if not critical, in solving their current problems. I even had one person admit that they were still struggling with n+1 problem. I guess admitting the problem is the first step to recovery. Because of this type of (somewhat unexpected) interest, as I see problems in codebases I come across, I try to write more detailed posts giving people real examples of performance impact. This one is about minimizing connection overhead and number of round trips to the database. Continue reading Optimizing bulk inserts
In the talk I gave at PHP World in DC, most controversial statement (not surprisingly) was “ORMs are evil” (slide 30). And while I had good examples and stories on performance hits from the query generation and optimization perspective, I didn’t have numbers on hand to show the impact of object construction overhead. Well, thanks to my colleague, who recently had to troubleshoot a performance issue, I now have an real-world example to share. Continue reading The cost of convenience
Today marks my 13th anniversary at OmniTI. It’s a cliche, but the time really does fly. It’s always difficult to reflect on past years (especially when there are so many of them), which would probably explain why I haven’t had a 5 or 10 year anniversary posts. This time (mainly because 13 seems like a good number), instead of attempting to try to recap more than a decade worth of events, I decided to list some things that kept me here for that long. Continue reading Lucky #13
DevOps has been a hot topic in the industry for some time now. A lot of people been talking about it. Some have built business models around DevOps-related tools and themes. There are even conferences and trade shows dedicated to DevOps-oriented things. People have made career around talking about it. In light of all of that, I find it chuckle-worthy that very few people actually know what DevOps is (just follow #devops on Twitter for proof.) I am not going to be one of many trying to create a buzzword-infested definition of DevOps to suit my particular agenda. Instead, I’d like to talk about what DevOps is not. So, without further ado, DevOps … Continue reading What DevOps is not
As the holiday rush is winding down, I sit here reflecting on all the companies that lost business/revenue over the past few days. Loss of business not because of technology failure, although this is always a manifestation of a problem, but because of process failure in order to remedy the failures of technology. I’ve offered some tips on preparing for the holiday traffic from the system architecture perspective, but perhaps I should’ve concentrated on preparing for the rush from the organizational perspective. Continue reading Reflecting on holidays
Yesterday, at the #watercooler, we were talking about the principals of devops (and how they were applied before the term was cool) and sharing war stories about organizations that preferred to intentionally wall off individual technology groups. Conversation turned to how running the code in production is the only measurable way to validate developers code, and instilling the culture that shares the responsibility for production readiness between operations and development teams is the way to go. As we were talking about it, I realized that despite the fact that majority of developers firmly believe that “It worked on my laptop” is a piss poor excuse for production failures, most don’t truly understand why it is virtually impossible to make your development environment representative of production.
Everything happens for a reason. Sometimes that reason is you’re stupid and make bad choices.
A few months ago I attended Node Summit in San Francisco, dedicated to success stories around node.js implementations in large architectures. There were a couple of very educational war stories (particularly, the so-called, “boring” Walmart Black Friday case study, presented by Eran Hammer), but, this rant is not going to be about how awesome node.js is. This rant is going to be about bad decisions. Those that are still being made in the world of technology, driven by false premises, wrong reasons and buzzword bingo.