Shlomi Fish’s Résumé

Shlomi Fish
4 Hakim Eliyahu St.
Tel Aviv, 69120
Israel
Phone Number: 03-6424668
Cell Phone: 054-6232377
Fax Number: 03-6414319
E-mail Address: shlomif@shlomifish.org
Home Page: http://www.shlomifish.org/
Instant Messaging: XMPP/Jabber/Google Chat - ShlomiFish@jabber.org ; ICQ - #207733823

Objective

I am a professional software developer, specialising in writing algorithmic code, text and XML processing, web publishing, and game-related code. I am a hobbyist (but not amateuristic) writer of essays, technical articles, fiction, and humour.

As a software developer, I have read a lot of online and offline literature about software design methodology and software management, and try to form my own coherent best practices based on all that. As a programmer, I try to tread on the fine line between modularity (DRY) and making sure the code is not overly clever and hard to read (KISS).

Education

1997 - 2004
The Technion
B.Sc. in Electrical Engineering (Proper)
Average: 84.6% (Cum Laude)
1991-1995Gymnasia Ivrit “Herzlia”
Major Subjects: Mathematics, English, Physics and Arabic

Experience

Programming - at Workplaces

December 2011 - June 2012

Ron Soferman Image Processing
Software Developer

Development using Python, Linux, Windows, OpenCV, and Amazon Web Services.

July 2010 - January 2011

Reask.com
“Enlightened Perl” Developer

Development of a web application based on Perl 5 , Catalyst, DBIx-Class and similar technologies. Wrote automated tests, implemented features and fixed bugs. Team work using Internet communication.

2008 (for 4 months)

Emoze.com (Part of Emblaze)
Linux C++/Server Developer

Porting a C++ server application from Win32 to Linux.

Worked on a server for push-E-mail (to cellphones), which needed porting from Win32 to Linux. Technologies used were: gcc/g++, vim, libcurl, GNU make, Ubuntu Linux, Perl and others.

2007 (for 3 months)

Tehuti Networks
Linux Kernel Developer and Tester

Linux kernel development and QA engineering for a 10 Gbps Ethernet card that Tehuti develops. Specialised in testing the card under VMware ESX and Xen Enterprise. Coded using Perl and C.

January 1997 - October 1997

Smart Link Ltd.
Programmer and Tester

Testing a software-based modem (Modio), Windows 95 Programming. Manual testing of a soft-modem. Writing test procedures. Programming various utilities in Visual C++, MFC, and Perl.

I began working at SmartLink as a tester for their software-based modem which was based on a soundcard and implemented the connection logic and the DSP in software. I worked with Windows 95 and Windows 95 OSR2. When Smart-Link hired a dedicated and more experienced Q&A Engineer, I became a part-time tester/ high-level programmer/general jack-of-all-trades.

I worked with the Windows Drivers, MFC, Perl for Win32, DJGPP, Cygwin, a myriad of games and modem-related software, as well as Microsoft IIS.

April 1996 - October 1996

Cortext Inc.
Programmer, WWW Site Maintainer, Limited UNIX Maintenance

HTML composition, CGI programming, TCP/IP client/server programs.

I worked at Cortext as a web-designer and CGI programmer. I worked with HTML, Apache, Perl, various UNIX flavours (FreeBSD, SunOS 4.1.3, IRIX) and Windows 95 Workstations. Built several sites there, while still using almost exclusively Perl due to my limited knowledge (at that point) of UNIX.

June 1995 - March 1996

Elpas Electro-optic Systems, Ltd.
Chief Programmer of EIRIS (Elpas Infra-Red Identification System)

Databases, client/server programs (with NetDDE), English/Hebrew MS-Windows GUI

Elpas developed a network of sensors that was installed in each room of a building (say a hospital), and received input from infra-red badges. That made it possible to determine where each person or piece of equipment was located. I maintained the software that ran on a centralised computer, received the raw input from the sensors and processed it. My main issue was to replace an SCO UNIX server software with something internal of our own. We inspected working with Microsoft Access and ODBC, and eventually realised our own in-memory data managing was the most suitable solution due to the real-time nature of the application.

Specialised in Windows (16-bit) Programming, SQL, ODBC, C and C++. Worked primarily with Borland C++ 4.5 and the Microsoft Developer Network.

Fields of Expertise

Programming Languages:

C (since 1992, active use and good knowledge), Perl (since 1996, active use and excellent knowledge), C++ (since 1992, a lot of experience but incomplete knowledge), Bourne Shell/Bash (since 1996, good knowledge and good mastery), Python (since about 2002 - good knowledge but incomplete experience), JavaScript (since 1996 - not a lot of experience)

Studied out of interest: Basic, Object Pascal, Scheme, Matlab, Common Lisp, Haskell, Prolog.

Functional Knowledge: Java, Ruby, Lua, PHP.

