May 2017 - November 2017
Software development for Staples' Identity Management group. Main focus was developing a middleware layer between an Angular frontend and a Java Microservices backend for a portion of their Staples.com domain using TypeScript, Jasmine and the Express framework.
I worked closely with a team of IdM backend Java developers and helped them get up to speed with Typescript, Node and the WebStorm IDE. I was also a strong advocate for Agile development processes (and testing) and consistently encouraged my team to apply more engineering discipline to their everyday development tasks, code-reviews and planning activities.
SketchUp - 3D Warehouse
February 2013 - November 2016
Middleware development as well, which supported an API-call simulation layer which was instrumental when first developing the new 3D Warehouse when we didn't have a backend! Extensive unit-test coverage/development. Also, provided mentorship to new hires and junior developers.
Designed and implemented a Search Results component with support for:
- Query formulation, result-set and query management, advanced user navigation events, infinite-scroll, pagination and film-strips.
Widget/component and new feature development:
- Advanced Search page, a Catalog Browser feature, Advanced Search keyword operator support, a SearchBar widget, a SearchSaver Utility, a Site Header widget, and many other features too.
- Internationalization: string extractor/injector utility built in Python. Tool was used by all SketchUp development groups: SketchUp app, Layout, 3D Warehouse, Extensibility, etc.
Other Technologies Used: JsUnit, HTML, CSS/Sass, Soy Templates, Knockout.js (light), Python, PyCharm, Git, SourceTree, Rietveld (for code reviews), and JIRA.
October 2008 - January 2013
Application/web development, database administration, configuration/build management, and 24/7 production support for Boulder-based Internet marketing company that sold vanity products online.
Supported a Java based e-commerce system called "SoftSlate" comprised of Java, JSP, Struts (w/Tiles) and Hibernate. Responsible for maintenance and new feature development of this online ordering system: client-facing and site administrator pages.
- Supported six (6) production servers and nineteen (19) SoftSlate instances/websites/databases and one (1) "dev" server/database.
- Integrated new SoftSlate instances/builds with Convertis' "Central" server app (a Spring Batch application) which consolidated data from all SoftSlate instances into a single main database.
Admin development for the SoftSlate e-commerce system.
- Full CRUD development – Hibernate queries/mappings
- MySQL scripting and database administration (schema updates) for all SoftSlate instances/stores
- Server configuration: Tomcat, Apache, openssl, SSL certs, etc.
- Server administration: SoftSlate store setup, deployments, build management, etc.
- Developed internal wiki: Thoroughly documented company procedures, technical HOW-TO's, developer insights, etc.
- Order-flow fine-tuning/customizations, Campaign layout A/B split-testing, campaign configuration tools/settings, etc.
October 2006 - October 2008
Application and web development for Boulder interactive agency for 1.5 years at TextureMedia and then 6 months for Crispin, Porter + Bogusky. TextureMedia was acquired by CP+B circa April 2008.
- Worked closely with interface developers, account managers, tech leads, and other application developers daily in all aspects of the development life-cycle.
- Built web-based administrative tools for numerous client sites. All admins included (in some form) custom database queries, search results configuration and standard CRUD operations.
- Utilized Texture's main in-house proprietary Java action-based MVC-like framework called "Slingshot" for web development. Worked in many different versions of Slingshot depending on client needs.
February 2004 - June 2006
- BrowseTool: Wrote extensive frontend and backend code to enable DG Service Reps to define spatial geometries (box-maker, circle-maker, corner-coords, direct coordinate entry) for customer order polygons.
Location Desktop: Extensive GIS spatial services
- Geometry Validation Services - Supported formats: GML, Lat-Lon coordinate data, WKT (Well-known-text).
- Geolocation Services - Country codes derivation based on one or more specified spatial geometries.
- PP Stats: Designed and implemented a statistical reporting system for DG's Product Processors (PPs) using perl (heavy pattern matching and regex work) and cron scheduling.
- WAN Ingest: Designed and implemented a standalone Java app used to ingest raw satellite imagery from RGTs (Remote Ground Terminals) to DG's image archive.
Other Technologies Used: XML (XSD, XSL, JDOM, GML, XHTML), EJBs (Stateless Session Beans, MDBs, XDoclet), App Servers: OAS, OC4J & JBOSS, Oracle Spatial, JTS (Java Topology Suite), SonicMQ, perl, bash & korn shell scripting, Redhat Linux, IntelliJ.
Interactive Video Group
July 2003 - November 2003
Refactored the server team's build and deployment system using Java, Ant, RPM, and bash shell scripting within a UNIX environment (Linux and Solaris).
Developed system tools and a component versioning system for the
Mystro App Server using Java.
- Automated the server release build process which cut the procedure's run-time down from an hour to about 10 minutes.
- Provided technical support to test engineers and technical writers regarding the installation, configuration, and documentation of the Mystro App Server. Authored an internal installation guide for said App Server.
Technologies I use and have used over the years listed in no particular order:
- Programming Languages: Java, Python, C, C++, perl, FORTRAN 77, RPG, Pascal, COBOL
- Testing: Jasmine, Selenium, JUnit, JsUnit, HttpUnit, Cactus
- MVC Web Frameworks: Struts (v1, v2), SlingShot, JCatapult
- Database: Couchbase, MongoDB, Hibernate, SQL, MySQL, SQL*Plus, SQuireL, Oracle (CASE Methodology for DB Design), Sybase, PostGreSQL, MS-Access
- Editors/IDEs: WebStorm, PyCharm, IntelliJ, STS, Eclipse, slickEdit, jEdit, Borland C++ (v5.02), MS-Visual C++ (v5)
- Source Control: Git, BitBucket, GitHub, SourceTree, SVN, CVS, Perforce, CMSynergy
- openssl: SSL certificate installation and some Apache configuration (light)
- Operating Systems: Mac, Windows, Cygwin, Unix (Linux, Solaris), AS/400
- UNIX Scripting Languages and Utils: bash, korn, t/csh
- Build Utils: create-react-app, Angular CLI, Babel compiler, webpack (bundler), ANT, Maven, Savant, RPM (Red Hat Package Manager)
- Numerical Computing: MatLab, Mathematica
- GNU: gcc, gdb, make, vi, vim, gvim, emacs
- GIS: Oracle Spatial, Grass, ArcInfo
B.S., Computer Science (2003) - University of Colorado at Boulder
- Dean's List
- Member, Golden Key International Honor Society
- Klaus D. & Jean L. Timmerhaus Scholarship Recipient, 2002
B.A., Psychology (1997) - Naropa University - Boulder, CO
- Buddhist Psychology and Meditation
- The Psychology of Health and Healing
- Traditional Eastern Arts: T'ai Chi Chuan and Yoga
Music - Berklee College of Music (1991-92) - Boston, MA
- Played guitar with various bands and local musicians over the years with occasional performances and recording projects.
- Teach private guitar lessons on/off since 1995. Teach various styles and levels of playing.
- Maintain a personal website, www.flupe.com, for fun. Topics include: music, guitar playing, and software development.
- Wrote a lesson series about music theory and improvisation for guitar players.
- I continue to write and record original guitar music and songs. Some of my material can be found on my SoundCloud page.