Micah Tischler

Contact

  • +1-781-990-UNIX
  • +1-781-990-8649
  • webwork@(my name).com

Capabilities

Through the years I've worked on enough different projects and platforms to accumulate a rather wide and varied set of skills.

Project Examples

Over the course of recent engagements, I've produced solutions to a number of different problems in a variety of sectors. To present a sampling of efforts, I've:

  • architected and prototyped a complete rework of an online video ingestion, conversion, and distribution system, including a hybrid MySQL/NoSQL schema, a cascading, role-based access control system, as well as conducting research, evaluation, selection, and integration with third-party, hardware-accelerated codec conversion and quality normalization mechanisms.
  • designed an extensible system for a client in the online advertising space to correlate user identifications across various ad-serving networks, implementing a configuration and extension tool in Python, server-side hooks in Lua, and client code in JavaScript - which I was also responsible for verifying across a wide range of browsers, up-to-date and otherwise. (Odds are you have cookies from that system in your browser right now.)
  • diagnosed both software and hardware problems in a client's embedded system, located and specified cost-effective off-the-shelf replacement devices, designed, implemented, and QAed a highly pluggable, efficient software solution in C to handle their mission-critical, quasi-realtime processing, and supported deployment efforts - deployments which've never seen a single software-related outage.
  • conceived and built a zero-knowledge webapp in PHP and JavaScript, allowing a client to safely pass sensitive customer data over relatively untrusted hosts and services, providing end-to-end security and improved user confidence.
  • designed and implemented a meaty, robust JavaScript widget which, due to deployment situations, could not reasonably depend on external libraries and had to be constructed in a standalone fashion, while still needing to carry out extensive UI and cross-domain asynchronous IO operations - long enough ago that cross-browser problems were still a much bigger issue.
  • reverse engineered a proprietary network protocol (for legitimate compatibility purposes) and constructed a server for it in C.
  • designed and built a LAMP-based system for managing automated advertising campaign distribution across regions, verticals, vendor types, etc..., supporting impression-limits, inter-campaign competitive conflict resolution, and product-based triggering.

Interaction Examples

Of course, technical skill is only part of the story. Projects don't take place in a vacuum, as human interaction is a huge part of business. Over time, between independent work and my conventional career I've:

  • regularly liaised with remote workers from as close as Florida and New York to as far away as Vietnam and the Czech Republic.
  • often helped clients present and justify proposed solutions to their management, board, and/or investors.
  • mentored junior engineers, as well as more senior contributors who were looking to adapt to a different context.
  • built up extensive experience gathering requirements and turning them into functional specifications.
  • frequently been the trustworthy voice and face of engineering in pre- and post-sales contexts, as well as client calming and expectations-management situations including:
    • mollifying livid US Navy admirals sufficiently to gain a support opportunity and quickly resolve their root issue. (This happened a number of times, actually. They always went away happy.)
    • providing "how [the service] can solve your problems" spiels to NCAA head coaches, fielding questions, helping with initial platform familiarization, and collecting / prioritizing feedback to guide future development efforts.
    • satisfying the information and security officers of a large German bank that the solution in question was the right choice for them, despite being the only technical representation on the call, and said call coming in at approximately 3 AM without warning.
    • driving retail IT device adoption by working to allay brick-and-mortar operators' fears through one-on-one architecture explanation, risk/reward breakdowns, and low-hassle system customization, where needed.
    • traveling to Riyadh on less than 48 hours notice to support a deal with the largest telecom provider in the Arab region, where I was tasked with field issue diagnosis and resolution as well as being "the guy with the wrench" in meetings with their top brass.

Skill Details

To give a quick, non-comprehensive rundown of skill experience:

  • Languages: assembly (Motorola, SPARC, x86), AWK, Bourne [again] shell, C/C++, CSS, HTML, Java, JavaScript, Lua, Perl, PHP, Python, Scheme, SQL, Tcl/Tk, XPath/XSLT
  • Contexts: daemons, databases, installers, kernel drivers (Solaris and Linux, mostly, with some Windows and OSX), libraries, web backends and frontends
  • Revision Control Use: CVS, git, Perforce, RCS, SVN
  • Revision Control Administration: CVS, git, SVN

Networking

When it comes to the subject of networking, I've done so much in that regard that I felt the subject deserves its own section. I have rather extensive, low-level (meaning more detailed, not as in entry-level) experience with:

  • ethernet (802.3 and some 802.11)
  • IP-over-ATM
  • IP (mostly v4, but some v6 as well)
  • ARP
  • TCP, where I:
    • personally designed and built a commercially deployed man-in-the-middle stack.
    • implemented and researched connection-state attack mitigation techniques relating to:
      • DoS (single point and distributed)
      • Hijack (ISN vulnerabilities, etc..)
    • developed methods to enhance end-to-end performance from a middle intercept point.
  • proxy (of the deep protocol inspection variety), server, and (sometimes) client programming with protocols including:
    • FTP
    • HTTP / HTTPS
    • DNS
    • IPSec (a common tunneling protocol)
    • SIP (a VOIP protocol)
    • XDMCP (X-Windows Display Manager Control Protocol)
  • BSD-style (rather common) and Solaris-style routing internals.
  • clustering (HA/LB) topics, such as:
    • VIP (Virtual IP address) management
    • application vs. network-level implementation techniques
    • problems that can arise via specific failure combinations (and suitable resolution approaches)
    • live TCP/UDP connection migration between nodes
  • NATing
  • many flavors of tunneling.