joe@sondow.com • http://www.sondow.com
SUMMARY
Silicon Valley based, results-oriented software engineer with a passion for crafting great software with clean APIs and code that is easy to read, test, and use. Professional priorities are revenue gains, cost savings, time savings, usability, code quality, and improving engineering teams. Experienced in creating highly usable, scalable, fault-tolerant systems primarily for the web.
TECHNICAL SKILLS
Java, JavaFX, Eclipse, NetBeans, Swing, Groovy, JSP, JSTL, EL, JDBC, JMS, Servlets, Struts, SQL, Regex, SAX, DOM, JavaScript, jQuery, Prototype, Ajax, CSS, HTML, Shell scripting, Velocity, Oracle, SQL, JBoss, Maven, Ant, TextMate, CVS, Subversion, Pentaho Data Integration (Kettle), Hudson, JUnit, Selenium, Firebug, Photoshop, Illustrator, InDesign, Linux, Mac, Windows
EXPERIENCE
QualityHealth (formerly Marketing Technology Solutions)
8/2005-5/2010
QualityHealth is an industry leader in health-related targeted lead generation, powered by Java. The company pays web publishers to deliver consumers to qualityhealth.com and other sites by offering free health samples, discounts, and info. A proprietary survey engine uses profiling questions to qualify consumers for market research surveys about pharmaceutical products. The survey responses are then sold at a premium to pharmaceutical companies as sales leads. In-house content management and newsletter automation systems bring consumers back for more surveys at low cost. The technology team builds and maintains consumer sites, a media partner B2B site, and internal web apps for administration and reporting. Each developer is responsible for end-to-end coding, reviewing, and automated testing of all application layers including JavaScript, CSS, JSP, Struts, EJB, Java, and SQL with indexes and constraints.
MTS is an industry leader in health-related targeted lead generation, powered
by Java. The technology team builds and maintains multiple consumer web sites including qualityhealth.com,
plus a B2B site, and internal web applications for administration and reporting. Each developer is
responsible for end-to-end coding, reviewing, and automated testing of all application layers including
JavaScript, Java, and SQL.
Environment: JDK 6, Windows, Red Hat Linux, Eclipse, JBoss, Apache HTTP Server, Maven, Struts, Spring, EJB, JMS, XDoclet, JSP, HTML, CSS, JavaScript, jQuery, Oracle, SQL, Kettle, XSL, Hudson, JUnit, Selenium, CVS, Groovy, Grails, Java, DbUnit, dbdeploy, Drools, Velocity, Quartz, Splunk, JFreeChart, Apache Commons
Director of Software Development, Jersey City, NJ, 1/2009-Present
Technology improvements and projects
- Rearchitected metrics data storage system to increase thread safety and eliminate database locking, using atomic data types and materialized views.
- Created searchable, categorizable content management system from scratch for 15 content types and newsletter automation system, increasing newsletter output 10-fold. This included automated parsing and conversion of various XML and fixed width data feeds from third party content vendors like Adam encyclopedia and NBC video.
- Built code generator in Swing using NetBeans, to auto-build Entity EJBs, Session EJBs, and JUnit tests.
- Built reflection-based system to preview field differences between like objects before promoting data changes from staging to production servers.
- Wrote Groovy scripts for QA to verify Akamai caching in production, and taught them how to write more scripts.
- Switched continuous integration servers from CruiseControl to Hudson. Maintained and upgraded Hudson to send customized, easy response test result emails using Groovy.
- Cleaned and consolidated CSS and JavaScript files to reduce page load times.
Management
- Led the charge for increased code coverage with massive additions of Selenium and JUnit tests.
- Managed group project to migrate from buggy CMS to faster, more stable solution.
- Gave direction to seven developers and directly managed three, including mentoring and employee evaluations.
- Managed team of six consultants to implement complete overhaul of QualityHealth.com.
- Interviewed dozens of developers. Hired and trained five.
- Ensured that developers got all 1,000+ Selenium test cases passing logically before each release.
Process improvements
- Established coding conventions, rotating peer reviewers, group review process, and wiki documentation process.
- Instituted and led daily stand up meetings and post-release retrospectives.
- Started weekly one-on-one employee meetings to find problems early. This practice spread to other managers.
- Gathered requirements from stakeholders, wrote functional and technical specs.
Senior Software Engineer, Jersey City, NJ, 12/2007-12/2008
- Created "Branded Flow" for survey engine, allowing full visual customization of a 7-page web flow using a CSS file for each brand.
- Implemented graphical charting with JFreeChart for existing reports.
- Enhanced server statistics reports with threshold-based color-coding for at-a-glance production health metrics.
- Added JavaScript-based filtering for long lists in internal administrative application.
- Invented ways to add Selenium testability to subsystems that had no tests due to complex web flow logic.
- Refactored to improve performance, readability, and maintainability, while increasing code coverage.
- Taught technical sessions on jQuery, Selenium, web site usability, Eclipse, CVS.
- Moved shell scripts into version control.
- Acted as liaison for outsourced DBA. Helped implement hash and range partitioning to stabilize Oracle database.
Software Engineer, New York, NY, 4/2006-11/2007
- Created syndicated Ajax survey application deployed across multiple partner web sites. The app used forms, animation, in-page forward and backward flow navigation, cross-domain requests using json-p, jQuery, JSLint and Selenium tests.
- Built event metrics capturing system for 17 user events with a combination of Ajax and server-side code.
- Integrated a new third-party email system, using Kettle for data loading and migration.
Technical Operations Manager, New York, NY, 8/2005-3/2006
- Used Eclipse, vi, CVS to code Java using Entity EJBs and Stateless Session EJBs. Wrote JavaScript functions and HTML. Used DB Studio, Unix shell scripting, sed, awk, Regex, SQL to build data transfer setups for clients including Merck, GSK, and Pfizer. Performed Oracle SQL queries. Installed PGP and SSH public keys. Trained and managed new employee. Wrote documentation.
American Society for Psychical Research, New York, NY
3/2001-10/2002
The ASPR is a non-profit education and research organization specializing in the science and
history of parapsychology.
Web Developer
- Coded JavaScript and HTML. Installed Perl CGI Scripts for product orders and surveys. Scripted batch image
processing. Performed in-house tech support. Wrote detailed computer manuals.
Auditude (formerly Seet Internet Ventures, Inc.), Los Angeles, CA
7/1999-2/2001
SIVI was an internet incubator that spawned over a dozen web companies and is now Auditude, a video monetization company.
Director of Communications
- Managed and analyzed database with SQL on Unix. Converted printed docs into HTML for J. D. Power. Wrote
documentation, performed tech support. Hired and supervised new employee.
SIDE PROJECTS
- http://www.sondow.com – My blog, open source projects, and videos of my tech talks
- Tetris – Written in Swing
- JSoundFX – Sound player with graphical button effects, written in JavaFX
- Shutup – Contributed to open source lightning talk timer written in JavaFX
- http://www.jeanneyan.com – Implemented animated portfolio site for a graphic designer, using jQuery
- http://www.javasig.com – Contributed to Java community site, using JSF
- Inchfox – Created Firefox add-on for unit conversions, written in XUL and JavaScript
- Greasemonkey scripts at userscripts.org
EDUCATION AND CERTIFICATION
Columbia University
12/2004
Java Programming and Software Development Certificate (GPA 4.1)
8-course program over 16 months covering OOAD, UML, Java, JSP, JDBC, SQL, Oracle, XML, SAX, J2EE, EJB (Session, Entity,
Message-Driven Beans), JMS, JNDI, Struts, MVC, DOM, Regex, Log4J, Ant, JBoss, Swing, AWT, threads, sockets, C, C++
Sun Microsystems
5/2005
Sun Certified Programmer for the Java 2 Platform 1.4 (SCJP) (Score: 98%)
Sun Certified Associate for the Java 2 Platform 1.4 (SCJA) (Score: 98%)
Pomona College, Claremont Consortium of Colleges, Claremont, CA
1995-1999
Bachelor of Arts, English
CONFERENCES ATTENDED
- Java Posse Roundup 2009, 2010
- No Fluff Just Stuff 2006, 2007, 2008, 2009
- JBossWorld 2008
- Rich Web Experience 2008
FAVORITE PODCASTS
- The Java Posse
- Buzz Out Loud
- The Official jQuery Podcast
- grailspodcast
- TEDTalks