Education
- [2003/09–2006/05] M.Sc. in Computer Science, University of Toronto, Toronto, Ontario,
Canada.
Courses: Machine Learning (A), Advanced Distributed Computation (A+), Distributed Computation
(A), Computer Graphics (A+), Computational Complexity (A-).
- [2000/09–2003/08] B.Sc. in Computer Engineering, Sharif University of Technology,
Tehran, Iran.
Grad courses taken: Combinatorial Optimization (A+), Theory of Cryptography (A+), Advanced
Algorithms (A), Randomized Algorithms (A), Advanced Theory of Computation (A).
International Awards
Technical Skills
- Programming Languages
Proficient in C, Python, bash, PHP. Familiar with C++ and Java.
- Internationalization and Localization
Expert in the Unicode standard and i18n and L10n in software systems in general, and bidirectional writing systems,
Arabic script, and Persian language specifically.
- Software Management
Expert in using GNU autotools (autoconf, automake, libtool), git, SVN, CVS, and Bugzilla for software development
and maintenance.
- Operating Systems and Environments
Proficient in GNU/Linux and UNIX development and tools. GNOME, GNU, and Fedora developer.
- Web Development
Proficient in PHP, HTML, XHTML, CSS. Fluent in XML, XSLT and JavaScript.
- Text Processing
Proficient in using the full power of POSIX and GNU tools.
- Digital Typography
Proficient in TEX, LATEX, METAFONT and METAPOST programming. Familiar with PostScript and OpenType.
- Data Structures, Algorithms, and Graph Theory
Excellent theoretical and practical background, as demonstrated in IOI competitions.
- Relational Databases
Proficient in PostgreSQL. Familiar with MySQl.
Work Experience
- [2006/06–now] Red Hat Canada. Software Engineer.
Responsibilities included improving, implementing new features, and maintaining packages in the Linux
Desktop in Red Hat Enterprise Linux product and the Fedora project, including addressing customer
problems, working with the Open Source community including various parts of the GNOME project,
and handling internationalization (i18n) issues and coordinating with the i18n team.
- [2000/09–2003/08] The FarsiWeb Project. Researcher and senior developer.
The FarsiWeb Project is a research project working on internationalization and Persian localization of
computer systems. As part of this project, I contributed patches to various software projects, including
Mozilla, Qt, KDE, Glib, Pango, Gtk+, fontconfig, glibc, and the Unicode standard, and co-edited two
Iranian national standards on adopting Unicode for Persian computing.
- [Summer–2003] Sharif FarsiWeb, Inc. Co-founder.
Sharif FarsiWeb, Inc. is a company specialized in distributing and supporting Sharif Linux, consulting
technical and legal issues of Free/Open Source Software, and standardizing Persian language issues in
information technology in Iran.
Volunteer Work Experience
- [2007–now] GNOME Foundation. Director. Software maintainer and developer.
Volunteer.
The GNOME Foundation is a non-profit organization that works to further the goal of the
GNOME project: to create a computing platform for use by the general public that is completely free
software. The GNOME Foundation Board of Directors administers the GNOME Foundation.
- [2002–now] The Unicode Consortium.
Contributing volunteer member of technical committee and bidirectional scripts subcommittee.
Software Development Projects
Mostly performed as volunteer unpaid work or as part of my job at the time.
- [2006–now] Cairo Graphics Library. Developer and Co-maintainer.
Cairo is a 2D graphics library with support for multiple output devices. Responsibilities include bug
fixing, making releases, general maintenance, and working with a community of contributors.
- [2005–now] Pango, Vte, Gucharmap, and Dasher. Developer and Co-maintainer.
All are part of the GNOME project. Pango is a powerful modular Unicode text rendering engine.
Vte is a terminal emulation widget. Gucharmap is a Unicode character map application. Dasher is an
innovative predictive text input-method.
- [2005–2006] preload. Developer and maintainer.
preload is an adaptive readahead daemon for desktop systems. It predicts applications that users may
run and prefetches them from the disk for faster startup times. It was awarded a Google grant, and
developed for the Fedora Project. Base work for my Masters thesis.
- [2004–now] GNU miscfiles. Co-maintainer (with Roozbeh Pournader).
By appointment of Richard Stallman.
- [2001–now] GNU FriBidi. Lead developer and maintainer.
FriBidi is an Open Source implementation of The Unicode Bidirectional Algorithm (UAX#9), used in
AbiWord word processor and Pango text rendering engine, as a requirement to support Arabic and
Hebrew scripts. FriBidi is part of the GNU project, by appointment of Richard Stallman.
- [2000–now] RiRa Persian Digital Library. Lead developer and maintainer.
RiRa is a huge database of Persian poetry available to public. Designed and implemented using
PostgreSQL and PHP.
- [1998–now] FarsiTEX Project. Developer and technical manager.
FarsiTEX is a bilingual (Persian, English) typesetting system based on LATEX. Subject of my
BSc. final project.
- [2003] Squash. Developer.
Designed and implemented an HTTP gateway and masquerader for Ministry of Education of Iran,
enabling access from universities across the country to member-only online academic resources.
- [2001–now] Teaching Assistant.
More than ten appointments at University of Toronto St George and Scarborough campuses.
Responsibilities included: giving tutorials, designing and grading problem sets and finals. Mostly in the
area of software design and tools.
Publications and Presentations
- [2007] “GNOME, ten years of freedom”, presented at the first Ontario Linux Fest.
- [2007] “Co-maintaining cairo: cool community, cool code”, with Carl Worth, presented at GUADEC
2007.
- [2006] “All Your Fonts…”, presented at GUADEC 2006.
- [2005] “Bloat of Data in the Unicode Era”, presented at the second Desktop Developers Conference.
- [2004] “Bidirectional Layouts in GTK+”, presented at the first Desktop Developers Conference.
- [2004] “Persian Computing with Unicode”, presented at Twenty-fifth Internationalization and Unicode
Conference by Amir Youssefi.
- [2003] “The Common-Deadline Lazy Bureaucrat Scheduling Problem”, with M. Ghodsi and
A. Sharifi, presented at Workshop on Algorithms and Data Structures, published in proceedings of
WADS’2003: 59–66, Lecture Notes in Computer Science, Springer-Verlag.
- [2002] “FarsiTEX, and the Iranian TEX Community”, with R. Pournader, presented at The
TEX Users Group Annual Conference & Meeting (TUG’2002), published in proceedings of TUG’2002,
TUGboat 22:3.
Languages
- English: Fluent. Reading, Writing, Speaking.
- Persian: Excellent, native.
References
Available upon request.