|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Fri, 24 Aug 2007
A job.
I just decided to check what knowledge modern russian search engines request
from attendees. That was very fun and contrary very sad - I failed to answer whole set of
questions just because I can not recall some bits, and expect that searching
for the answer is unfair.
But there are some interesting questions, which I would definitely like
to answer.
For example what multiplexing system would you use to handle more than 1000 clients
for the web server. There are number of answers: poll, select, something else
and no need to multiplex anything. I have at least two answers (unfortunately they do not
request a sample code) - something else (guess what? Of course reinvent the wheel
and write my own) and no need to multiplex anything, with quite strong ground.
Another interesting question is about data sharing: you have many terabytes of data and
need to answer a question about how to distribute it between many servers so that
searching would take resonable time, and what will happen if number of them fail.
I think if I will answer, that I will write a distributed storage in kernel, people
will laugh on me.
In one of the questions for Unix system programmer there is a subquestion about possibility
to write fork() for Windows, and mail-system developer, which must know Oracle/MySQL.
There is a question about port scanning - if you have a system with infinite number of sockets,
descriptors, processes and very fast interenet channel and need to scan huge number of ports on the remote
systems, how long it will take if scanning for one port takes a second. My first question
was about which local system is being used, since in one system it is possible to bind many
sockets to the same port, if remote tuple is different, but in another it is impossible, thus
it can only handle 64k connections in a time.
Many questions are about parallel computing in distributed environment. I expect recruiters
want to hear about some kind of message passing algorithm like MPI, but I first thought
about transferring not data request, data processing, so intead of doing 'calculate this
stuff on your data and give me back result so that I will send it to another client'
it would be possible to start a new process to do this stuff, which would migrate to remote
system, process all needed data there without sending its parts to main host and back,
and then provide result to the some client. This is just a though, but given how simple
is rescheduling (well, not _that_ simple, but I managed to write it myself in userspace
in M:N threading model
project), it would be possible to implement as a research project.
So, generally I've found, that I will fail for all positions, since in each vacancy I did not
know some questions, and I like that - I do not want to know everything - I like to get new knowledge.
/devel/other :: Link / Comments (0)
Please solve this captcha to be allowed to post (need to reload in a minute): 1 + 30
|