I keep seeing the term "x10 developer" pop up recently, and I think it's misleading and leads to a rock-star / primadonna culture that benefits no one.
"x10 developers" are, in fact, proficient developers, who are experienced with their stack and problem domain. Once you get to this point, you can still find room to optimize - some people are inherently more focused or talented and you can always gain more experience, but the difference between developers who are proficient at what they do will never be a x10 multiplier - it will be closer to a variation of 30-40% in productivity. In some extreme cases (super experienced, focused, and naturally gifted), you might even reach x2 times productivity over a baseline proficient developer (I've seen it in action).
On the other hand, you have developers who are simply not proficient. They either have no aptitude for programming at all, or are so inexperienced that progress is very slow as they are learning everything as they go. Those are the "1/10 developers" and they make proficient developers (i.e, professionals) seem like x10 developers.
Continue reading There are no x10 developers, but there are certainly 1/10 ones
In a previous lifetime (until about 3 years ago), I was a web development contractor as part of a small webdev-shop team of 3. Our focus was building MVPs for aspiring entrepreneurs, while guiding them through specifications, user-experience, product decisions and marketing (we called it "concept-to-launch").
Coming across a heated discussion a couple of days ago on Hackernews over an article titled "30 pounds in 30 days", took me back to the time we were educating clients on the cost of software development. I would like to offer my perspective on outsourcing, cultural difference and the overall cost of outsourcing software product development.
(For the short summary, skip to the TL;DR below)
Continue reading The Real Cost of Software Development
With all the rage recently on Twitter's changes to their API and how it affects developers and their apps who rely on it, it's easy to forget that Twitter is hardly the first major tech company to take such an approach to lifeblood of its ecosystem.
Yes, most of the large tech companies today are taking a hardline approach when dealing with developers who use their platform, treating them with entitlement as they hand down "our-way-or-the-highway" rules and regulations that leave little recourse when things go wrong.
Continue reading Developers vs. Bigcorp
Graphs and charts are a useful visual way to view historical data - they make it easier to detect trends and get a big-picture view of data. All we need is timestamped data - table rows that are stamped with a specific date/time format, that can be used to group rows into time periods.
Time stamped data
In order to aggregate table data by time periods / ranges, we need a date/time column in the table we want to analyze. Appropriate types for such a column include
DATE, but we can also use string / numeric types for grouping data together if they contain some sort of date/time information - though those will be much less flexible than native date/time types.
I usually opt to go with the
TIMESTAMP format, for a couple of reasons - Continue reading Generating graphs from MySQL table data
PayPal is the most popular platform for receiving online payments. The relative ease of opening a PayPal account and receiving payments compared to opening a merchant account for a traditional payment gateway is the number one reason, and another is the comprehensive API they provide for their payment services.
Foreclosure: The PayPal API is amongst the worst I've ever had to deal with - inconsistencies, sometimes poor and conflicting documentation, unpredictable failures and account changes and major differences between the live and sandbox versions all conspire to make working with the PayPal API quite a pain in the ass.
Unfortunately, there doesn't seem to be any better alternatives currently, so hopefully this guide will help ease the pain for some of you out there taking your lumps working the API into your applications.
Continue reading Breaking down the PayPal API