I keep getting some questions so I am gonna leave answers here.
Q: What tool do you use to draw your images?
Whenever I have no idea how to explain a problem, I use images in the editorial / problem statement. My images tend to look pretty darn good. So it is not uncommon I get this question. The short answer is : I use inkscape.
The long answer is, that as you might figure out, inkscape is actually just a simple vector graphics software that is not even a full tool like Adobe illustrator. I use Inkscape because it is free and cross platform. Cross platform is important because I use Linux. Free is important because I avoid promoting proprietary software and a very effective way to avoid promoting proprietary SW is not to use it. I am not a graphical designer, so I can easily afford using Inkscape instead of a costly tool with ethically dubious licenses.
But I think the question is really: How do I make images look so good in editorials. Well, first of all, I have had plenty of Inkscape practice before becoming an editorial writer. I had to learn a ton of Inkscape when I was making graphics for a game that is called Xye, eventually, I made my brother the graphics designer make a new, more advanced skin, but I still like the graphics I was able to make... Of course, when I started writing editorials, my inkscape skills weren't so good either. I still needed to have more and more practice. I am far of being an inkscape expert, but I did end up making quite a large number of images that explain algorithms. So there is that.
Q: Do you even have a job?
(Or variations like "where do you work?", "Do you work for Google"* , "Do you study?" )
I have a job, I am the editorial writer at TopCoder.com !. Really, that and the occasional SRM problem set is all I am doing for a living right now. It is not the most profitable job ever. And I am only an "independent contractor" of TC, meaning I have no fixed salary, benefits, protections or responsibilities (besides delivering "deliverables" in a decent time) In fact, it is getting extremely time-consuming lately with SRMs getting a lot harder and more frequent than they used to be. But it is okay to me, and it fixes my needs. It allows me to earn money by programming in mostly c++, programming cool little problems as opposed to software (I HATE software development).
I also supposedly study. In my case University was a terrible, terrible thing that didn't work out very well. I am extremely late in graduating. I don't even care anymore, to be honest.
* Actual question happened at least 6 times, for some reason.
Q: Why don't you have a red rating in topcoder?
I am just not that good during contests. I actually constantly struggle to solve the division 1 hards and mediums before being able to explain them. Specially lately, every tutorial has been a little miracle. In this very moment I am facing issues solving a division 1 EASY problem!
Q: Why don't you participate in Codeforces / Codechef / ACM / etc
- I try to participate in Codeforces. I don't love it that much but I sort of like codeforces. The contests are more challenging (because Codeforces' division 1 has higher density of uber good coders than TopCoder's division 1 has). Although the probability to find problems that are repetitive or annoying is also slightly larger. The main reason I don't join more Codeforces contests is time availability. Specially with TC editorials taking a lot of my time. When I am not writing editorials I am a bit tired to be participating in more contests :/. Also, about 1/2 of the time, the time slot is quite incompatible with me. Sunday matches, for example, are very hard for me to do.
- Codechef has similar issues. It is in third place so it has much less priority than Codeforces - If I only had time available for one contest and I had to choose between Codeforces and Codechef, I would choose Codechef - so it is less likely I'll participate. And the times Codechef picks ARE TERRIBLE FOR ME! Like I mentioned, Sundays are a big no for me, so that means no Cook-Offs. Solving the 15-day monthly challenge sounds like a Herculean task considering I possibly already spend 15 days a month writing editorials :/. I am also not a big fan of them using ACM rules for cook-offs (see below).
- ACM / ICPC / their online judges. Did I ever mention I hate the ACM contests? They have these terrible format/scoring rules where problems letters are randomly-assigned. The time you take in the first problem is weighted excessively in the final rank; Groups are mandatory; The problems are low quality (They have been improving a bit , but not enough); etc... :/
- Hackercup: I would need to join facebook to participate in this one. And that's not going to happen.
Q: How do you solve $HOMEWORK_PROBLEM?
I am not a forum, I barely have time to solve problems that I get paid to explain. Could you avoid contacting me personally to solve a specific problem? Unless it is a problem I wrote and no one has submitted a correct solution in the practice room / spoj... Well, I am not saying that you should *never* send these problems, but don't expect me to be very helpful. Many times I do try to solve whatever problem people sent me, but remember: I am not that good at solving problems! Many times I have no idea how to solve the random problems you send me :/