;;;; -*-mode: Lisp; coding: utf-8-unix;-*- (defpackage :cv (:use :common-lisp :typeset) (:import-from :typeset #:item #:draw-block)) (in-package :cv) (defmacro strong (&body body) `(with-style (:font "Helvetica-Bold") ,@body)) (defmacro emphasize (&body body) `(with-style (:font "Helvetica-Oblique") ,@body)) (defgeneric put (what)) (defmethod put ((what (eql 'common-lisp))) (strong "Common Lisp ")) (defmethod put ((what (eql 'abcl))) (strong "ABCL")) (defmethod put ((what (eql 'sbcl))) (strong "SBCL")) (defmethod put ((what (eql 'elephant))) (strong "Elephant")) (defmethod put ((what (eql 'paserve))) (strong "Portable Allegroserve")) (defmethod put ((what (eql 'linux))) (emphasize "Linux")) (defmethod put ((what (eql 'java))) (emphasize "Java")) (defmethod put ((what (eql 'c))) (emphasize "C")) (defmethod put ((what (eql 'sql))) (emphasize "SQL")) (defmethod put ((what (eql 'corba))) (emphasize "CORBA")) (defmethod put ((what (eql 'uml))) (emphasize "UML")) (defmethod put ((what (eql 'vms))) (emphasize "VMS")) (defmethod put ((what (eql 'six))) (emphasize "Six")) (defmacro title ((&rest styles) &body body) `(progn (paragraph (:font "Helvetica-Bold" :font-size 13 :top-margin 16 ,@styles) ,@body) (hrule :dy 1/2))) (defmacro para ((&rest styles) &body body) `(paragraph (:h-align :justified :top-margin 5 ,@styles) ,@body)) (defmacro itemize ((&key (indent 10)) &body body) ;; grey lambda bullets, yay `(typeset::itemize (:item-fmt "l " :indent ,indent :item-style (:font "Symbol" :font-size 10 :color '(0.5 0.5 0.5)) :text-style (:h-align :justified :top-margin 3)) ,@body)) (defparameter *base-dir* (make-pathname :name nil :type nil :defaults (asdf:component-pathname (asdf:find-system :cv)))) (defparameter *default-output-file* (merge-pathnames "cv.pdf" *base-dir*)) (defun cv (&optional (file *default-output-file*)) (with-document () (draw-pages (compile-text () (with-style (:font "Helvetica" :font-size 11) (let ((pdf:*default-encoding* :symbol-encoding)) (paragraph (:font-size 22 :h-align :center) "Gabor Melis") (paragraph (:h-align :center) "mega@retes.hu") (vspace 24) (title () "PROFILE") (para () "A Senior Software Engineer with solid mathematical background and Lisp development experience. Main focus on machine learning and data mining. Self-motivated, able to work on own initiative and as part of a team. Good communication skills, high personal standards.") (title () "EDUCATION") (para () "1995 - 1997: ELTE, MSc, " (strong "Software Architect, Mathematician")) (para (:left-margin 22) "Branch of study: databases, " (strong "A.I.") ", networking, computer graphics. Diploma on artificial " (strong "neural networks") " and " (strong "fuzzy logic") ". Excellent grades.") (para () "1992 - 1995: ELTE, BSc, " (strong "Programmer, Mathematician")) (title () "PROFESSIONAL EXPERIENCE") (para () "2006 - 2009: " (strong "Ravenpack Ltd") ", Marbella, Spain") (itemize (:indent 32) (item () "Researching relationship between news and the stock market.") (item () "Sentiment analysis of news.") (item () "Filtering out redundant information from text.") (item () "Breeding time series approximators using genetic programming.") (item () "Named Entity Recognition for company names.") (item () "Developed and maintained " (put 'common-lisp) " programs.")) (para () "1998 - 2005: " (strong "EssNet Lottery Services") ", Budapest and Stockholm") (with-style (:left-margin 22) (para () "A major gaming company creating IT solutions for lotteries.") (para () (strong "Senior Software Engineer in R&D and Design groups")) (itemize (:indent 32) (item () "Designed and implemented programmable simulator for a proprietary network protocol in " (put 'common-lisp) " using " (put 'abcl) ".") (item () "Designed and implemented a configuration management solution in " (put 'common-lisp) " to support component based development. The tools were later open sourced.") (item () "Member of the Terminal Design and Configuration Management groups overseeing design, architecture and controlling development.") (item () "Member of the Terminal " (strong "Research and Development ") " group conducting studies, evaluating technologies and tools.")) (para () (strong "Software Engineer")) (itemize (:indent 32) (item () "As designer/programmer/sysadmin in the E6 project helped create the next generation lottery terminal in " (put 'java) " on " (put 'linux) ".") (item () "Worked with " (put 'corba) ", " (put 'java) " and " (put 'uml) " modeling while implementing an internet solution for the existing lottery system.") (item () "Server side programming on " (put 'vms) " in " (put 'c) " and " (put 'sql) "."))) (para () "1997 - 1998: " (strong "FreeSoft Kft") ", Budapest") (itemize (:indent 32) (item () "Reimplemented the Ingres report generator for Oracle databases as part of the migration process.")) (paragraph () :eop) (title () "HOBBY PROJECTS") (para () "On a quite different track, I am also responsible for " (put 'six) ", a Hex playing program for KDE that won the gold medal at the 2003, 2004 and 2006 Computer Games Olympiad. Six is open source and can be downloaded from http://six.retes.hu/.") (para () "Naturally attracted to A.I. related fields I studied and prototyped online recommender systems, trust networks. Participated in the " (emphasize "Netflix Prize") ".") (para () "I am the author of various open-source " (put 'common-lisp) " libraries including SVD, LSA, Boltzmann Machine implementations and a libsvm wrapper (see http://quotenil.com/git/ for a more complete list).") (para () "I am an " (put 'sbcl) " developer, mainly working on signal handling, threads, timers with small excursions to constraint propagation, weak hash tables (based on CMUCL code) and optimizing x86/x86-64 calling convention. Also contributed to other " (put 'common-lisp) " projects, such as " (put 'elephant) " and " (put 'paserve) ".") (title () "KEY SKILLS") (itemize () (item () "machine learning") (item () "intensive " (put 'common-lisp) " since 2002") (item () "strong design skills") (item () "Linux/UNIX since 1995") (item () "excellent knowledge of C and C++ languages") (item () "five years of Java experience")) (title () "LANGUAGES") (itemize () (item () (strong "Hungarian") ": mother tongue") (item () (strong "English") ": fluent") (item () (strong "Spanish") ": intermediate")) (title () "PERSONAL") (itemize () (item () "Born: 1974") (item () "Citizenship: Hungarian") (item () "E-mail: mega@retes.hu") (item () "Homepage: http://quotenil.com/"))))) :margins '(72 72 72 50) :footer (lambda (pdf:*page*) (compile-text (:font "Helvetica" :font-size 10 :color '(0.5 0.5 0.5)) (hrule :dy 1/2 :color '(0.5 0.5 0.5)) (hbox (:align :center :adjustable-p t) :hfill (verbatim (format nil "Page ~d" pdf:*page-number*)))))) (when pdf:*page* (finalize-page pdf:*page*)) (with-open-file (stream file :direction :output :if-exists :supersede :element-type :default) (pdf:write-document stream))))