Jakub Vrana - Curriculum Vitae
- School of Computer Science, Charles University, Prague (MFF UK) - alumni
1999 Bachelor's degree
2003 Master's degree, specialization: Database systems, Linguistics
- 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.
- Gigwalk - Senior Software Engineer, 4/2013 - present day
- Facebook - Software Engineer, 10/2011 - 3/2013
Developer Tools - Phabricator (PHP, MySQL)
Several improvements to a code collaboration tool: unbreakable XSS safety, localization framework, asynchronous and relative SQL queries, copied code detection, opening files in local editor, background linting and testing, lint caching, Mercurial and git-svn improvements, ElasticSearch.
- Centrum Holdings - Python and PHP programmer Sítko.cz (Django, OpenSocial - Shindig), Amplion.cz (Nette Framework, NotORM), 4/2008 - 8/2011
- 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
- European Network Company - member of a team developing web applications (PHP, MySQL) - 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
WebExpo - Ajaxification (9/2011)
O'Reilly MySQL Conference - Replace phpMyAdmin with Something Better (4/2011, English talk)
OSI Days - NotORM Presentation, Adminer Editor Presentation, Open Source Databases Panel (9/2010, English talks)
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 (4/2006 - 9/2011)
Security of PHP Applications (own course)
Design and Usage of MySQL Database (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.
- 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.
Because syntax highlighting to HTML produces a long output then 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 triky - weblog about elegant programming in PHP for moderately advanced (PHP, MySQL), 2/2005 - present day
Programming language PHP is very easy to learn so it is used by several inexperienced novices. Over 500 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 firstname.lastname@example.org 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 Manual - listed as one of eight current authors of the English PHP manual, work on the Czech version of manual (Docbook), 12/2003 - present day
- Nette Framework - contributions to the database layer, security, templating and testing (PHP), 3/2009 - 8/2011
- SciTE - several contributions to the open source editor (C++), complete translation to Czech, 12/2001 - 12/2004
- PHP, Nette Framework, logical web design, security issues
- SQL, database design, replication
- Git, SVN
- Natural languages: Czech, English (written, spoken), Slovak (passive), Russian (partly)
Published Books and Articles
- Book 1001 Tips and Tricks for PHP (Czech) - 456 printed pages of my web applications development know-how, 2010
- the Month of PHP Security: 5/2010, 5/2010
- php|architect: 8/2009, 4/2009
- Zdroják (Czech): 1/2011, 5/2010, 1/2010
- Root.cz (Czech): 2/2007, 11/2006, 4/2006, 10/2005, 3/2005 - 8/2007, 12/2003, 7/2003
- Interval.cz (Czech): 5/2009, 8/2007, 5/2005
- Others (Czech):
- Non-smoker, sport: triathlon
- H-1B since October 2011
- Czech version