<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title/>
    <description/>
    <link/>
    <pubDate>2017-09-07</pubDate>
    <item>
      <title>About Me</title>
      <link>/about</link>
      <description>&lt;p&gt;I am a software developer living in New Castle, Delaware.&lt;/p&gt;

&lt;p&gt;I was born in the UK, grew up in Malaysia, and went to college at &lt;a href="http://www.engineering.columbia.edu/"&gt;Columbia
University SEAS&lt;/a&gt; in New York City. After
graduation, I moved to Northern New Jersey and worked for
&lt;a href="http://www.syncsort.com/"&gt;Syncsort&lt;/a&gt; from 1995 to 2009 as a software engineer.
My main focus was on the job and task control modules in Syncsort Backup
Express, an enterprise backup software package. However, I also wrote and
maintained Backup Express data handling modules for Microsoft Exchange, SQL
Server, and Sharepoint. In late 2009, I left Syncsort and moved to Delaware,
where I&amp;#39;ve been working as a software engineer at &lt;a href="https://icetec.com/"&gt;Icetec&lt;/a&gt;
since January 2011.&lt;/p&gt;

&lt;p&gt;Outside of work, I created and maintained
&lt;a href="http://www.vim.org/scripts/script.php?script_id=2204"&gt;TwitVim&lt;/a&gt;, a Twitter
client implemented as a Vim plugin, and &lt;a href="http://plainsq.appspot.com/"&gt;PlainSq&lt;/a&gt;,
a simplified Foursquare client for mobile web browsers. I&amp;#39;ve also written a
number of scripts to do work on Flickr and Twitter, some of which I&amp;#39;ve shared
&lt;a href="http://randomfox.livejournal.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My hobbies include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.geocaching.com/"&gt;Geocaching&lt;/a&gt;, a game of hide and seek using GPS&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.wheresgeorge.com/"&gt;Where&amp;#39;s George?&lt;/a&gt;, a currency tracking project&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.flickr.com/photos/mortonfox"&gt;Amateur photography&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.postcrossing.com/"&gt;Postcrossing&lt;/a&gt;, an international postcard exchange&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On occasion, I also volunteer as a &lt;a href="http://www.hi-4.org/"&gt;mascot character&lt;/a&gt; for
charity events.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Contact Info</title>
      <link>/contact</link>
      <description>&lt;p&gt;You may reach me at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Email: &lt;a href="mailto:cheah1@hotmail.com"&gt;cheah1@hotmail.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Phone: 248-667-8663&lt;/li&gt;
&lt;li&gt;Twitter: &lt;a href="https://twitter.com/mortonfox"&gt;@mortonfox&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Home</title>
      <link>/</link>
      <description/>
    </item>
    <item>
      <title>R&amp;eacute;sum&amp;eacute;</title>
      <link>/resume</link>
      <description>&lt;h2&gt;Skills&lt;/h2&gt;

&lt;dl&gt;
  &lt;dt&gt;Familiar with:&lt;/dt&gt;
  &lt;dd&gt;C, C++, Perl, Python, Ruby, PHP, Javascript, Java, HTML/XHTML, CSS, Vim script, Bourne shell, Flickr API, Twitter API, Foursquare API&lt;/dd&gt;
  &lt;dt&gt;Can help with:&lt;/dt&gt;
  &lt;dd&gt;C#, Haskell, Tcl/Tk, LISP, Scheme, m4, Drupal, Apache, Evernote API, Google Spreadsheet API, Yahoo! Pipes, Prolog, x86 assembly language, PVM, SQL-DMO, SQL Server SMO, Exchange CDOEXM, Exchange EMS&lt;/dd&gt;
&lt;/dl&gt;

&lt;h2&gt;Work Experience&lt;/h2&gt;

