Archive for the ‘Uncategorized’ Category
Make Art, Make Money — At The Same Time
Wednesday, May 2nd, 2012Technical interviews
Tuesday, April 10th, 2012Not so long ago I've attended a technical interview and on the way back home thought about the process. Inevitably you imagine yourself on the other side and start thinking what would you ask to understand a person and figure out what he or she is capable of. In most cases you are asked to solve a simple problem like reversing a string. This shows that you know a programming language and generally is a sane person but it does not tell that much about how good an engineer you are. So here is what I would do:
-
Review code written by the person in real-life projects.
- Run static analyzer over the code; discuss the results. If there are warnings then ask to explain what do they mean and how to fix them. If there are no warnings then chances are that you have found a really good developer )))
- See if code is formatted and well-structured. I strongly believe that proper formatting and structuring is strongly correlated with overall quality of the code and documentation developer produces.
- Ask to explain certain design decisions. This is about tactical thinking and understanding of patterns and idioms.
- Discuss performance of the code. Once again, a lot to find out from characteristics of data structures to language implementation details.
-
Find bug in other's code.
The idea is to take some rather large application (sure github will help) and introduce several bugs in it. Describe the effects of these bugs and ask the person to find them. It's a typical situation you have in real life and I just don't understand why this task is not given at interviews.
-
Rabbit hole.
Open a browser and type in some url. Wait until page loads. Ask the person what happens inside the computer and to go as deep as he can: how browser UI works, which controls are used, how HTTP requests are formed, how they are passed to the backend, processed there and so on. Feel free to go as deep as how bytes are packed and transmitted and as broad as how internet protocols and services cooperate to deliver the traffic.
I guess if you have someone who is really interested in programming and not just learned Java or whatever to earn easy money he or she could spend hours answering this question.
ImageOptim
Monday, March 19th, 2012I always thought that Xcode produces the most compact PNG files but this not seems to be the case. Turns out that there is a tool that does better job at optimizing PNGs.
Manually optimizing images with ImageAlpha reduced entire application size by more than a half (33.4MB down to 16.3MB). Images alone were 65% smaller and were displayed 2.5 times quicker than Xcode-optimized ones.
Since Xcode conversion can be disabled and iOS supports standard PNGs, such big size and speed savings are possible in actual AppStore applications.