Welcome to Joyful Systems.

I'm Simon Michael and Joyful Systems is my consulting business. I'm an experienced software developer, sysadmin, consultant and coach, based in Maui, Hawaii (and sometimes in Wicklow, Ireland). Find out more about my services.

I love to build effective, reliable, empowering tools and applications. I created the hledger, Zwiki and other free software projects.

This website has been gracefully decomposing for a while. Will 2023 be the year of update ? This page, at least, is current.

Simon Michael
https://joyful.com
simon@joyful.com
Chat: simonmic:matrix.org
Mastodon: @simonmic@fosstodon.org
+1-310-795-0167
Current timezone: HST

Consulting services

About me

I'm an experienced software developer, sysadmin and mentor who can solve a wide range of problems efficiently and with high quality and reliability. I have created several successful free software projects and shipped significant commercial projects based on Zope, Plone, Rails, Haskell, Javascript, Java, Python, PHP and C, working solo or in small to medium-sized teams. I'm comfortable with front-end and back-end web development and multiple technologies and platforms. Here's a resume.

I worked in the networking hardware industry from 1990 to 1996 before starting Joyful Systems, my software consulting business. In 2007 I built enterprise web apps with Heroku's founders at Bitscribe, and from 2011 to 2013 I worked onsite at Gehry Technologies as lead front-end developer for a large SAAS app. Past clients include Gehry Technologies, KCRW, UCLA Institute of Archaeology, Simon Fraser University, Vienna University of Economics and Business Administration, Champion Windows, Engage Group, OpenApp, Webgami, ACEI, Weight Watchers Franchise Association, Vertel, Sonoma Systems and more.

Free and open-source software

My work most often involves free/open-source software solutions. I know what's available, what's good, what's got a bright future, and how to interact with FOSS communities. For you this means lower costs, higher quality, and avoiding lock-in to proprietary solutions or dead-end projects.

Services

I have wide interests and am always looking for new challenges, technical and otherwise, so feel free to ask about things not on this list. I provide:

  • technical analysis and problem-solving
  • support, training and mentoring for developers, technology owners and non-technical folks
  • support and enhancement of my free software projects
  • web sites and web applications, all sizes
  • custom software design and development
  • hosting, operations and maintenance
  • technical writing and documentation
  • community building
  • bookkeeping and business automation

How I work

I work with clients in southern california and around the world.

If you need a problem solved and don't want to bother with the details, I'll use my experience to deliver your desired end result in the smartest and most economic way.

If you want more visibility and control, I can provide an agile, iterative process where

  • you can see results right away
  • you always have something that works (if we are building something)
  • you get prompt insight into what things cost
  • you can adjust goals and priorities at any time

And if you or your team wants to learn how to do what I'm doing, I can train, mentor, document and/or support for as long (or as short) as it takes.

Rates

I can offer hourly, daily, monthly or fixed rates, comparable to market rates for a senior engineer doing whatever-it-is. If your project is a good fit we will probably find a way to work together.

Get in touch!

You can contact me for an initial consultation at no charge.

Simon Michael

Simon Michael
https://joyful.com
simon@joyful.com
+1-310-795-0167
Current timezone: HST

Experience

Free software/community projects

I lead and operate a number of projects, including:

2013-: Consultant, Joyful Systems

  • I have been maintaining & enhancing a 100k-LOC php line-of-business app for Champion Windows for several years. I keep it running, investigate and solve problems, add new features and manage technical debt.

2011-2013: Full-time contractor, Gehry Technologies

  • I was lead front end UI developer (plus back end java work) on GTeam, a relatively complex SAAS app for architecture/engineering/construction collaboration. I worked onsite for a year with a medium-sized local & global team to rework and enhance the web UI, resulting in a successful product launch.

2007-2011: Consultant, Joyful Systems

  • refactoring, upgrades, development and maintenance of kcrw.com & related systems (plone, zope, zeo, apache, squid, php, javascript, postgres, mysql, filemaker, gnu/linux systems administration)
  • built a team and solved critical performance problems with KCRW's plone setup, rescuing their multi-year investment
  • helped design, build and integrate a new state-of-the-art media player/promo management system for kcrw.com
  • provide design review, support and technical liaison for other projects/contractors
  • provide support and training for KCRW web team
  • set up a staff wiki, code revision control; analyzed, documented and refined content management and development processes

2006-2007: Web developer, Bitscribe

Built and maintained diverse rails and php enterprise apps within a high-throughput agile team:

  • a warehouse inventory tracking system
  • a complete operations management system for a large window manufacturer
  • a project management and dubbing/casting application for a leading movie dubbing service
  • a personalized stress-reduction service
  • ordering and fulfillment back end for wearefamily2006.com
  • recruitment extra/intranet features for Bitscribe

1996-2006: Consultant, Joyful Systems

1991-1996: Software engineer, Retix/Sonoma Systems

  • embedded systems, bridges/routers/switches, C, debugging..
  • designed and implemented new menu system for Retix product line
  • network management, SNMP, C++..
  • systems/network admin, scripting languages, web evangelism..

1990-1991: Support engineer, Retix Ireland

  • customer support, troubleshooting & debugging X.400 mail server and OSI network protocols

