Skip to content

Software Development

“Programming is not a science. Programming is a craft.”

Richard M. Stallman, founder of the Free Software movement

I've been programming since 1999. At the end of the '90s, when the internet found its way into Israeli homes, I created a fan website for my favorite soccer team, Bnei-Yehuda Tel-Aviv. I can still remember the short HTML guide I read back around 1996 so I can start creating websites. Back then, the internet was largely static. When content management systems and the dynamic web began to show their faces, I started playing around with CMSs, message boards and other related software. Perl was the most popular language for web development at the time, and being unsatisfied with the CMSs and MBs of those days, I began modifying them to suit my needs, and thus started learning Perl by using it.

Eventually, I started creating my own programs. I became infatuated with the Free Software movement, and moved my workstation from Microsoft Windows to an all-free-software GNU/Linux system. When I started learning Mechanical Engineering in Tel-Aviv University at 2002 (for some reason), I checked out every Perl-related book from the library. I checked the famous "Camel Book" (Programming Perl) on my first week at the university and returned it to the library after four years, two weeks after I've graduated.

As I continued to hone my skills as a developer, I started releasing software libraries under free licenses to CPAN. I continued to create websites, all managed by my own software projects. Among these websites, I have maintained the official website for Bnei-Yehuda Tel-Aviv for more than 10 years.

When I was released from the Israeli army in 2009, where I served as a Mechanical Engineer, I sought out a career in software development. I've been employed by Bezeq - The Israeli Telecommunication Corp - as a software developer in a small team of developers in the company's engineering section, in charge of writing software for managing, controlling and diagnosing Bezeq's services. I have received an Employee of the Year award in 2011, a Project of the Year award in 2012, and a Project of the Year award in 2013.

I left Bezeq at the end of December 2015, moving to Israeli startup company Scalock, which specializes in development of security solutions for containerized applications running on top of the Linux operating system.

“Talk is cheap. Show me the code.”

Linus Torvalds, creator of Linux

The following is a list of software projects I have released under free licenses. Most of these are in Perl, in which case they can be installed from CPAN. All are hosted at GitHub, and can be easily forked.

Web Development

Leyland Perl
Plack-based framework for RESTful web applications
Plack-App-MCCS Perl
Minify, Compress, Cache-control and Server static files in Plack applications
Markup-Unified Perl
A simple, unified Perl interface for Textile, Markdown and BBCode
DBIx-Class-InflateColumn-Markup-Unified Perl
Automatically formats a DBIx::Class text column with Textile, Markdown or BBCode
McBain-WithPSGI Perl
Turns McBain into a RESTful PSGI web application framework
Net-Server-ZMQ Perl
Preforking job server based on Net::Server
Szyslak JavaScript
Grunt-based static site generator with an attitude
Tenjin Perl
Perl CPAN version of the fast templating engine Tenjin
Catalyst-View-Tenjin Perl
Tenjin view class for Catalyst
Dancer-Template-Tenjin Perl
Tenjin wrapper for the Dancer Perl framework
WWW-Postmark Perl
API for the Postmark mail service
Plack-Middleware-PyeLogger Perl
Use Pye as a logger for Plack applications

Database-Related

Dancer-Session-MongoDB Perl
MongoDB session backend for Dancer
Giddy Perl
Schema-less, versioned media/document database based on Git
Plack-Session-Store-MongoDB Perl
MongoDB session store for Plack
MongoDBx-Class Perl
Flexible ORM for MongoDB databases
MongoDBx-KeyValue Perl
Use MongoDB as if it were a key-value store
MorboDB Perl
In-memory database, mostly-compatible clone of MongoDB

Application Utilities

Abilities Perl
Simple, hierarchical user authorization for web applications, with optional support for plan-based paid services
Brannigan Perl
Comprehensive, flexible input validation and parsing with Perl, targeted at web applications
Catalyst-Plugin-Authorization-Abilities Perl
Ability based authorization for Catalyst
Entities Perl
User management and authorization for web applications and subscription-based services, based on 'Abilities'
Homer Perl
Simple prototype-based object system
McBain Perl
Framework for writing portable, auto-validating, self-documenting APIs.
McBain-WithPSGI Perl
Turns McBain into a RESTful PSGI web application framework
McBain-WithGearmanXS Perl
Turns a McBain API into a Gearman worker
McBain-WithWebSocket Perl
Turns a McBain API into a WebSocket server
McBain-WithZeroMQ Perl
Turns a McBain API into a ZeroMQ REP worker
Locale-Wolowitz Perl
Dead simple localization for web apps with JSON
MQUL Perl
General purpose, MongoDB-style query and update language
Pye Perl
Session-based logging platform on top of SQL/NoSQL databases
Pye-MongoDB Perl
MongoDB backend for Pye
Pye-SQL Perl
MySQL/PostgreSQL/SQLite backend for Pye
SandyRivers JavaScript
Self-hosted, NodeJS feed reader with absolutely no features

Other

Text-SpanningTable Perl
ASCII tables with support for column spanning
Lingua-EN-Titlecase-Simple Perl
Automatically title-case headlines and title-texts

© Copyrights, Ido Perlmuter. Please do not use images or content from this website for any purpose without prior approval from me.