Juan Javier Domínguez Moreno
Personal Information
Marital Status: Married
•
Nationality: Spanish
•
Age: Thirty four. May 14, 1979
•
Place of Birth: Caracas, Venezuela
•
Address: Calle Anastasio Aroca, 12, 1 B, Madrid. Spain. 28002.
•
e mail: ****.*********@************.***
•
web: http://www.eveutilities.com
•
Phone: +34-638******
•
Overview
I am a Mathematician with more than nine years of experience as an optimization
consultant. I have worked for ILOG, IBM and currently at a small ex ILOG employees owned
company called DECIDE. I am a very good programmer with extensive knowledge of C++ (9 years
experience), Java (8 years experience), Python (5 years experience) and Fortran (4 years
experience). I own two MSc. in Mathematics and I have a passion for knowledge and innovation.
My strong areas are mathematical optimization, constraint programming, evolutionary algorithms,
probability, stochastic calculus and numerical analysis. A few years ago I got interested in finance
and it has become my personal research area.
As an optimization consultant I have been exposed to several clients and diverse sectors
and problems. I am good at dealing with clients and managing expectations. Currently I am the
manager of a small team of eight operational research consultants focused on optimization with a
goal to add data mining to our list of skills and services. I am a hard working person that knows how
to deal with several tasks at the same time and I am very good at managing my own time. I want
to follow a technical career and like having responsibilities and making decisions. I am creative,
dynamic and innovative within the bounds imposed by the situations.
Work Experience
DECIDE Soluciones S.L. Principal Consultant and Project Manager. Since June 2013
Airbus Military, Madrid, Spain. Since June 2013
•
Developent of an existing application to schedule production tasks of several aeroplanes at
Airbus Military. I am in charge of analyzing, designing the software and developing critical
tasks as well as managing the project in all aspects. The application is a desktop one built
on Java Swing using ILOG CP C++ libraries for scheduling and SAP JCO for data
communication.
DECIDE Soluciones S.L. Operations Research Technical Leader. February 2011 – May 2013
• DECIDE Soluciones S.L., Madrid, Spain. Since February 2011
As the technical leader of the Operations Research Expertise Unit I am in charge of
supervising the training of the Operations Research (OR) team, the correct execution of
projects; providing expert support to consultants in modelling, programming and selection
of software packages for all OR projects; and providing technical support to the sales team.
During this time I have been part of the following projects:
Prosegur: Expert support in writing specialized constraints and heuristic for the constraint
programming engine to compute employee shift schedule for this worldwide private
security company using IBM ILOG CP Optimizer.
Red Eléctrica de España: Technical support for developing custom stopping rules and
linear programming relaxations for a unit commitment model using IBM ILOG ODME.
MIPSolver: Design of a Java mixed integer linear programming modelling library with
interfaces for IBM ILOG CPLEX, Gurobi, COIN CBC and GLPK.
Provisioning: Design of an optimization engine to compute the SKU order plan for
retailers using MIPSolver.
Citröen: Prototype design of a car configurator that will eventually replace the current
Citröen car configurator using Choco Solver.
Airbus: Development of a new scheduling heuristic for the A400M task and resources
scheduling application using ILOG CP Scheduler.
DIA: Support for the changes of a MIP model for the computation of the store
distribution plan using IBM ILOG OPL. Migration of current OPL solution to a solution
based on MIPSolver.
Prosegur: Development of a prototype for the assignment of employees to armoured
trucks routes using Django, PostgreSQL and IBM ILOG CPLEX. Analysis of the project to
develop assignment services for armoured routes resources. Analysis and design of a
resource assigment solution for armoured trucks using IBM ILOG CPLEX in Java.
Airbus: Leader in a project to extend the functionality of a current software for task and
resources scheduling to other departments using Swing, SAP JCO and ILOG CP
Scheduler.
Eve Software Utilities. Founder and developer. Since December 2009
Eve Software Utilities, Madrid, Spain. Since December 2009
•
Eve Software Utilities is an ISV specialized in operational research. The core product, Emma,
is a constraint programming library written in Python. The future of Eve Software Utilities will
be the development of vertical solutions to address several business like time tabling,
distribution routes design, task scheduling and resource allocation, among others. The
company also offer consulting services to help clients deploy the software and build
applications.
DECIDE Soluciones S.L. Optimization Consultant. October 2010 – January 2011
Prosegur, Madrid, Spain. October 2010 – January 2011
•
Analysis and development of an application to manage security employees and materials.
Given a sold service indicating the number of work places and time frames, the application
will choose the employees that will best cover the service. All union regulations, employee
corporation agreements and general regulations must be satisfied. It will be possible to
configure the application to generate assignments with lower economic cost, high
employee satisfaction, high client satisfaction and others.
The problem will be modelled as a multi objective constraint satisfaction problem with
custom constraints and propagation procedures. Custom search procedures will be
developed to search for solutions considering the configuration of the multi objective
function.
The application is a library developed using Scrum, in C++ using IBM ILOG CP Optimizer, the
library is deployed as a TIBCO service in a Windows Server.
IBM S.A. IT Specialist. July 2009 – September 2010
Sales support, Madrid, Spain. January 2010 – September 2010
•
Support for the sales department developing demonstration application for empty
container management, provider orders scheduling, general task scheduling with resource
allocation, gas transportation and shift scheduling among others.
Santander Bank, Madrid, Spain. July 2009 – December 2009
•
Developer of an application to select marketing opportunities.
Given a number of marketing opportunities, the applications executes a filtering process in
which some marketing opportunities are discarded and a score is assigned to the marketing
opportunities left. Then, an optimization problem is solved to select the marketing
opportunities that maximizes the sum of the scores, there are constraints on the number of
marketing opportunities an agent, office, area and client are allowed to accept during the
period of time defined for the process.
The optimisation problem is a binary linear problem in which the variables indicates whether
an opportunity is selected or not. The average problem has around 750,000 variables and
200,000 constraints.
The application uses a client server architecture to solve optimisation problems remotely. It is
built using ILOG ODM for the client server architecture, ILOG CPLEX to solve optimisation
problems, and ILOG JRules for the filtering and scoring process.
The application was written in Java and JavaScript.
ILOG S.A. Optimisation Consultant. January 2007 – June 2009
Honda, Barcelona, Spain. January 2009 – June 2009
•
Developer of a business rules package to generate invoices and bonuses using ILOG Rules
for .NET.
The package was written in C#.
Canal de Isabel II, Madrid, Spain. September 2008 – December 2008
•
Instructor of an ILOG OPL and ILOG ODM workshop.
During the workshop we developed a pilot application to determine the monthly and daily
water distribution plan for the city of Madrid.
For the monthly distribution plan, given the water distribution network of the city, the goal is
to determine from which water reservoir and from which arcs to send the water to satisfy the
demand nodes. The objective function was composed of the potential economic loss
caused by lowering water reservoirs levels, and the cost of not satisfying the demands at the
nodes. The most complex constraints were related to the reversibility of some arcs in the
network and with the electric generators and their impact over the multi objective function.
The problem was modelled as a mixed integer linear programming problem. Due to the
complexity of many constraints, it was decided to use the MILP formulation instead of
adapting a network algorithm.
The daily plan was also formulated as a MILP. The goal is to minimize the number of
operations required to satisfy the monthly plan, an operation is an adjustment in the water
distribution network. The modelling of this problem was particularly challenging because of
the non linearity of the pressure and power expressions that must be considered. A non
linear formulation would be useful for the resolution these problems, but the MILP formulation
was used because of software limitations.
The optimization solutions were complemented with the development of a graphic module
to visualize the network and the results of the optimizations.
The application was developed using ILOG OPL with ILOG CPLEX and the graphical
modules were written for ILOG ODM using ILOG JViews in Java.
Atos Origin, Bilbao, Spain. June 2008 – August 2008
•
Instructor of an ILOG CP workshop.
Consultancy for the design and start up of three applications, one for product distribution
over a network, one for task scheduling of mills load and emptying operations and other for
computing truck load and route plans.
The first application was designed to provide a strategic plan for producing and distributing
product over a network of factories, warehouses and client areas. The problem was
modelled as a classic minimum cost flow network problem and is intended to be solved
using ILOG CPLEX network algorithm.
The second application is a kind of job scheduling problem where the application must
compute the time periods when machines must produce product. The product is to be
stored in mills that will be unloaded when orders are sent to clients. The problem can be
modelled like a network of tasks and limited resources. The software selected to find
solutions was ILOG Scheduler using a search heuristic designed by the client.
The third application is a Vehicle Routing with Pick up and Delivery with some special
constraints related to the type of product delivered and the relations between the pick ups
and deliveries. The product used for this application was ILOG Dispatcher.
All prototypes were written in C++.
Santander Bank, Madrid, Spain. March 2008 – May 2008
•
Development of a proof of concept for selecting marketing opportunities using ILOG ODM.
Carrefour, Madrid, Spain. December 2007 – February 2008
•
Analysis of an application and evaluation of a project for inventory management.
The developed application based on this analysis and evaluation computes the amount of
product that must be asked to each provider, and at which moment in time, in order to
keep a security stock level while minimizing economic costs.
The model is a simplification of a multi echelon inventory model with many side constraints
originated by the conditions of the providers and characteristics of trucks.
The project was developed using ILOG ODM and the model is solved using ILOG CPLEX.
NTS mobile, Bilbao, Spain. July 2007 – November 2007
•
Instructor of an ILOG OPL workshop.
Developer of an application to assign shifts to the Bilbao harbour employees.
The assignment is done daily with the demands required by ships for the next day. The
assignment is computed considering the skills, preferences and contract conditions of the
employees.
The problem is reduced to a general matching problem and is solved using ILOG OPL and
ILOG CPLEX.
EADS/CASA, Madrid, Spain. January 2007 – June 2007
•
Developer of an application to schedule tasks and allocate resources for the assembly line
the A400M aeroplane.
This is a desktop application developed in Java using RFC's to interchange data with SAP.
The model is a resource allocation and task scheduling problem with a basic search
strategy that tries to reduce the span of the schedules.
The application uses ILOG Scheduler to compute schedules and ILOG JViews to visualize
the scheduling results and monitor the current status of the assembly line. The scheduling
module was developed in C++ and the GUI in Java swing.
ILOG S.A. Junior Optimisation Consultant. June 2005 – December 2006
Metro de Madrid, Madrid, Spain. June 2005 – December 2006
•
Developer of a module to assign rosters to Metro de Madrid employees in the monthly and
yearly assignments.
The rosters required to satisfy the demands of the metro system are computed yearly and
must be assigned to employees. The assignments must satisfy the skills and preferences of
the employees and rosters, that is, employees prefer some rosters, and rosters prefer
employees with some skills and characteristics.
The model is a constraint satisfaction problem with several search heuristics designed
specifically for this solution.
The module was developed using ILOG Solver in C++ and Java.
Freelance Operational Research Consultant. November 2004 – May 2005
Hospital Universitario La Paz, Madrid, Spain. January 2005 – May 2005
•
Developer of the shift assignment module for the GPT (Gesti ón y Planificación de Turnos)
application deployed in many hospitals in Spain.
The application is a shift work management for nurses and supervisors. It interfaces with
many database thanks to the use of Hibernate. The assignment module considers a group
of nurses, a daily shift demand, shift patterns and a list of desired measures for each nurse.
The patterns can specify the weekly sequences of shifts that are allowed and the length
free sequences that are not allowed for an employee. The measures are quantities,
computed using the assigned shifts, that must have a predefined value during the
assignment period for each employee.
The mixed integer linear programming model assign possible patterns to nurses, maximizing
demand satisfaction. The constraint are bounds on measures over periods of time and the
prohibitions generated by not allowed patterns.
The module was built using ILOG CPLEX in Java.
Neoris/CEMEX, Madrid, Spain. November 2004 – December 2004
•
Instructor of an ILOG CP workshop.
Developer of a module to compute vehicle routes for the distribution of cement for CEMEX.
The solution is a Vehicle Routing with Pick up and Delivery with some special constraints
related to the areas where the product is delivered. The multi objective problem uses the
number of used trucks, routes length, and around ten more indicators to measure the
quality of solutions.
The module was built using ILOG Dispatcher and ILOG Scheduler. The solutions were
improved using a Tabu search with many custom neighbourhoods to perform the local
search.
Simón Bolívar University. Teaching Assistant. April 2003 – August 2004
Numerical Computing Department, Caracas, Venezuela. April 2003 – August 2004
•
Teaching assistant of programming, numerical analysis and optimization courses for
engineering and mathematics students.
Simón Bolívar University. Programmer. March 2002 – December 2002
CESMa, Caracas, Venezuela. March 2002 – December 2002
•
Programmer of an algorithm to compute the analytic centre and determine unbounded
variables of linear programming problems using Matlab.
Education
Master of Science in Advanced Mathematics
UNED, Madrid, Spain. October 2009 – February 2012
•
Final thesis: “Simultaneous calibration and pricing of European options”
Master of Science in Mathematics
Simón Bolívar University, Caracas, Venezuela. April 2003 – August 2004
•
Final thesis accepted with honours: “An interior point algorithm for large scale quadratic
programming”
Licentiate in Mathematics: Statistics and Computational Mathematics
Simón Bolívar University, Caracas, Venezuela. September 1996 – March 2003
•
Final dissertation accepted with honours: “3D estimation of seismic velocities and interfaces
using non linear optimization techniques”
Publications
J. Domínguez and M. D. Gonzalez Lima, A primal dual interior point algorithm for quadratic
•
programming, Numerical Algorithms 42 (2006), pp. 1 30.
Software
Linux, Unix, Windows
•
Python, Java, C++, Fortran 2003/2008
•
Matlab, Octave
•
AMPL, GAMS, PuLP, IBM ILOG OPL
•
IBM ILOG CPLEX, IBM ILOG CP Optimizer, IBM ILOG ODME
•
COIN OR CBC & CLP, Gurobi, GLPK, Choco Solver
•
XML, HTML, CSS, SQL, wsgi
•
GTK+, PyGObject
•
LaTeX, emacs, make, svn, cvs, mercurial, grep, eclipse and other development tools
•
Seminars
“Linear and stochastic programming applications in asset/liability management” as part of
•
a series of training session at Santander Bank. September, 2012. Madrid, Spain.
Invited as an expert for the Advanced Computing Workshop at the European's Commission
•
ActionPlantT Factories of the Future. October, 2011. Brussels, Belgium.
“Operational efficiency in the industry through optimisation” at VIII Foro de Interacci ón
•
Matemática Aplicada Industria. June, 2011. A Coruña, Spain.
Languages
Spanish and English
•
Others
University of Michigan. Introduction to Finance certificate at Coursera in 2013.
•
Simón Bolívar University Mathematics Department students representative 2001 – 2002
•