Professional experience

Academic

Heriot-Watt University (September 2020 - Currently)

While finishing my PhD, I started working as a full-time Assistant Professor at Heriot-Watt University, as part of the Graduate Apprenticeship in Data Science team. I always liked teaching, and have worked in various freelance versions of it throughout the years, including tutoring during my high school years and official tutoring, demonstrating and TA'ing at University of Edinburgh. However, this was the first time I worked as a full-time teacher, but I was keen on it.

Work in this position has included the development of materials for several completely new courses, as well as teaching them, personal tutoring to graduate apprentices, including guidance through project choice and managing administrative and personal issues related to their academic situation, dissertation supervision, and others. Some of the courses I have developed include topics in Databases, Artificial Intelligence, Human-Computer Interaction and Networks, among some others. The Data Science Graduate Apprenticeship is a programme designed for people and organizations who wish to acquire skills in Data Science (Data Analysis, Databases, Artificial Intelligence, Machine Learning, Software Development...) while training the person for a role in the organization. It's a three-way relationship between the University, the graduate apprentice and the organization the apprentice works for. The apprentice fulfills a standard role at the organization for about 75% of the time, with the remaining 25% of the time dedicated to attending University courses and following up on them. Evaluation is done through work-based learning activities instead of academic exams, meaning that students do projects at work that (hopefully) have value to the organization, while allowing them to put the concepts learned in the courses in practice. This is enabled by a close relation between the apprentice, the personal tutor, and the mentor (a designated person at the workplace that ensures the Apprentice has the adequate resources to pursue their degree).

In my role at Heriot-Watt, apart from developing and teaching courses and acting as a personal tutor and dissertation supervisor, I've been able to learn and participate in the internal academic life of a University School, participating in programme-level and school-level decisions, administration and steering changes in policy and practice towards the future. This has reinforced my appreciation of teaching and my choice to pursue this as my main career.

Software development

I worked as a software developer since 2011, for several years while still studying my double degree. I stopped to pursue my MSc and PhD in 2016, but it is a path that I may well go back to in the future. Here I include a summary of the companies I have worked in and what my work consisted on in them, ordered from the most recent to the oldest.

B2T Concept (April 2013 - August 2016)

(Please note I have had almost no contact with B2T concept since 2016, so many of the things mentioned here may be outdated).

B2T Concept was a one of a kind company. It only had around 20 employees, but a history which starts back in 2000. Having built a very big stack of self-developed tools, modules and specific methodologies under the ROSE and SCooP general methodologies, it provided project development for any kind of business in need of any kind of business management tool. Based upon self-developed ideas in close relationship to multi-level metamodelling, bidirectional transformations and ontology based development, some of these components include the SCooP system, a modelling tool with automatic code generation, JCore, the self-maintained programming language which SCooP generates, iBPMe, a business process solution with very advanced features not commonly found in the market, Sable, the view engine used by all projects developed by the company, and many more. The research and development performed by B2T Concept and the resulting tools gained them a mention as Cool Vendor by Gartner Group in 2015, apart from many different research and development grants from official entities. Apart from and thanks to innovation, B2T Concept features well modelled and easy to maintain projects with generic upgradable technology and a high level of reuse, developed in a matter of weeks or months with very small development groups (usually 1-3 people with partial dedication per project). Clients of B2T Concept when I worked for them included Asisa (health insurance), Clear Channel España, Adecco or Citi, among many others.

I started my work in B2T Concept as a client project developer under the SCooP methodology using the SCooP tool, which had been recently released. However, I soon started turning towards the Research and Development and Technology areas of the company. As such, besides having participated in the development of several client projects, for a long time I was the main developer and designer of Sketch, an appended system to SCooP which offers a design & analysis level structured view of projects with automatic generation of documentation and of the resulting SCooP technical model, generable into executable code. I was also one of the three initial developers, and for a long time the only one, of iBPMe, a business process engine with advanced features such as thorough event handling or complex dynamic but configurable task assignations. I also was the thought father and only developer of Environ, a CMDB system with extremely elastic design and configurable rule system used both for Citibank España (our client) and for ourselves. Finally, over time, I greatly contributed to the company's technical background by working together with the company's CTO and other employees in constantly correcting, improving and rethinking the company's core technologies and surrounding methodologies such as the JCore service engine or the basic library for JCore projects. This made me go through learning, working and implementing things such as all levels of database optimization (from the basic index optimization to database parameter configuration or developing techniques that allow automatically created queries from the SCooP code generator to have the flexibility necessary to maximize efficiency), XSL-FO development of stylesheets both for creating PDF documents procedurally and for creating special HTML documents, memory management optimizations and corrections, designing, executing and evaluating concurrency stress tests for iBPMe, investigating performance issues on the SCooP tool and many more.

Bluetab Solutions (October 2011 - January 2013)

When I worked in Bluetab Solutions, it was a medium-sized company (approximately 50 employees) with similar clients and business environment as B2T Concept, but with more traditional methodologies. Fundamentally built around the J2EE environment (Spring framework, Hibernate, Groovy + Grails...), its clients included companies like Vodafone, BBVA or British Telecom.

During my time in Bluetab Solutions, I worked in several projects for Vodafone, mostly dealing with the handling, calculation and verification of commissions paid to shop vendors. By doing this, I learned and gained expertise on many of the different elements in the J2EE ecosystem, such as the Spring framework, testing suites like Mockito, general techniques such as Inversion of Control and their motivation, implementation and particulars in the Spring framework. As the first software development company I worked for, in Bluetab I also learned a lot about the general management of software development in medium sized companies, the techniques and tools used for task management (such as Trac) and the overall setup of real software systems for living companies.