Profile of Jussi Judin
- Various social networks: Facebook, Google+, Twitter.
- By email at (CSS needed to display address correctly)
jjudin(do not copy and paste this address)ipik+hpt@iki.fik.com
(CSS needed to display address correctly)
- I also have a public GPG key available for secure communication. I don't however use this by default due to it cumbersomeness of handling multiple email identities.
- IRC with nickname Barro at IRCnet.
- Or use your mobile phone camera and picture on your right to get some of this information to your phone.
I am pretty much stereotypical programmer nerd and
therefore I have some personal pet
projects. In non-stereotypical fashion, I also have dancing as
my hobby. The dances I do range from historical dances and Finnish
folk dancing to contemporary dancing and Brazilian Zouk.
My previous major interests have covered the art and culture that
demoscene and
Japan produce. I have been more or less active in organizations like Assembly, Alternative party and Nippoli.
Various social networking sites that I use:
My bachelor's and master's theses are both
related in digital image processing, more specifically in two
dimensional barcode recognition.
Tool collection
I prefer to have all-round skill set related to various software
development areas instead of focusing in just one small
subset. Though web development and its needs in *nix environments
tends to dominate quite a lot.
- Programming languages: Python, C++, C, Groovy, Javascript, Java,
PHP, Perl, Matlab/Octave, Coffeescript, various assembly languages
and bunch of other languages, like Ruby, Scheme, Common Lisp and
Haskell, that I have touched but not necessarily done anything
bigger in them. And then Visual Basic for Applications.
- My programming style mainly leans towards defensive
functional style programming. I try to take security related
matters into account where feasible. I rely a lot on static
and dynamic code analysis tools, as I know that they will
catch many of the mistakes I do and help in modernizing my
code. Fuzzing with american fuzzy lop and libFuzzer is also
something that I'm nowadays more and more passionate about.
- I prefer working with high level abstractions and languages,
but I can jump onto machine code if necessary.
- Markup languages: HTML/Jade, CSS/Stylus, LaTeX,
reStructuredText, Markdown, XML, SVG.
- Databases: ZODB, MySQL, PostreSQL, SQLite, Memcached, MongoDB,
Berkeley DB, Excel (hey, you can use this through ODBC =). And
naturally many text formats that you might to use to store and
retrieve information =)
- Build description languages: CMake, Makefiles, Ninja.
- Parser
generators: ANTLR, Coco/R. Well,
I have made some LL parsers for some self-created languages that
fortunately are not used anywhere.
- Web development utilities: Node.js, Django, Grok, jQuery,
Underscore.js, Backbone.js, Symfony, various web servers/caches like
Apache, lighttpd, and Varnish. Generally, MVC based frameworks that
are behind some server with optional caching.
- Largeish scale build, test, and release automation with
Jenkins. Also making Jenkins fully programmatically managed so
that every aspect of Jenkins can be version controlled.
- Infrastructure management with Ansible and shell scripts.
- Version control tools: Git, Mercurial, and Subversion. Tools
that I don't want to touch: ClearCase and CVS.
- Computational engineering tools: OpenCV (C++), NumPy,
Octave/Matlab. Mainly for image processing and for various generic
machine learning tasks.
- Testing frameworks in various languages, like
Python's unittest
and doctest
modules glued together
with Nose, SimpleTest
on PHP,
Boost's test
library, Java based jUnit
and jMock for mock objects. And
then Jasmine, Mocha, and Sinon.JS for Javascript applications. And
if available tool set does not include an unit testing framework or
licensing or dependency issues might make using some ready-made one
too complicated, then I have written my own simple test runners to
make up for that.