Operating Systems:UNIX (Linux, FreeBSD, others), Windows 95/98, Windows 3.11, DOS, Windows XP.
Databases:SQL, Delphi, ODBC, MS-Access, MySQL, PostgreSQL, SQLite.
Internet Related:HTML, XHTML, CGI programming, JavaScript, TCP/IP Sockets, Website Meta Language, Apache, CGI::Application, Catalyst (Web-development framework for Perl), jQuery.
XML Technologies:XML, DTD, RELAX NG, XPath, DOM, XSLT.
Various Programs:Word, Excel, WordPerfect, Corel-Draw, The GIMP, LaTeX, DocBook/XML, OpenOffice.org, Inkscape.
Development Tools:Autoconf/Automake/Libtool, CVS, Subversion, Vim, CMake, git, Mercurial (hg).

Programming - Open Source Projects

2007XML::RSS
Work on the CPAN Perl Module for processing RSS: bug fixing (while adding regression tests), increasing test coverage, and refactoring. Some of it was done as part of a grant from The Perl Foundation.
2004HTML-Widgets-NavMenu
A Perl Module for maintaining HTML navigation menus and site flow.
2003The Better SCM Site - http://better-scm.shlomifish.org/
A web-site for information and advocacy of version control systems and Source Configuration Management (SCM). Includes articles, links and a multiple-item multiple-system comparison of 16 different implementations.
2002-PresentContribution to large-scale open source projects (GIMP, Subversion, KDE and perl).
Code contribution to the Subversion version control system; large-scale code contribution to the GIMP image manipulation program; contribution of documentation and external modules to the Perl programming language.
2002

The Perl Beginners Site - http://perl-begin.org/

A web-site which aims to concentrate and refer to the most recommended resources for Perl beginners on the Net. Contains links, original content, and mirror pages.

2001 - PresentLatemp - a static site generator
A static website generator based on Website Meta Language and many Perl CPAN modules.

2000-Present

Freecell Solver
Chief Developer

A C program and library that automatically solves games of Freecell and similar variants of card solitaire.

Started a C project to automatically solve games of Freecell. Continued in adding more features, optimisations, and clean-ups. Experienced with C Programming, writing portable code, Autoconf/Automake/Libtool, GNU Make, Writing RPM Specs, maintaining a web-site and interacting with users and co-developers over the Internet.

Freecell Solver is distributed under the MIT/Expat licence, and has been integrated into at least three Freecell implementations so far.

1997

MikMod for Java
Programmer

Converting a program from C to Java

Mod Files are music files whose instruments are given as samples, and are played at different notes and effects to create the melody. The conversion was done by converting to C++, and then several steps of Javaisation. The resultant code was working and produced good output, but was not very conformant to the Java style.

Communal and Personal

2001 - Present

An Administrator for the iglu.org.il site.

Maintaining several online services supported by the main server of the Israeli Group of Linux Users (IGLU). Experience with Apache, Perl, rsync, qmail and other programs. Created several online pieces of content using these tools.

1999-Present

Maintaining a private Linux workstation

Maintained several home systems and one at the Computer Networks Laboratory of the EE Department of the Technion. Experience with package maintenance, system configuration, installing software, fixing glitches, and daily use. Used Red Hat Linux (versions 5.x, 6.x), Mandrake/Mandriva Linux (versions 7.x and above) and Mageia Linux (versions 1 and above).

Mathematics

19941st place, first Annual Israel’s Mathematics Contest for School Teams
Along with: Kobi Karlibakh, Or Tsok and Amit Zinger

Technical Articles

2005Building Navigation Menus
An article that discusses web-site navigation and site flow patterns in general, and then explains how to implement them using the HTML-Widgets-NavMenu module.
2004Which Open Source Wiki works for you?
An article overviewing and comparing several popular and open source wiki engines. Published at O’Reilly-Net.
2004The New Breed of Version Control Systems
A comparison of the version control systems that aim to be successors to the CVS version control system. Published at O’Reilly-Net.
2001Perl for Perl Newbies
A series of presentations (along with detailed slides and many examples) that aim to introduce the Perl programming language for beginners.

Creative Writing

2004-2005

The Human Hacking Field Guide

A humorous realistic story about high school teens in mid-2000’s Los Angeles, who deal in programming extensively.

1998

The One with The Fountainhead

A parody on The Fountainhead (by Ayn Rand) modelled on an episode of the T.V. show Friends.

1996-1997

The Enemy and How I Helped to Fight it

A satire about the situation in the Israeli-Lebanese border.

Essays

2009Optimizing Code for Speed
When and why optimizing programs to run faster is important, and some of the general methods to do that.
2003Open Source, Free Software and Other Beasts
An essay explaining what Open Source Software, and Free Software is all about, the difference of terms and philosophies, and the various other terms one should know about.
2004The Joy of Perl
An essay explaining why I like Perl so much.

References

Will be supplied upon request

Languages

HebrewSpeaking, Reading and Writing - Mother Tongue.
EnglishSpeaking, Reading and Writing - Very Good.
ArabicReading and Writing - extremely basic (and rusty) command.

Personal

Born 5 May, 1977
Single