Ricardo Rocha's Website

Musings on Programming and Programming Languages

Email GitHub Twitter LinkedIn


Software Engineer

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


Experienced architect and developer with JVM and distributed systems expertise. Effective mentor and developer guide. Life-long learner and researcher.

Qualifications Summary

  • Experienced 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

Technical Skills

  • Languages: Java, Scala, Kotlin, Xtend, Javascript, Elm, PL/SQL, PL/pgSQL, C, Bash, Awk, Sed, Unix/Linux tools, Haskell, ActionScript. HTML, CSS, XML, XSLT
  • Distributed Systems: Kafka, Kubernetes, Docker, Spark, Akka. REST, SOAP, RPC. SmartBots
  • Databases: Cassandra, Postgres, Oracle, MySql, Elasticsearch, MongoDB, CouchDB
  • Source Control: Git, Subversion, CVS
  • Agile: Scrum, Kanban, CrystalClear
  • DevOps: Github. Bitbucket, Phabricator, Rancher, Buildkite, Jira, Confluence, Jenkins/Hudson
  • Open Source Projects:
    • Spellbound. Simple comparative JVM implementation of Norvig’s spelling corrector, written in Java, Scala, Kotlin and Xtend. Documented in a blog series.
    • 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. Early JSP with multiple scripting language support (Java, Javascript, Webl)
  • Tools, Libraries and Frameworks:
    • Spring: Spring Boot (REST, SOAP, Non-Web), Spring DI, Spring AOP (Spring aspects, AspectJ, ASM, CGLIB, ByteBuddy), Spring AMPQ, Spring Data (JPA, Cassandra, Redis), Spring Cloud (Hystrix), Spring MVC, Spring JDBC, Spring Test. Associated tools: Jackson, Gson, Redisson, Hystrix, Swagger2, JMX
    • AWS: AWS CLI, AWS Java client, AWS Lambda, AWS API Gateway, EC2, S3
    • Java Libs: JavaCC, AntLR, JSR-233 Scripting, AspectJ, JMX, JPA, JSP, Servlet, JMS, JAX-RS, Guava, Hibernate, SnakeYAML, WebDriver, Selenium, Apache Commons, Apache POI, CGLIB, ASM, Jackson, Gson
    • Scala Libs: Scala-JS, Slick, Squeryl, Akka, Spray, Play, Scalatra, ScalaTest, uTest, uPickle, Scalate. Coursera Certificate, DSL’s, Macros
    • Javascript Libs: AngularJS, Dojo, Jquery, JQWidgets, Pug, NodeJS
    • Building Tools: SBT, Maven, Gradle (Kotlin), Ant, Make
    • Testing Tools: ScalaTest, Kotlin Test, JUnit, TestNG, Mockito, Hamcrest, Wiremock
  • Servers: Apache, Nginx, Tomcat, WebSphere, Jersey, JBoss, GlassFish
  • Other: XSLT, XPath, Xquery, SOAP, SwizFramework, AS3Yaml, FlexMojos, FlexUISelenium, FlexUnit
  • Operating Systems: Linux (Ubuntu, CentOS, RedHat), Unix (AI/X, SCO, Xenix, Unixware), Mac OS X, Windows 10 (Cygwin)

Profesional Experience

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

  • Developed Scala POC’s for smartbots (API.ai and Wit.ai) exposing 3ci REST services through Facebook and and avatar/speech web interface
  • Developed a Java generator for rich AWS API Gateway definitions based on Swagger 2 and developer-provided Yaml configuration
  • Developed a Java tool for generating Jackson mix-in class bytecode using builders (as opposed to constructors or properties)
  • Developed a NodeJS AWS Lambda function for computing geographical distances based on Redis
  • Mentored developers in designing and refactoring their projects. Provided guidance and troubleshooting assistance when requested for a variety of development challenges.
  • Developer and then sponsoring architect for 3ci’s SPR/TSS system, a PCRF component for TracFone Wireless
  • Developed a Scala Spark POC for clustering campaign response time logs with k-means++

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 FunctionL)
  • Developed the standardization engine of JavaCAPS Mural master data management (MDM) product. This tool is documented online by Oracle.

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 to Java programmers involved in the development of Tandicorp’s insurance software products (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