Jake Miles

Senior Software Developer, Writer

jake@jakemiles.com

Download as PDF Print
Tech Skills
node.js, Scala, MongoDB, SQL, Java, Android, Lisp, Scheme, Ruby, Python, PHP, Javascript, HTML, CSS, Prolog, XSLT, LAMP, REST, Bash scripting.

Functional, object-oriented and declarative programming paradigms. Object Oriented design patterns, UML modeling. Experience with 3D graphics, online video/images, API design, cloud computing, web development, code framework and library design, social network development, some artificial intelligence.

Publications
IBM DeveloperWorks
Article illustrating how XSLT can be used as a programming language compiler, providing the examples of generating Java source code from XML in the context of an O/R mapping framework, and producing Postscript and PDF documents from XML, specifically XHTML. Covers the concept of abstraction layers and how to determine what responsibilities and knowledge to keep in each layer. Also covers the basics of Postscript and a number of interesting details about XSLT.
XSLT, Postscript, Java, computer science, programming language compilers
Article designing a small PHP 5 framework called Butterfly, facilitating the transformation of XML via chains of XSLT stylesheets, including automatic caching of the transformed results at each link of the chain.
PHP 5, XSLT, SimpleXML, Object-oriented framework design.
Tutorial on creating a Google Mapplet (an application that runs inside a Google Maps results page), displaying the local weather using the Yahoo RSS Weather feed. Uses the geonames.org reverse geocoder service to translate a longitude/latitude pair into a zipcode, and uses XSLT on the server (PHP 5's XSL module) to transform the Yahoo RSS feed into a KML overlay. The overlay creates a clickable placemark whose popup balloon displays features of the local weather.
PHP 5, XSLT, KML, Google Mapplets API, Google Geocoder, Javascript
Tutorial exploring two approaches to separating content from presentation in PHP 5, rendering parts of this resume into an HTML web page as an example. One approach uses XSLT to first restructure the XML resume data, then another to translate that structure into a view layout, then another to translate that view layout's XML into HTML. The second half of the tutorial does the same thing using PHP's SimpleXML module, and compares the two techniques.
PHP 5, XSLT, SimpleXML
Two-part article series on overlaying custom data on Google Maps using XSLT, KML, the Google Geocoder service and the Google Maps API, creating Placemarks with popup windows displaying all available apartment listings for a theoretical real estate brokerage. Demonstrates use of the Meunchian grouping technique in XSLT.
PHP 5, XSLT, KML, Google Maps API, Google Geocoder, Javascript
Three-part tutorial series on implementing a Facebook application from scratch using Java, PHP 5, IBM Websphere, IBM DB2, Zend Core For IBM, Apache 2, the JSON JSP tag library, and the Facebook Java and PHP client libraries. The tutorial implements half the application in PHP 5, half in Java/J2EE using the Spring framework and Spring MVC, using a reverse proxy from Apache 2 to IBM Websphere to let the Java and PHP halves of the application reside at the same web address, and using mod_rewrite to dispatch requests to the two halves.

Takes the reader through the entire application process, setting up a connection-pooled JNDI data source in IBM Websphere, creating a Java web application using the Spring framework, implementing a PHP dispatcher that lets you structure your PHP and Java code similarly, setting up the proxy and mod_rewrite rules, using a JSP tag library to provide JSON data to the Javascript, and using FBML and FBJS to take advantage of Facebook's framework and create an AJAX-driven social application.

Facebook, Java/J2EE, PHP 5, HTML/CSS/Javascript, AJAX, FBML, FBJS, FQL, IBM Websphere, IBM DB2, Zend Core For IBM, Apache 2, .htaccess, mod_rewrite.
Work Experience
New York, NY Sefaira, Inc.
March 2011 - present Lead Platform Developer
Lead Platform Developer for Sefaira Concept, a web application and SketchUp plugin that architects use to design environmentally sustainable buildings. Work with physics engineers developing the front-end for a high-speed, cloud-based calculation engine, to provide building performance feedback in the initial "Concept" phase of the architectural design process, when the most impact can be made in terms of sustainable design. The app lets architects vary the building's geometry, weather profile, and many characteristics and constraints of the building parametrically, to quickly explore the design space in terms of building performance and sustainability. Participate in software architecture design, code reviews, project planning, user interface design, and both front-end and backend implementation. Process is Agile Scrum.
node.js, Scala, Java (Spring, Hibernate), Ruby, PHP, Javascript (jQuery, dojo), HTML5/CSS, Postgres SQL, MongoDB, cloud computing, Bash scripting.
New York, NY Twistage, Inc.
August 2008 - February 2011 Senior Technical Liason, head of professional services
Joined the team of Twistage Inc as head of professional services. Twistage is a startup providing a full-stack video service for businesses wishing to incorporate video into their websites, including embedding, transcoding, publishing and syndication. Worked with various languages and frameworks developing aspects of the online media platform, API client libraries, auxiliary tools, ad-hoc websites and prototypes, and general research and development. Also managed tech support, helping clients design their websites from an architectural and technical standpoint that integrates online media using the Twistage platform.
Ruby on Rails, PHP, Java, Python, Javascript, jQuery, HTML/CSS, REST, node.js, MongoDB, SQL, LAMP, writing.
New York, NY Conde Nast Publications
July 2007 - July 2008 Senior Analyst, Conde Net
Implemented the Flipbook Wizard, a quickstart "wizard" approach to creating Flipbooks to lower the barrier of entry for Facebook users.
After the restructuring of Flip.com, in which it was streamlined into a social network application, took over as tech lead of the project, including all new development and maintenance of the Flip application on Facebook.
Flex, Java, Facebook, MySpace, OpenSocial
Implemented integration of Flip.com's Flipbook Creator with Photobucket.com, a photo hosting/sharing site, into Flip.com's Flipbook Creator.
Flex, Actionscript, FlexBuilder
.
Joined the development team of Flip.com, a social networking site for teenagers akin to Facebook. Development is in Java, Javascript, Flex and php, using IBM's Websphere application server, the Clearcase source management system and a unix development environment. Work involves interaction with all of CondeNet including a QA department and editorial, and the developers on CondeNet's other websites.
New York, NY Home Box Office
August 1999 - July 2007 Senior Software Engineer
Designed and implemented the Standard MVC Application Framework (nicknamed "Jakeworks"), that refactors away a lot of the functionality common to most Swing apps written at HBO, and also enforces a standard MVC pattern at compile time in the resulting application code. The framework was used with great success on the NQC project (see below), eliminating a significant percentage of the code base and promoting a more Agile-ish development process. It is expected to be used as the foundation for many client-side projects in the department going forward. The framework leverages Java's strong-typing, generics, and the liberal use of template-methods and abstract classes to let the compiler and IDE (IntelliJ) do as much of the work and decision-making as possible on the part of the end developer.
"The OO Presentation": co-created a presentation on object-oriented design, how to read UML diagrams, and a bit about The Unified Process development cycle. Delivered the presentation to non-developer groups (reporting, DBAs, business analysts) in the department on an ongoing basis, to acquaint them with the motivation and process behind the developers' design decisions.
Co-chair, CHOIR Communications Team: elected to the communications team of the department-wide "CHOIR" advisory board. Communications team develops approaches to improve communication throughout the department, including the research of online collaboration tools, group outings to promote team-building, and best practices with regard to email and other online and offline communication. Proposed the idea of organizing full-day team volunteer outings to promote team-building, taking advantage of Time Warners's benefit of 5 salaried days available for volunteer work, which otherwise generally goes unused. Concept still in development.
Nominated for the 2007 Heiskell Award for excellence in volunteer work. Nominated for my work with the St. Luke's Saturday School and New York Cares.
Helped implement the front-end of the NQC project (Network Quality Control), a Swing/Spring/Hibernate system that streamlines a highly detailed and stringent process for managing and screening all media assets that enter the company, including integration with a third-party tape management system. Used Velocity templating engine to produce html reports on the fly.
Java 1.5, Swing, Spring, Hibernate, Velocity.
Helped lead a reading group on "gang-of-four" Design Patterns, presenting and leading discussion of a number of patterns.
Researched object-oriented and post-relational databases and how they might be integrated into the existing enterprise, focusing on db4object. Research ongoing.
Researched online collaboration tools, including wikis and various proprietary products.
Designed and implemented the front-end for the Tango project, an invoicing system catering to multiple departments of the company. Contributed significantly to the analysis/design models and backend design. Made use of Jasper Reports to generate invoices as PDFs.
Java 1.5, Swing, Spring, Hibernate, Jasper Reports, UML.
Editor/Co-author: department-wide best practices documents for Jakarta Struts and Java Server Faces web technologies.
Budget Year Admin web application: collected requirements, designed user interface, implemented web front-end using JSF (Java Server Faces). Application allows Finance department to control departmental yearly budgets and control access to the company-wide general ledger.
APL (Account Profit/Loss) Reconciliation project: programmatically reconciles Sales and Marketing user's orders with the company-wide General Ledger, making sure the two sides reconcile and facilitating the research of discrepancies for the Finance department. Collected requirements, designed user interface, architected, designed and implemented front and back end (Struts, EJB 2.0, JDBC/SQL, Oracle).
Ongoing development of the HBO Common Library (department-wide java library). Wrote HBO's custom Java/Swing drag-and-drop framework, providing image-dragging and data flavor functionality within Java 1.2 and 1.3, and used in numerous applications department-wide.
Joined the CCPI project, a large-scale Swing/EJB 2.0/Oracle application used to manage operation of HBO's telemarketing incentive programs and contests. Did debugging as needed and wrote new functionality to meet a number of hard business-driven deadlines and deliver much complex functionality in little time. Worked on both client and server as needed.
Debugged and rewrote large portions of the iBroadcast project, a large-scale Swing/EJB 2.0/Oracle application used in Asia and Europe to control virtually all of HBO's overseas broadcasting operations, including tracking tapes and shipments, scheduling on-air programming and managing on-air interstitial content. Much refactoring was required because the project was originally outsourced, and proved unmaintainable in its original state. Also implemented many new features, client-side and server-side. Brought on to help the team meet a tight deadline.
Designed and implemented the Sports Tape Logging project, an EJB 2.0, JSP/Struts/SQL/Oracle web app acting as a conduit between the third-party Media Log videotape-logging application and our database. The app uses the Context InterMedia database indexing package to provide fast and flexible text-searching capabilities similar to that of a web search engine.
Helped design and develop the Swing client and developed parts of the EJB 1.1/Oracle server of the New NOVA project, a large enterprise/Weblogic 5.1 application intended to replace a legacy mainframe system that controls the authorization and descrambling of HBO's and other vendors' cable channels for distribution to a complex affiliate network.
Collected analysis requirements and co-designed the user interface of the New NOVA project. Developed numerous and extremely varied approaches to the GUI as the functional requirements of the system fluctuated. Made frequent presentations of the GUI to users as it developed and changed, including prototypes written in Java/Swing, to determine front end usability. Authored extensive documentation of the GUI's behavior and of the functional requirements of the system.
New York, NY Information Builders, Inc.
June 1997 - August 1999 Programmer
Debugged, extended and redesigned much of the front-end Report Broker product, a browser-based database report scheduler (subset of the WEBFOCUS package). Worked with Java, JDK 1.0 and 1.1, Cafe Pro, and FOCUS database language, all on NT. Rewrote parts of the backend report scheduler to use Java servlets and JDBC/SQL, and converted the existing FOCUS scheduling database to SQL.
Implemented the Portable FOCUS product, converting existing software to a multi-platform software package. Worked primarily in C, with conversion of and integration with FORTRAN code, and worked with FOCUS language. Worked on UNIX with use of CMS mainframe.
Helped implement the first international language-support version of FOCUS for Windows. Wrote sections of the front-end, and did general debugging (all work done in Visual C++, MFC).
Volunteer Work
New York, NY Literacy Partners
Summer 2008 - present Group Tutor (teacher)
Completed Literacy Partners training and became a group tutor, teaching a math class one evening per week to adults working towards their GED.
New York, NY New York Cares / Literacy Partners
Spring 2008 - Summer 2008 Tutor
Tutored adults working towards their GED in math once per week. Often created true breathroughs for students with respect to their math skills and their appreciation of their own abilities and potential. During this time, trained with Literacy Partners to become a group tutor qualified to teach classes in math and English.
New York, NY New York Cares / The St. Luke's Saturday School
Fall 2006 - present Team Leader
Organize and lead a team of tutors on behalf of New York Cares to work at the St. Luke's Saturday School, a volunteer tutoring/education program based in Harlem. We work with children from elementary school through high school, focusing primarily on math and writing skills and on preparation for standardized tests like the SAT and high school qualification exams.
New York, NY New York Cares
Fall 2006 Team Leader: New York Cares Day
Led a team of 20 volunteers on New York Cares Day, a citywide one-day volunteer effort in which we do maintenance work and try to beautify the city's schools and parks. Our team painted and did other maintenance work at an elementary school in Queens.
New York, NY New York Cares
January 2004 - present Volunteer
Volunteered periodically on weekend projects, focusing primarily on educating and promoting literacy among underpriviledged children.
Freelance Work
Implemented e-commerce site for The Fire Lotus, an importer of fine products from Thailand such as handbags, jewelry, and art objects. Integrated with Paypal for credit card checkout, including IPN callback to automatically maintain product inventory in the database. Wrote custom administration control panel for the owner of the store to maintain his inventory.
HTML/CSS, AJAX, Ruby on Rails, Paypal integration using the ActiveMerchant Rails plugin.
Riverdale, NY (work done remotely in New York, NY) Matthew Locricchio
Spring 2006 MatthewLocricchio.com
Designed and implemented website for internationally acclaimed children's cookbook author Matthew Locricchio, showcasing his International Cookbook For Kids and his Superchef series of books. Includes a database-driven "Upcoming Events" page with a user-controlled administration interface. Did all visual design and technical implementation including Flash animation.
Flash 8, HTML/CSS, PHP/MySql/Apache + mod_rewrite, much photoshop and scanning work.
Tarrytown, NY (work done remotely in New York, NY) Marshall Cavendish
October 2005 - March 2006 Image Library
Designed and implemented a web-based searchable image library for book publisher Marshall Cavendish, structuring and streamlining the company's workflow in selecting royalty-free images for books in the making. Administrators categorize and tag images with keywords and other meta-data, researchers search and browse the library and collect promising images into "lightboxes", and editors download full-resolution versions of the images for use in publication. Website is password-protected and unavailable for public display.
HTML/CSS/Javascript, PHP, MySql, Apache, mod_rewrite, ImageMagick.
Other Experience
New York, NY The Michael Group
2001 - 2002 Director
Worked with theater group The Michael Group as director, helping actors develop scenes and monologues for showcases.
New York, NY Theater classes with Gene Lesser
1998 - 2002 Student, assistant
Studied acting and directing theater under director Gene Lesser, formerly a teacher at Julliard, Carnegie Mellon. Studied acting, then later directing, assisting in the classes by directing student scenes.
Binghamton University, Binghamton, NY The Binghamton Crosbys
August 1996 - May 1997 Music Director
Directed and conducted the 15-man a-cappella group. Led the group to national recognition (top 10 in the country). Had an original arrangement performed by the group at Carnegie Hall, and still send arrangements back to the group on occasion.
Education

Master's level classes in computer science at Columbia University, to be applied to a degree.

BA English Literature, Binghamton University, 1997 (Binghamton, NY).
Other Interests / Hobbies
Photography, piano, writing, theater (acting, directing, playwrighting), computer science, tennis, dancing, improv comedy.
Pet Projects

defpred: a Common-Lisp program that compiles prolog-like predicates into procedural Common Lisp code