Eugene Kirpichov
From Feb.15, 2010 I'm a senior developer at JetBrains.
From Feb.2007 till Feb.2010 I've been a software developer at Yandex, doing web information retrieval (in Java mostly).
I've taught a course in functional programming somewhat based on SICP: SICP_Course and now am an advisor for 2 students.
I've graduated with honors from the St.-Petersburg State Polytechnical University in June 2009.
My scientific interests: functional programming languages and nearby theory (i.e. category theory), array programming languages like APL,J,K; mathematical statistics and information retrieval.
My hobbies: Listening and playing classical music, sports like swimming and winter hiking.
I can program in: Java, Haskell, Erlang, Mathematica, R, C++, bash.
I am familiar with theoretical areas of computer science and mathematics: programming language theory, type theory, some category theory, some mathematical statistics.
Email: <ekirpichov AT SPAMFREE gmail DOT com>
My open source work:
antro - a line-level and hierarchical profiler for Ant build scripts, with a GUI inspired by jrat
jarfind - a small and extremely fast command-line tool for searching for Java classes, methods and fields in JAR files; written in Haskell
timeplot - a tool for visualizing time series from log files that I personally find very useful; written in Haskell
digest - a tiny Haskell binding to crc32 and adler32 which I wrote to speed up Haskell binding to zlib, which turned out to be the bottleneck in jarfind
strptime - a Haskell binding to strptime
LoessInterpolator from jakarta commons-math was written by me
- fuoco13 at narod point ru(insert punctuation; unfortunately, narod links are not allowed on this wiki) - (with Eugene Tyan) plenty of rare classical guitar sheet music and MP3s. Not updated for a very long time, although.
My articles and presentations:
Functional data structures - presentation given 13.10.2007 at the 1st SPbHUG meeting, based on Okasaki's book and paper on The Zipper functional pearl. Russian language only.
Functional data structures (contd.) - presentation given 17.11.2007 at the 2nd SPbHUG meeting, again based on Okasaki. Russian language only.
Erlang - presentation given 16.02.2008 at the 4th SPbHUG meeting, based on J.Armstrong's book. Russian language only.
Coq - presentation given 24.10.2008 at the 6th SPbHUG meeting, based on the Coq'Art book. Russian and English slides + sources.
Monad tutorial (in Russian) and Monad tutorial (in English) - my advanced monad tutorial, featuring examples from standard monads to probability and parser monads and a hint of monad transformers. The article has been published on RSDN (in Russian).
Java - Readability and some FP, Same thing in Russian and Slides in Russian (PPT),Slides in English (PPT) - an article on increasing Java code readability and utilizing principles of functional programming applicable to Java. The slides are better, they also contain 2 examples of functional API design. The article has been published on RSDN (in Russian).
Concurrent programing and Java A large presentation (in Russian) about concurrent programming in general and Java in particular, given to my colleagues at Yandex on 26.05.09. Concentrated on breadth rather than depth of scope; a bit about concurrency-related OO patterns, a bit about LTL and some verification tools, a bit about vector algorithms etc. TeX source (without images)
I'm among the authors and reviewers of the Practice of Functional Programming journal, with an article Fighting Mutable State in the 1st issue and a large theoretical article Elements of Functional Languages in the 3rd issue.
My CV: on moikrug.ru (in Russian) and on linkedin.com (in English)
