PHP vs. Python isn’t even a debate

Craft, PHP

When it comes to Web development debates, many experienced developers say there’s no practical difference between PHP and Python (and Ruby, Perl, etc.). I used to hold the same opinion. Until I had to work on some projects to extract TLS information from a website’s SSL certificate. The PHP libraries sucked so hard and were […]

April 25, 2019

It depends

Advice, Career, Craft

Decisions in software–and life, actually–are rarely straightforward. Should you learn a new tech stack or stick to the boring, old, solid one? Is WordPress better or JAMStack? Should you stick to plain old Bootstrap 3 or move on to Bootstrap 4? Will it be a good idea to move from MySQL to MariaDB permanently? And […]

April 23, 2019

Function naming is hard (even PHP-FIG gets it wrong)

Craft, Programming, Uncategorized

There’s a famous saying that two of the hardest problems in computer science are cache invalidation and naming things. When it comes to defining standards, there’s no cache involved, but thereĀ is a lot of naming of things. It should come as no surprise, but I recently was shocked to see that the folks who create […]

October 26, 2018

Biases and improvement

Advice, Career, Craft, Life

The biggest hurdle to your improvement as a software developer are your biases. The idea that React/Angular/Vue/Backbone are somehow superior to other alternatives; the idea that Python is a much more robust web development language than PHP; the idea that PostgreSQL is the only sensible relational database out there; the idea that nothing matches the […]

April 11, 2018

How I organize code when I’m learning


So here’s what this looks like from the rooftop: You’ll see lots and lots of directories there, which reflects my impulsive nature. There’s stuff like NodeJS there (which I left half-way), zeromq (which I never even got started on), Go (which I did finish, by the way!), and more. But that’s not all. The real […]

November 29, 2017

Do you *really* understand recursion?

Craft, Uncategorized

Today while writing a program that involved recursion, I got to thinking: Do I really understand recursion? Like, really, really understand recursion? I know recursion; I understand the key concepts involved; I can write algorithms for Binary Search, Trees, Towers of Hanoi, etc., without thinking – but does all that mean I understand recursion? This […]

September 3, 2016

Excited about programming!

Craft, Uncategorized

It’s been eight years since I was last this excited about programming. The last time it was when I had finally gotten a handle on C programming in my college days, and was happily burning hours making text-based games using rudimentary colors and random number generators. Today I feel the same joy. And the reason […]

July 26, 2016

Reading source code is interesting

Craft, Uncategorized

Until today, I could never muster the courage to look into the source code of anything. Part of it was Imposter Syndrome, and part of it was . . . well, I guess, Imposter Syndrome again! “The source will never make sense to you”, the little voice inside my head would tell me and I’d […]

June 1, 2016

Stop writing classes

Craft, Uncategorized

Sometime in 2012, Python core developer Jack Diederich gave a talk in PyCon titled Stop Writing Classes. It was an unsettling talk: So you’re telling me I could just throw all the Object-Oriented theory in the dustbin and resort to writing functions? Very uncomfortable notion, indeed! And if you look on Quora, you’ll find a […]

May 15, 2016