

Forecasting Energy with Machine Learning
☀️ Sun · ☁️ Clouds · 🌡 Temperature · 💨 Wind
During my experience in Salamanca, I worked on a Machine Learning project focused on electricity production and consumption forecasting.
The project combined production data from solar panels, wind turbines and nuclear power plants with electricity consumption data from residential areas and historical Spanish weather data. By aligning these different time series through their timestamps, we could study how weather conditions influenced both energy production and consumption.
Using Python and Jupyter Notebook, I worked through the complete data pipeline: collecting, cleaning, merging and analysing the datasets before training Machine Learning models to predict future energy production and consumption.
The project relied on several complementary datasets:
The challenge was not only to obtain the data, but to make these heterogeneous datasets compatible and usable together.
The different datasets were linked through their timestamps, allowing us to associate electricity production and consumption with the weather conditions observed at the same time.
For example:
Date & Time → Weather Conditions → Energy Production / Consumption
This temporal alignment created a common dataset that could be used to study relationships between environmental conditions and energy behaviour.
Keywords:
Time Series · Timestamp Alignment · Data Integration · Temporal Features · Correlation
Before training any model, the datasets had to be cleaned, transformed and combined.
This included handling missing or inconsistent data, aligning time periods, transforming variables and preparing the final datasets for Machine Learning.
Keywords:
Data Cleaning · Data Pre-processing · Data Transformation · Missing Values · Feature Engineering
Using Python, Pandas, NumPy and Jupyter Notebook, I explored the datasets to understand how different variables were related.
For example, weather conditions could influence:
Sunlight → Solar Production
Wind → Wind Production
Temperature → Residential Consumption
This exploratory phase helped identify relevant features for the predictive models.
Keywords:
EDA · Pandas · NumPy · Data Visualization · Feature Analysis
Once the datasets were prepared, Machine Learning models could be trained using historical observations.
The models learned relationships between weather conditions, historical energy behaviour and energy production or consumption.
The objective was to build models capable of estimating energy behaviour under different conditions.
Keywords:
Machine Learning · Model Training · Regression · Feature Selection · Training Data
The final objective was to develop predictive algorithms capable of estimating:
Future Energy Production
and
Future Energy Consumption
based on available information such as weather conditions and historical patterns.
This could help anticipate variations in energy supply and demand and provide a foundation for more informed energy management and planning.
Keywords:
Forecasting · Prediction · Energy Demand · Energy Production · Time Series
The models were evaluated against known data to measure their predictive performance.
The results could then be used to refine the data preparation, feature selection and model configuration, creating an iterative Machine Learning workflow.
Data → Model → Prediction → Evaluation → Improvement
Keywords:
Model Evaluation · Performance Metrics · Validation · Optimization · Iteration

As a Business analyst
Working in consulting taught me that digital projects are not only about designing or developing a solution. They are about understanding a client’s needs, translating them into actionable requirements, coordinating different teams and delivering a reliable product within defined constraints.
Working in a service company also means constantly balancing business expectations, technical constraints, deadlines, quality and available resources. This experience strengthened my ability to prioritize, communicate with stakeholders and make sure that what is delivered is aligned with what was actually requested.
Every project starts with understanding the client’s objectives, business needs, processes and constraints.
I work at the intersection of business and technology to clarify expectations and translate them into requirements that can be understood by both business stakeholders and technical teams.
Client projects often involve numerous requests, limited resources and changing priorities.
I help identify what is critical, valuable and achievable, taking into account business priorities, dependencies, technical constraints and deadlines.
The objective is to maintain a clear and actionable backlog while keeping the project aligned with its roadmap.
A client request cannot simply be passed to a development team.
It needs to be analysed, clarified and translated into functional requirements, User Stories and Acceptance Criteria.
This creates a shared understanding between the client, business teams and developers before implementation begins.
Digital projects involve multiple stakeholders: clients, business teams, Product Owners, developers, UX designers and testers.
I help coordinate these different perspectives through Agile ceremonies, workshops, discussions and regular follow-ups, ensuring that everyone maintains a shared understanding of the objectives and requirements.
Before a feature reaches the client, it needs to be tested and validated.
I participate in defining test scenarios, performing functional testing, identifying defects and working with development teams to prioritize and resolve issues.
The objective is to detect problems before delivery, rather than relying on the client to discover them.
Build → Test → Validate → Deliver.
In a client environment, the scope and requirements provide the reference for delivery.
Each feature needs to be checked against its expected behaviour and Acceptance Criteria. When requirements evolve, changes need to be identified, discussed and integrated into the project in a controlled way.
This helps maintain alignment between client expectations and delivered functionality.
Once development and validation are complete, the feature can be presented and delivered to the client.
Delivery also involves preparing the necessary documentation, communication, deployment activities and user support to ensure a smooth transition into operation.
Once a feature is delivered, feedback from the client and users provides new information about the product.
New requirements, improvement opportunities and lessons learned can then feed the backlog and influence future iterations.


