Ricardo Rocha's Website

Musings on Programming and Programming Languages

Email GitHub Twitter LinkedIn


Software Engineer
ricardo@xrrocha.net| https://xrrocha.net| https://github.com/xrrocha| http://www.linkedin.com/in/xrrocha


Keen problem solver with a nack for building tools and frameworks. Effective developer trainer and mentor. Life-long learner and researcher.

Qualifications Summary

  • Seasoned JVM developer. Member of the JSR-152 expert group on JSP.
  • Participant in the early development of the JavaFX language
  • Open source project creator and contributor to several Apache projects
  • Trainer of hundreds of developers in South America, Europe and the US
  • Fluent in English, Spanish, Portuguese and Italian. Able to read French and Esperanto

Technicall Skills

  • Scala: Coursera Certificate. DSL’s, Macros, SBT, Scala.js, Slick, Quill, Akka, Spray, Play, Scalatra, ScalaTest, uTest, uPickle, Scalatex
  • Java: Spring, AspectJ, JavaCC, AntLR, JSR-233 Scripting, EJB, JPA, JSP, Servlet, JMS, JAX-RS, Jersey, Hibernate, SnakeYAML, WebDriver/Selenium, Apache Commons, Apache POI, CGLIB, ASM, Maven, Ant, JUnit, TestNG, Mockito, Hamcrest
  • Javascript: AngularJS, Dojo, Jquery, EasyUI, JQWidgets
  • Flex: SwizFramework, AS3Yaml, FlexMojos, FlexUISelenium, FlexUnit
  • XML: XSLT, XPath, Xquery, SOAP
  • Other: Xtend, PL/SQL, PL/pgSQL, C, Bash, Awk, Sed
  • Operating Systems: Linux/Unix, Mac OSX, Windows
  • Servers: AWS, Apache, Nginx, Tomcat, WebSphere, Jboss, GlassFish
  • Databases: Cassandra, Elasticsearch, Oracle (v. 5 through 11), Postgresql, MongoDB, CouchDB
  • Source Control: Git, Subversion, CVS
  • Agile: Scrum, Kanban, CrystalClear, Bitbucker, Github, Buildkite, Jira, Confluence, Jenkins/Hudson, Trac
  • Open Source Projects:
    • YamlTag. Type tags and class literals for SnakeYAML (Java)
    • XRecords. Tabular record file conversion framework (Xtend)
    • JVMScripter. Remote scripting for the JVM (Scala)
    • JXCSS. Java SAX adapter for CSS2 parsers (Java)
    • Apache Cocoon. Mentioned in O’Reilly’s Java and XML book (Java)
    • PolyJSP. JSP with multiple scripting language support (Java)

Profesional Experience

2014-2018: Software Architect, 3C Interactive. FL

  • Developed a Java tool to fully import Swagger API definitions into AWS API Gateway service
  • Developed Scala POC’s for smartbots (API.ai and Wit.ai) exposing 3ci REST services through Facebook app and web-based interfaces (spray.io)
  • Mentored developers in designing and refactoring their projects. Provided guidance and troubleshooting assistance when requested for a variety of development challenges.
  • Developed a Java broadcast preprocessing framework for generating promotion campaign files and URL’s
  • Developer and sponsoring architect for 3ci’s SPR/TSS system, a PCRF component for TracFone Wireless

2013-2014: Lead Developer, OfficeDepot (Contractor). FL

  • Developed a Scala/AspectJ code analysis tool to reverse engineer interactions between OD’s website and its AS/400 backend.
  • Developed a framework for message routing and transformation between Websphere MQ and REST services.

2011-2013: Independent consultant, Plenix. UT, FL

  • Developed a Scala person name standardization tool that parses names, corrects spelling, restores accents and classifies gender
  • Provided architectural guidance and Oracle support to Ebsa, one of the largest electric companies in Colombia (SA)

2009-2011: Senior Developer, Overstock.com. Salt Lake City, UT

  • Developed a tool for automating the construction of complex Jira issue trees based on Yaml templates
  • Developed a Java functional test framework that models Overstock’s shopping site on top of either WebDriver or Selenium
  • Participated in the development of several Flex applications

2004-2008: Software Architect. Sun Microsystems. Los Angeles, CA

  • Participated in the early research and development of the JavaFX language (formerly F3 for Forms Follows Function)
  • Developed the standardization engine of JavaCAPS Mural master data management (MDM) product. This tool is documented online.

2001-2004: Director of Plenix. Ecuador, SA

  • Provided mentoring and training on J2EE and related Java technologies to abc Distributing’s IT department (USA)
  • As partner to Tandicorp provided training, mentoring and ongoing support for Java programmers involved in the development of Tandicorp’s E-nsurance software product (Ecuador)
  • As partner to Vimeworks provided training, mentoring and architectural guidance to their development group (Ecuador)

2000-2001: Director of R&D, Bibop International. Milan, Italy

  • Provided mentoring and ongoing support for developers
  • Trained Java developers in OO framework design and development and component-oriented programming

1999-2000: Chief Architect, Exoffice Technologies. Burlingame, CA

  • Sponsored by Exolab (now Intalio), developed the first implementations of the XSP language for the Apache Cocoon project

1996-1999: Senior Developer, abc Distributing, North Miami, FL

  • Led development of abc’s data warehousing system
  • Provided mentoring and support to Oracle developers
  • Developed support and management tools using Java and Oracle technologies