I am a highly technical Agile Coach and Software Engineering Manager. I am experienced in software design, analysis, and development, as well as hands-on team leadership. My strengths are my diversity and depth of experience, perseverance, ability to learn new technologies quickly, and organizational skills. My focus is empowering teams to be more effective and satisfied, making better, more scalable, more adaptable software.
My biggest competitive advantage as a Software Engineering Manager is that I did not move up to management because there were no higher Software Engineer positions; I have been working towards leadership and management my whole career. I have a dual major in Business Management and Business Computer Information Systems. Even outside of work, I am on the Board of several not-for-profit groups.
My biggest competitive advantage as an Agile Coach is that coming from a Software Engineer and Manager background, I have a lot of hands-on experience with the tools that support Agile, software development, continuous integration, automation, and knowledge management. This is especially true with Jira, Confluence,Git, and Jenkins.
I am looking for a Technical Agile Coach or Software Engineering Manager position or consulting contract in the Greater Boston area with opportunities to apply that experience. I have the most experience in Java and other cross-platform technologies, but I’m fluent in many others, as you’ll see below. I would also prefer an Agile/Scrum environment, but that’s not a requirement.
In the right environment, I bring the best of both worlds. I have extensive experience in software development, architecting, and problem-solving. But I also bring a knowledge of the current technologies, and a thirst to learn more and expand my capabilities. I’m comfortable working on the top presentation tiers as well as the lower business rule and infrastructure tiers of applications.
Fields of expertise: computer languages, web technologies, semantic web, metadata, natural language processing, Agile/Scrum/testing, database, ETL, and data mining, Linux and UNIX, knowledge management, training and assessment, toolsmithing and automation, and team leadership. Note that many of the projects mentioned here are not public-facing (in fact many were parts of defense contracts) or were for companies that no longer exist, so I cannot show them here.
Several of my recent jobs have been eCommerce, working on the catalog data, the user experience, and the infrastructure design. eCommerce requires intense scalability, availability, security, and performance, with direct financial consequences if any of those slip.
I’ve also worked in SAAS (Software As A Service) environments, which presents problems like multi-tenancy and live upgrades, while giving more control over use of the product and how many versions must be supported at once. It also supports web services nicely.
Both eCommerce and SAAS usually involve big data. Some of it is transaction data and osme of it is product data.
I have worked in financial companies, Litle (now Vantive) in particular is a credit card transaction processing company.
Though more of my embedded and device experience is hobby-level, I do have experience in the medical device industry, working on microprocessors, interfacing with them, and communicating between them and computers/tablets/phones.
At Aptima, I worked on several projects involved in NLP, AI, and machine learning. These projects generally centered around predicting future input (communications, financial measures, etc) based on patterns of input seen in the past.
( Back to top)
- Litle is a credit card transaction processing service (third-party processor). They interfaced with merchants using a SaaS (Software as a Service) or ETL interface. The core product runs as Java/J2EE inside JBoss and Tomcat with data persisted in a DB2 database.
- Polaroid‘s Instant Digital Prints division developed a picture printing kiosk. I worked on the UI of the prototype version in Python. On the production version, I worked on the interface to the hardware drivers in Java and JNI and C++.
- M-PORTAL (described below) has a PHP back end web service supporting an HTML and Adobe Flash front end.
( Back to top)
I’ve been doing web development for over a dozen years, from straight HTML to complex J2EE systems.
- Aptima’s website was originally developed by a graphic artist, with all common content was duplicated in each file, and no way to maintain it other than FTP. I moved all of the common content to template PHP files, moved much of the look and feel to CSS, and made much of the site database-driven, so content can be maintained through the database. I also set up a separate development copy of the website, using Subversion source control to manage changes between the two.
- I implemented and maintain Agile Rules‘ website, which is implemented in PHP and MySQL. I worked with a graphic designer on the look and feel and stock photography.
( Back to top)
The group I lead at Aptima was called Presentation, Web, and Language Engineering. Most of the projects I worked on have some aspect of natural language processing, metadata extraction, ontology alignment, or semantic web enabling technologies.
- I mentioned STAR above. That project relies on a semantic analysis of news articles using PLSA(Probabilistic latent semantic analysis) to identify the key concepts (as opposed to words or phrases) the articles are about, and looks for patterns of those concepts (topics).
- Likewise, TeamBuilder uses PLSA to correlate documents describing a mission with documents describing team candidates to determine which ones have skills and experiences that are relevant to the mission the team is being formed for.
- MetaCORE is another Aptima project with similar technologies as STAR. MetaCORE imports documents, extracts metadata from them, and present the document and metadata in a faceted browser interface, graphically showing taxonomies like location, biomedical information, time periods, end other application specific taxonomies. It also allows the user to export the document and metadata in a different schema, like RDF/XML, or DDMS.
( Back to top)
I started a company with two others called Agile Rules, which focused on Agile/Scrum training, coaching, and readiness assesment. We also presented papers at conferences and user group meetings. I was also an officer in Agile Bazaar, the local chapter of the ACM.
- At Litle & Co, I worked in a full Scrum environment, with pair programming, TDD, continuous integration, monthly iterations, and retrospectives. One unique facet of their practices is that developers are regularly rotated around from one project to another. While this may negatively affect team cohesiveness and the ability to predict velocity, it increases knowledge transfer. The upside of that is less knowledge lost, and increased likelihood a developer will be available to solve a problem.
- For Agile Rules, I developed a unique Test Driven Development system for embedded programing called CATSRunner that lets the user control unit tests and test data from a host computer, feeding the results back to host computer. This greatly reduces the amount of on-board memory needed for testing, allows for different sets of test data, and easy publication of test results, which is a requirement for Agile andd Scrum. Catsrunner is developed in completely cross-platform GNU C,and can control most ARM processors.
- At Aptima, I created a distributed, cross-platform, web-based build and unit testing system called DEBUT (Distributed Environment for Building and Unit Testing). During the nightly build process, the source is extracted fresh from version control and built from scratch. Upon successful build, any unit tests are run, and the results of all operations are emailed to the addresses associated with that project. Building and testing can have any number of steps and execute any process that can be controlled via the command line. DEBUT is built using PHP and MySQL.
- M-PORTAL has a PHP back end web service supporting an HTML and Adobe Flash front end. In order to coordinate development of the two halves, we used executable requirements. A PHP web page contained several example calls to each web service, both correct and incorrect. Each one was a unit test of the back end web services (showing red or green depending on if the results were as expected), but also served as documentation for the front end developers on how to call (and not call) the back end web services. They’re called executable requirements because they test the interface, so it’s impossible for the documentation to be wrong, since the tests would fail if they no longer match the back end.
( Back to top)
I have experience in ETL, TPS, reporting, web services, and user applications backed by MySQL, SQL Server, PostgreSQL, and Oracle.
- For Compete, I worked on software that imports anonymized click data (with demographics) from ISPs, and mines the data to find out what products the users are shopping for, with what options, where, and what products they looked at before and after looking at those products. I worked on the ETL and parsing components implemented in Python, and the analysis components implemented in C++, running distributed in a Beowulf cluster, connected to a 4TB SAN.
- Tradeloop offers a B2B office equiment buy/sell environment. I worked on their email-based transaction processing system, implemented in Perl and Oracle.
( Back to top)
I first learned about UNIX in 1989, and started using Linux on a regular basis around 1997 (Red Hat 4.2). I’ve had a Linux server at home for about a decade, and use it about 98% of the time on my dual-boot laptop
- I’m Assistant Director of the Boston Linux and UNIX group, and have been a member for 10 years. I have also presented at meetings, including talks on PHP and home automation.
- I’ve ported applications to Linux and UNIX at Anacomp, PegaSystems, and Aptima.
- As part of a home automation project, I bought a computer-controlled infrared transceiver device. Only Windows software was available for the device, so, working with the manufacturer, I created cross-platform software in Perl to control the device, as well as a web interface and email interface. I released the software with a GPL license, available here.
- In addition to my other functions at Agile Rules, I was the Chief Technical Officer. I built the computer network (and many of the computers) and administered it all.
- At Tele-Publishing, I assisted the Systems Administrator in many hardware, software, and planning tasks, including maintaining the mail server and the backup server, and configuring the web servers.
- At Inergy Online, I functioned as the Systems Administrator after the full-time Systems Administrator left, until the company disbanded.
( Back to top)
Many of my projects at Aptima relate to training and assessment. I was also on the committee to improve Aptima’s own knowledge management. I help maintain their internal Wiki, and as their Webmaster, I help maintain the metadata on employees, projects, and products.
- Wisdom is an Aptima project to asses the “dimensions of wisdom” for the Army Research Institute. It presents several scenarios to the user, and asks them how they would respond to the situation to reflect the different dimensions of wisdom they just received training on. Their answers were compared using a Natural Language Processing algorithm called PLSA to the answers of experts to assess them. Wisdom was built with the same technologies as M-PORTAL, except we used PostgreSQL instead of MySQL.
( Back to top)
I believe strongly in process automation to increase repeatability efficiency, and the need for special knowledge to perform everyday tasks. Automation also leads to greater testability, as many of the tests themselves can be automated once the build is automated. I have worked closely with QA and Release Engineering groups to accomplish these goals. At Aptima, I created a distributed, cross-platform, web-based build and unit testing system called DEBUT (Distributed Environment for Building and Unit Testing). At Metatomix, I developed an installer for their platform based on InstallAnywhere, and developed a build environment for their Discovery product.
( Back to top)
At Aptima, I was a Manager of the Presentation, Web, and Language Engineering group. I managed three developers, as well as contributing to projects directly as a Consulting Software Engineer, and Technical Lead on up to six projects at any one time. I have lead other groups in the past, though. At Tele-Publishing, I lead a team of seven developers and Graphic Artists. At Inergy Online, I lead a team of four developers. In all of these positions, I resolved conflicts through open communications and managed expectations. My degree is a dual major of Management and Business Computer Information Systems, which means I “speak both languages”. I understand business process, needs and goals as well as I understand software process, needs and goals.
( Back to top)