I work at this little company: www.illusionlabs.se We make games for iOS devices (mostly) Most of the time I write code, but I like game design too. Since we are a small company, I write whatever code is needed, OpenGL, AI, game code, UI, porting, you name it. I prefer C++ but know my way around Obj-C and Java too. I started my programming life with z80 and 68k assembler on TI calculators.
Seems you need a pretty thick skin to be an "official person" on the Internet... Lots of people react before they think, and with anonymity and the ease of communication, you are bound to receive some pretty infiltered thoughts. Most people are also pretty bad at expressing their thoughts in text.
I don't think you should confuse all angry comments with "trolls". Originally the word "troll" (on the internet) meant someone that disagreed with you "just because", and with the sole purpose of pissing you off, only for their own enjoyment, with no real interest in the topic at hand. (I'm sure most people have met this kind of person in real life too).
Today it seems to shift towards meaning "anyone that does not agree with me", which I think is a very unproductive way to look at it.
It might be hard to see the difference sometimes, but trying to calmly engage in discussion usually filters out the people with legitimate claims from the trolls pretty quickly.
Though even though implementing "everything" yourself might be fun, I think the writers of the PNG spec assume one would simply use zlib to do the compression/decompression when implementing a png image encoder/decoder.