Software

Software Development for Research

My software projects are more related to creating complex software artifacts than developing traditional industrial software.

eCommerceSimulator: Java software to simulate buyers in e-commerce like Amazon, AliExpress, and Wish. This simulation considers the endorsements theory. Finally, this software can be used to execute different kinds of experiments. GitHub: https://github.com/pleger/ABME-market, 2021. 

EMAjs: JavaScript library that implements an Expressive and Modular Activation mechanism for context-oriented programming. GitHub: https://github.com/pragmaticslaboratory/EMAjs, 2022.

Matcher Cell: A JavaScript library to flexibly match patterns. You can try it on https://pragmaticslaboratory.github.io/matcher-cells-study-cases and its GitHub on https://github.com/pragmaticslaboratory/match-cell-base, 2021.

RAI-JS: A JavaScript library for Context-Oriented Programming (COP), which supports reactive activation mechanisms. You can try it on http://pleger.cl/sites/raijs and its GitHub on https://github.com/pleger/rai-js, 2019.

DeloreanJS: A back-in-time debugger for JavaScript. This software is strongly developed by Felipe Ruiz (felipe.ruiz@alumnos.ucn.cl) and Guillermo Victorero (guillermo.victorero@alumnos.ucn.cl). You can try it on http://pleger.cl/sites/deloreanjs, 2019.

Sync/CC (proof of concept): A library to address callback issues on JavaScript. You can try it on https://pleger.cl/synccc and its GitHub on https://github.com/pragmaticslaboratory/synnccc, 2019.

ESA-JS: An implementation of ESA, the description of an expressive stateful aspect language. A stateful aspect language supports the definition of monitors to observe and react to a program execution trace.  They have numerous applications in domains like error detection, security, and modular definition of crosscutting concerns. You can try it on http://pleiad.cl/esa, 2012.

WeCa: A practical library that allows for modular and flexible control over causality issues on the Web. In contrast to current proposals, WeCa uses stateful aspects, message ordering strategies, and vector clocks. WeCa has been used with several practical examples from Web applications. For instance, we analyze the flow of information in these applications like Twitter using WeCa. You can try it on http://pleiad.cl/weca, 2012.

AspectScript: An aspect-oriented extension of JavaScript for expressive AOP; integrates several state-of-the-art features related to higher-order programming and expressive scoping of aspects. You can try it on http://pleiad.cl/aspectscript, 2010.

 

Software Development Engineer

As I enjoy working on software engineering, I occasionally work as a freelancer doing software development and team leader in software projects:

G-Tech. Project Manager, a startup mobile application, 2022.

Autopista Central. Consulting engineer, 2017.

Regional Observatory (working market). Software project manager, implementing an information system that allows users to analyze the working market in a region of Chile, 2016 – 2017.

Autopista Central. Consulting engineer, 2011.

Center for Advanced Research in Arid Zones (CEAZA). Research assistant, two tasks: a) using MM5 (mesoscale model) to simulate or predict mesoscale atmospheric circulation and b) applying artificial neural networks to group/classify rainfall scenarios (both tasks applied to a limited area in Chile), 2002 – 2004.