Personal project – Swift Development learning
Designing and developing a medical digital tool grounded in scientific evidence
CortiPal is a digital solution designed to support healthcare professionals in the management of corticosteroid treatment in palliative care.
The project started from a scientific publication, which served as the foundation for the medical and functional requirements.
I translated the scientific methodology and medical needs into functional logic, UX/UI design and an interactive digital experience.
The solution was then developed, tested and iterated to ensure consistency with both the scientific source and user needs.
The next step was to identify the functional and medical requirements of the solution.
The objective was to understand how healthcare professionals would use the tool, what information they need, which inputs are required and how the scientific rules should be applied.
The scientific source remained the reference point throughout the design and development process.
The medical and functional requirements were translated into a structured user journey.
I defined the required inputs, calculation logic, outputs, warnings and interactions to ensure that the digital workflow remained consistent with the underlying medical methodology.
The interface was designed to make the underlying medical logic clear, understandable and easy to navigate.
Before designing the interface, I focused on how information should be presented and entered. I defined the required inputs, data structure and interaction patterns to make data entry clear and intuitive.
I identified the essential information required by the user and separated it from secondary features that could be introduced during a later iteration. This helped maintain a focused interface while addressing the key business and usability requirements.
I created low-fidelity wireframes to explore different layouts, interactions and user flows. I also used AI as an ideation partner to generate and challenge design alternatives before selecting the most relevant concepts.

Once the main concepts were established, I moved to Figma to create a realistic, interactive prototype. The design was reviewed with a physician working in the field to validate its usability, clarity and alignment with real-world medical needs.

Once the functional and visual design was established, I developed the application and translated the defined rules into a working digital experience.
Particular attention was given to ensuring that the implemented behaviour remained consistent with the defined requirements and scientific source.

Testing focused not only on the interface, but also on the functional logic and expected outputs.
Inputs, calculations, edge cases and user interactions were checked against the defined requirements and the scientific reference.
Testing and feedback made it possible to identify improvements in both the user experience and the functional behaviour.
The solution was progressively refined while maintaining alignment with the medical requirements and scientific foundation of the project.

* CortiPal is based on a real medical publication that is not publicly available. To protect the confidentiality of the medical protocol and its underlying information, only selected screens and non-sensitive elements are presented in this case study.

My main project
I contributed to the design and development of a digital solution for industrial maintenance, aimed at improving the management of maintenance activities and operational procedures. From understanding business and user needs to defining functional requirements, designing workflows and supporting implementation, I worked at the intersection of business, technology and users.

The software solution digitalizes the maintenance process through five interconnected stages: standardization, contextualization, execution, quality control, and continuous improvement.
It relies on existing data sources of the information system of the company, and integrates with the CMMS already in place, enriching the information available to users without replacing the existing system.
From standardized procedures to field execution, quality validation and performance analysis, the solution creates a continuous feedback loop that helps improve both maintenance operations and procedures over time.
The digital roadmap is defined with the Digital Transformation team, management and business representatives to identify key priorities, digitalization opportunities and strategic features.
Based on the roadmap, I analyse existing processes with process owners and users to identify business needs, pain points and opportunities for digitalization.
Through user interviews and functional analysis, I translate these needs into requirements, User Stories and Acceptance Criteria, creating a shared understanding between business, users and development teams.

I design the solution using a Design System and Figma, creating interactive prototypes and testing different approaches with users. Their feedback helps refine both the UX and the functional requirements.
Once validated, User Stories are finalized and prioritized during Backlog Refinement. I work closely with developers throughout the sprint to clarify requirements and ensure alignment through regular demos.

The delivered features go through functional testing, using tools such as Squash, Postman and log analysis. Defects are identified, prioritized and followed through to resolution.
After functional validation, users perform UAT to confirm that the solution meets their operational needs. Once validated, we prepare the Go-Live, communicate the release and support users through training.
User feedback, testing results and operational experience feed the backlog and future iterations, creating a continuous improvement cycle.



