Résumé
Software Engineer
ricardo[at]xrrocha.net |
https://blog.xrrocha.net |
https://github.com/xrrocha |
http://www.linkedin.com/in/xrrocha
Profile
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