&lt;dl&gt;
  &lt;dt&gt;Jan 2011 to present: &lt;a href="https://icetec.com/"&gt;Icetec.com Inc.&lt;/a&gt; - Software Engineer&lt;/dt&gt;
  &lt;dd&gt;Worked on systems software for monitoring and analyzing data from refrigeration, cogeneration, and heating systems at a number of university and corporate campuses. Work was primarily to support and enhance an existing Ruby and Java code base. Projects included:
  &lt;dl&gt;
    &lt;dt&gt;Backup:&lt;/dt&gt;
    &lt;dd&gt;Enhanced and deployed nightly backup scripts to pull data from a dozen remote databases to backup storage.&lt;/dd&gt;
    &lt;dt&gt;Tag filtering:&lt;/dt&gt;
    &lt;dd&gt;Added a module to the SCADA system to clamp or ignore out-of-range data from sensors and instruments.&lt;/dd&gt;
    &lt;dt&gt;GUI enhancements:&lt;/dt&gt;
    &lt;dd&gt;Added an option to the Java GUI to fill in missing timeseries data when exporting data to CSV format.&lt;/dd&gt;
    &lt;dt&gt;Market DAQ:&lt;/dt&gt;
    &lt;dd&gt;Wrote a data acquisition package to retrieve pricing, load, and demand data from PJM, New York, and New England ISOs. The software package stores the data in timeseries tables for the Java GUI, checks daily to ensure the data is complete, and calculates various statistics. (rolling averages, standard deviation, VIX, differences between day-ahead prediction and real-time data) The code was written in Ruby and JRuby.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/dd&gt;
  &lt;/dl&gt;

  &lt;dt&gt;Feb 2010: Freelance - Flickr/Blog mashup&lt;/dt&gt;
  &lt;dd&gt;Used Yahoo Pipes to construct a mashup of a blog RSS feed and thumbnail images from a Flickr photostream for a client.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/dd&gt;

  &lt;dt&gt;Feb 1995 to Aug 2009: &lt;a href="http://www.syncsort.com/"&gt;Syncsort Inc.&lt;/a&gt; - Software Engineer&lt;/dt&gt;
  &lt;dd&gt;Developed and maintained an enterprise backup software package at SyncSort. This software package ran under UNIX and Linux, Windows 2008/2003/2000/NT, and Novell Netware. The code was written mostly in C but with some C++ and C# modules. Projects were in the following areas:
  &lt;dl&gt;
    &lt;dt&gt;Job/task control modules:&lt;/dt&gt;
    &lt;dd&gt;Wrote modules to sequence backup jobs and tasks across multiple clients and servers. Coordinated access to and optimized usage of backup devices while keeping within user-configured resource limits. Investigated and implemented several ways to increase backup concurrency to improve performance.&lt;/dd&gt;
    &lt;dt&gt;Microsoft Exchange support:&lt;/dt&gt;
    &lt;dd&gt;Used the Exchange backup API to support bulk-level Exchange database backup and restore. Originally wrote the code for Exchange 4.0 and updated it to work with Exchange 5.0, 5.5, 2000, 2003, and 2007. In Exchange 2000 and 2003, used CDOEXM to enumerate and manage storage groups and stores. In Exchange 2007, used PowerShell EMS (Exchange Management Shell) to enumerate and manage storage groups and stores.
    Also used Exchange MAPI (Messaging API) to support brick-level (folder and message-level) Exchange backup and restore.&lt;/dd&gt;
    &lt;dt&gt;SQL Server support:&lt;/dt&gt;
    &lt;dd&gt;Used Transact SQL and SQL Server VDI (Virtual Device Interface) to support SQL Server database backup and restore. Originally wrote the code for SQL Server 6.5 and updated it to work with SQL Server 7.0, 2000, 2005, and 2008. Used SQL-DMO to enumerate and manage databases and tables in SQL Server 7.0, 2000, and 2005. In SQL Server 2008, used SQL SMO (Server Management Objects) to enumerate and manage databases and tables.&lt;/dd&gt;
    &lt;dt&gt;Sharepoint 2001 support:&lt;/dt&gt;
    &lt;dd&gt;Implemented a COM interface that Sharepoint will invoke to transfer data to our backup module.&lt;/dd&gt;
    &lt;dt&gt;Windows registry support:&lt;/dt&gt;
    &lt;dd&gt;Used registry API to backup and restore the Windows registry.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;/dd&gt;

  &lt;dt&gt;Mar 2008 to Dec 2015: TwitVim Twitter client&lt;/dt&gt;
  &lt;dd&gt;Wrote a Twitter client that runs in the Vim editor. Added support for timeline display and interaction, Unicode, popular URL shorteners (e.g. bit.ly, TinyURL, UrlBorg, SnipURL), conversation threading, retweeting, hashtags, and lists. Added support for http I/O via cURL and the Perl, Python, Ruby, or Tcl interfaces in Vim. Added support for OAuth logins. &lt;br /&gt;&amp;nbsp;&lt;br /&gt; &lt;a href="http://vim.sourceforge.net/scripts/script.php?script_id=2204"&gt;Project page&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://code.google.com/p/twitvim/"&gt;Source code&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;
  &lt;/dd&gt;

  &lt;dt&gt;Feb 2011 to Feb 2016: Plain Square Open Source Project&lt;/dt&gt;
  &lt;dd&gt;This webapp is a successor to 4sqNoGPS. It is a lightweight Foursquare client for mobile web browsers and is intended to replace the Foursquare mobile website. Plain Square supports both geolocation, using device GPS and/or cellular/wi-fi position, and direct coordinate entry. Like 4sqNoGPS, Plain Square speeds up many operations by making the most common action single-click and takes the user through as few screens as possible. Plain Square uses OAuth version 2 to log in to Foursquare to avoid having to store user passwords. Plain Square supports version 2 of the Foursquare API. It is written in Python and designed for hosting on Google App Engine. &lt;br /&gt;&amp;nbsp;&lt;br /&gt; &lt;a href="http://code.google.com/p/plainsq/"&gt;Source code&lt;/a&gt;&lt;br /&gt; &lt;a href="http://plainsq.appspot.com/"&gt;Demo&lt;/a&gt; &lt;br /&gt;&amp;nbsp;&lt;br /&gt; &lt;/dd&gt;

  &lt;dt&gt;Sep 2010 to Jan 2011: 4sqNoGPS Open Source Project&lt;/dt&gt;
  &lt;dd&gt; This webapp is a Foursquare client for older phones that do not have GPS. It surpasses the feature set in Foursquare's own mobile website and allows manual input of coordinates. Input is optimized for handsets without full keyboards by allowing entry of coordinates using only digits. 4sqNoGPS expedites the check-in process by making the default action single-click and takes the user through as few screens as possible for all other actions. 4sqNoGPS uses OAuth to log in to Foursquare to avoid storing user passwords. It is written in Python and is designed to be hosted on Google App Engine. &lt;br /&gt;&amp;nbsp;&lt;br /&gt; &lt;a href="http://code.google.com/p/4sqnogps/"&gt;Source code&lt;/a&gt;&lt;br /&gt; &lt;a href="http://4sqnogps.appspot.com/"&gt;Demo&lt;/a&gt; &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/dd&gt;
  &lt;dt&gt;1993 to Present: Perl Scripting experience&lt;/dt&gt;
  &lt;dd&gt;Scripted in Perl starting with Perl 4.0 in 1993 thru Perl 5.10 at present. Used Perl mostly after hours on a hobbyist basis but also sometimes at work for file management and text processing tasks.
  &lt;dl&gt;
    &lt;dt&gt;10 Million Photos Flickr group stats:&lt;/dt&gt; 
    &lt;dd&gt;Wrote a set of Perl scripts to generate weekly and overall stats for the Flickr 10 Million Photos group. These scripts store data in a local SQL database and only query Flickr incrementally on each run to keep Flickr API usage to a minimum. Uses Flickr API and SQLite. Published the code at: &lt;a href="https://github.com/mortonfox/ten-million-photos"&gt;https://github.com/mortonfox/ten-million-photos&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;/dd&gt;

  &lt;dt&gt;PHP experience (3 years)&lt;/dt&gt;&lt;dd&gt;&lt;ul style="margin-top: 0;padding: 0 0 0 1.5em"&gt;&lt;li&gt;&lt;a href="http://www.limpidity.com"&gt;Limpidity webcomic&lt;/a&gt; site: Entire website was coded in PHP. In particular, comic strip navigation logic (links to next, previous, first, and last comic strips) was implemented in PHP.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;a href="https://github.com/mortonfox/mbnote"&gt;Mobile notebook&lt;/a&gt; webapp: PHP-based webapp that allows the user to read, write, and search notes on a mobile phone. Notes were stored in a SQLite database and the PHP code generated XHTML-MP output for mobile browsers.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;
    &lt;/li&gt;
  &lt;/ul&gt;
  &lt;/dd&gt;

  &lt;dt&gt;May 1993 to Dec 1994: Research group computer programmer&lt;/dt&gt;
  &lt;dd&gt;Developed, documented, and maintained &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.38.3590&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;a parallel software system to compute high dimensional integrals rapidly&lt;/a&gt; by sampling at Sobol points. This system was used for the purpose of valuing mortgage securities. Worked as part of a research group within the Columbia University Department of Computer Science. Used C and the PVM library.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/dd&gt;

  &lt;dt&gt;Sep 1992 to Dec 1994: Columbia University - Teaching Assistant&lt;/dt&gt;
  &lt;dd&gt;Graded homework assignments, helped students with subject matter, and proctored examinations.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/dd&gt;
&lt;/dl&gt;

&lt;h2&gt;Education&lt;/h2&gt;

&lt;dl&gt;
  &lt;dt&gt;Fall 2004 to Fall 2006&lt;/dt&gt;
  &lt;dd&gt;IT courses at Capella University, including Wireless Web Design, Graphics and Multimedia, System Development, and Project Management.&lt;/dd&gt;

  &lt;dt&gt;Fall 1991 to Dec 1994&lt;/dt&gt;
  &lt;dd&gt;Bachelor of Science program, majoring in Computer Science, at the Columbia University School of Engineering and Applied Science. GPA: 3.8&lt;/dd&gt;
&lt;/dl&gt;
</description>
    </item>
  </channel>
</rss>
