Jakub Vrana - curriculum vitae
Personal information
- Jakub Vrána
Neustupného 1833
15500 PragueCzech Republic
- jakub@vrana.cz
- +420 739 542 771
Education
- School of Computer Science, Charles University, Prague (MFF UK)
2000 Bachelor's degree
2003 Master's degree, specialization: Database systems, Linguistics
- Team Project: OROL - Open Editors System (XML, JSP, MySQL), 2000 - 2001
my position: Template programmer (XML), Database designer (SQL)
- Diploma work: Restoration of Diacritics in the Czech Language (PHP, C, VBA Word), 2003
People in the Czech Republic write without diacritics mainly in e-mails. Restoration is quite difficult because there are many ambiguities. I used the EM Algorithm for balancing unigrams, bigrams and trigrams and the Viterbi algorithm for finding the most probable sentences. Results are quite usable and the web interface helps with fixing errors - uncertain words are shown in a different color. The core is written in C (for speed), web interface in PHP, there is also a simplified version for MS Word.
Practice
- Centrum Holdings - Python and PHP programmer Sítko.cz (Django, OpenSocial - Shindig), 4/2008 - present day (full time job)
- Athos Travel - presentation, administration and orders system for incoming travel agency in several cities (multilingual pages, search engine optimization, HTMLtmpl, PHP, MySQL+replication), cooperation with Booking.com through XML interface (web services), 12/2004 - 3/2008 (full time job)
- European Network Company - member of a team developing web applications - e.g. Návštěvnost.cz (comprehensive web statistics) or RegistrujWeb (semi-automatic registration to the search engines, automatic inspection of web pages accessibility for search engines, disabled people and alternative browsers), 3/2003 - 11/2004 (full time job)
- Digital Image Studio - several WWW presentations and Internet magazines (HTML, JavaScript, CSS, PHP, ASP, MySQL, Access), 3/2000 - 2/2003 (concurrent with course work)
- I-Point - charts of stocks and currency trends (PHP, PostgreSQL), communication with application server (XSLT), 11/2001 - 6/2005
- Systinet (formerly Idoox) - web utilities (PHP, MySQL) - 10/2000 - 12/2000 (vacancies job)
- School of Computer Science, Charles University, Prague - administration of School's web (HTML, CGI), 1997 - 2000
- Teaching:
WebExpo - Scalability, optimization and backup of MySQL database (10/2008)
MySQL 5 Mastery - expert correction of the Czech translation (11/2006)
IT Underground Conference - Basics of PHP Security (2/2006, English talk)
MFF UK - HTML and PHP seminars with couple of lectures (2000 - 2004), Internet course (2004 - 2008)
VOŠIS - semester course Advanced Internet Applications (2004 - 2005)
- Guide of private trainings
Security of PHP Applications (own course)
Design and Usage of MySQL Database (own course)
JavaScript and AJAX (own course)
Library jQuery and AJAX in Practice (own course)
Web Applications Performance (own course)
Configuration and Performance of MySQL (own course)
Introduction to PHP (Root.cz Academy)
PHP 5 Programming (Root.cz Academy)
PHP for Advanced (TrainTime)
Clients list includes: Internet BillBoard, Telefónica O2, PricewaterhouseCoopers, Vltava-Labe-Press, ČVUT, Univerzita Karlova, Kasa.cz, Seznam.cz, Volksbank, AutoCont, Kerio, NetCentrum, Patro.cz, GTS Novera, Military Academy, Fortuna, Symbio, Czech Television, Czech Radio, Kooperativa Insurances, GE Money, LMC and others.
Projects of Mine
- NotORM (PHP), 2010
Library for simple reading data from database with excellent support of table relationships.
- php-initialized (PHP), 2008
Script checking proper initialization of PHP variables.
- Adminer (PHP, MySQL), 2007
Powerful web database management console packed in one compact file (formerly phpMinAdmin). Finalist of SourceForge.net 2008 Community Choice Awards, nominee of the Czech Open Source survey in category Software of the year 2008.
- JUSH - JavaScript Syntax Highlighter (JavaScript), 2007
Because syntax highlighting to HTML produces long output it is better to accomplish it on the client side. Syntax highlighting of web applications source code is a very complex task as five languages (HTML, CSS, JS, PHP and SQL) are embedded into each other. JUSH uniquely support this embedding and also adds links to the documentation of all languages.
- PHP tricks - weblog about elegant programming in PHP for modarate advanced (PHP, MySQL), 2/2005 - present day
Programming language PHP is very easy to learn so it is used by several inexperienced novices. Over 400 articles about PHP on this server try tu educate how to program in PHP correct way with the aspect to the web applications. It also reveals often unknown parts of the language. Winner of the Czech Open Source survey in category Blog of the year 2008 and 2009.
- MySMS.cz - web interface for paid SMS sending (C, PHP, MySQL, GSM, security), 2003
My cellular operator cancelled its web interface for SMS sending in 2003 so I built my own. I bought a GSM modem, customized my friend's low-level interface for communication with it, opened an account in a bank and programmed the web interface. There was a lack of time, so everything was done in about three weeks. As it deals with money, security was very important - I utilized HTTPS, client-side certificates and secure logging even through HTTP (challenge - response).
- Matfyz.cz - web and e-mail aliases for MFF UK students (PHP, MySQL, qmail, Apache), 2001
When I came to the school, I got "nice" e-mail address jvra6670@barbora.ms.mff.cuni.cz and web pages at http://www.ms.mff.cuni.cz/~jvra6670/. Nobody could remember it so I decided to establish a server for the e-mail and web aliases for all MFF UK students. It's quite popular, there are over 2000 aliases nowadays (there are about 3000 students on the school).
- Čtyřka - card game (Delphi), 1998 - 2000
It was a semester project originally and I decided to work on it a little bit more to be able to sell it. The most interesting part is the playing algorithm based on the rules used also by humans, so it's not the usual brute force approach. Good customizable environment and the network game are essential. It's shareware with 10 000 installations and more than 600 paying customers.
Participation on Open-source Projects
- PHP Documentation - listed as one of eight current authors of the English PHP manual, work on the Czech version of manual (CVS, Docbook), 12/2003 - present day
- PHPExcel - library for manipulation with the Open XML data format of MS Excel 2007 written in PHP, I wrote the reader and I participate on other parts too, 2/2007 - 12/2007
- HTMLtmpl - new compiler of an existing templating language to the PHP code, 2/2006 - 2/2007
- Crypto-World - proofreading, 10/2004 - 9/2008
- SciTE - several contributions to the open source editor (C++), complete translation to Czech, 12/2001 - 12/2004
Knowledge
- PHP, logical web design, security issues
- HTML, JS, CSS
- SQL, database design, replication
- C, Delphi, ASP, VBA
- Natural languages: Czech, English (written, spoken), Russian (partly)
Published articles
- Elegant databases in PHP with NotORM (Czech) - Zdroják, 5/2010
- Variable initialization in PHP (English) - the Month of PHP Security, 5/2010
- Context-aware HTML escaping (English) - the Month of PHP Security, 5/2010
- phpMyAdmin VS Adminer (Czech) - Zdroják, 1/2010
- Architecture of Adminer (English) - php|architect, 8/2009
- Storing Multilingual Records with MySQL (Czech) - Interval.cz, 5/2009
- Storing Multilingual Records in the MySQL Database (English) - php|architect, 4/2009
- Google Code Jam 2008 Series (Czech) - Programujte.com, 8/2008
- Simplicity of a programming language (Czech) - stdout.cz, 7/2008
- PHP applications security (Czech) - Crypto-World, 6/2008
- Multi-page form in PHP and JavaScript (Czech) - Interval.cz, 8/2007
- Delphi for PHP Review (Czech) - Connect, 6/2007
- Export to Open XML in PHP (Czech) - Root.cz, 2/2007
- OpenSearch Searching (Czech) - Root.cz, 11/2006
- Secure Users Login (Czech) - Root.cz, 4/2006
- AJAX (Czech) - Root.cz, 10/2005
- GNU Gettext Alternative (Czech) - Interval.cz, 5/2005
- PHP Window Series (Czech) - Root.cz, 3/2005 - 8/2007
- How to Show a Banner on a Secured Web Page (Czech) - Root.cz, 12/2003
- Usage of Database Indexes (Czech) - Root.cz, 7/2003
Others
- Sport: triathlon
- Trade License: Software Purvey and Guide of Technical Courses
- Czech version