Early projects

  • 1989: Hypercard-based midi music sequencer
  • 1986: Irish Young Scientists exhibitor, english instructional program for schools

Skills & technologies

Unix, GNU/Linux, Windows & Mac OS systems administration & support (20 years) - Website & web app development & hosting (17) - Free/open source software project management (12) - Wiki building & engine design (12) - Technical writing & documentation management (11)
Python (12 years) - Zope (11) - Plone (7) - C (6) - PHP (4) - Squeak Smalltalk (4) - Postgresql/Mysql (4) - Haskell (3) - Ruby/Rails (1) - Emacs Lisp, Scheme/Racket, Perl, IO

Education

  • BA, BAI in Computer Engineering & Mathematics, Dublin University, Ireland, 1990

Free software projects

My darcs repositories: http://hub.darcs.net/simon
My git repositories: https://github.com/simonmichael

I created and lead these projects:

hledger

hledger is a tool for easily tracking money, time, or other commodities, using standard accounting principles. For some, it is a bare-bones, less complex, less expensive alternative to Quicken or Microsoft Money. hledger aims to help both computer experts and every-day users gain clarity in their finances and time management.
http://hledger.org

Zwiki

I began writing Zwiki, a state of the art wiki engine, in 2000 and have been leading this free software project since. Zwiki is a highly effective tool for gathering, organizing, and communicating knowledge for a single individual, a small workgroup, or a large distributed community. It has been used by the Debian, Ubuntu and Zope projects, among others.
http://zwiki.org

shelltestrunner

shelltestrunner is a handy cross-platform tool for testing command-line programs or arbitrary shell commands. It reads simple declarative tests specifying a command, some input, and the expected output, error output and exit status.
http://joyful.com/shelltestrunner

hackagebot

I use rss2irc, supervisord and cron to maintain several public announce-bots on irc.freenode.net, including: hackagebot in #haskell, (and, less recently, hledgerbot in #ledger, squeaksobot and squeakquorabot in #squeak, etoystrackerbot and etoysupdatesbot in #etoys, zopeplanetbot in #zope). Use /whois BOT to see a little help on what that bot announces. The goal is to provide useful, community-enabling, reliable, non-annoying announcements with minimal maintenance.

I maintain these projects:

rss2irc

rss2irc polls an RSS or Atom feed and announces new items to an IRC channel. I took Don Stewart's original bot and added reliability and features needed for real-world use.
http://hub.darcs.net/simon/rss2irc

FunGEn

FunGEn is a cross-platform OpenGL/GLUT-based 2D game engine for haskell, created by Andre Furtado. I have updated and republished it for today's haskell game developers.
http://joyful.com/fungen

darcsum

darcsum is an emacs package providing a more efficient user interface for the darcs revision control system, in the style of pcl-cvs.
http://joyful.com/darcsum

I am a contributor to projects such as:

Squeak

Squeak is the leading community-developed Smalltalk environment, the direct descendant of the original Smalltalk. It is an amazing productivity tool, educational playbox and mind-expanding example of "real" OO.

I built a new wiki for more organised Squeak notes:
http://squeak.joyful.com

I started the Planet Squeak blog aggregator(s) to help grow the Squeak community:
http://planet.squeak.org
http://planetes.squeak.org
http://planetfr.squeak.org
http://planetjp.squeak.org
http://planetcroquet.squeak.org
http://planetmisc.squeak.org.

Other activities:

darcs

I've been a happy user of darcs for some time. Some things I've been involved in as a darcs contributor:

  • sysadmin - email setup and the roundup bugtracker
  • bug wrangling
  • cleanup, infrastructure and bugfix patches
  • the first darcs sprint
  • documentation
  • migrating the wiki from MoinMoin to Gitit + restructured text
  • organizing
  • darcs-benchmarks
  • darcsweb
  • darcs-graph

ledger

John Wiegley's ledger is a command-line accounting tool. I provide support, bug reports and the occasional fix, and I created and manage the ledger-cli.org website.

beancount

I made some parsing improvements to beancount, Martin Blais's python ledger clone.

PythonFIT

I did the initial port of Ward Cunningham's Framework for Interactive Test to python.
http://fit.zwiki.org

also...

pandoc, gitit, darcsden, darcs-rss-setup, darcsweb, Monadius, patch-tag, ubuntu, happstack, yesod, ...

Surveys

2012

"I'm gathering usage data on my main FOSS projects, to help me prioritize and steer them. I've prepared a short survey, 10 optional questions that should take 1-5 minutes per project. If you use any of these projects and/or would like them to continue, you can help a lot by adding your experience.

  • All fields are public. Contact info is quite helpful, so if you provide an email address I will save and remove it.
  • Summaries have pie charts, you can see them after completing the survey. At other times they require a login and access request."

hledger

survey results spreadsheet summary

shelltestrunner

survey results spreadsheet summary

rss2irc (& hackagebot)

survey results spreadsheet summary

FunGEn

survey results spreadsheet summary

Zwiki

survey results spreadsheet summary

ledger (for John Wiegley)

survey results spreadsheet summary