Welcome to my portfolio!

Davide Berweger

Computer science student | Software Developer

Digital

Portfolio

About Me

01

Hello!

Hi there 👋! I'm a Computer Science student from Barcelona Spain, currently studying at the swiss federal institute of technologie (ETH) in Zurich Switzerland.

I've been programing since I was a little kid. I also enjoy skiing, sayling, scuba diving and akydiving among other things.


Davide Berweger Gaillard portrate photo


My Programming Journey

I started programming at a very young age with Processing, which is a Java-based programming language tailored to visual and interactive programming, and p5.js, which is similar to Processing but based on JavaScript.

Soon, I discovered Python and fell in love with its simplicity and elegance. Since then, I have been exploring various areas of computer science, such as machine learning, computer vision, and web development. I have worked on several personal projects, ranging from simple web applications to more complex machine learning models.

I am always eager to learn and explore new things in the world of computer science. I enjoy working in a team and collaborating with people from diverse backgrounds. I am excited to share my experiences and learn from others as I continue on my journey in the field of computer science.

My Current Focus

As a computer science student, I have a diverse range of interests and skills within the field. One of my main focuses is on machine learning and deep learning using Torch, a widely-used open-source machine learning library. I have worked on various projects using this framework, including training large language models using Transformers and fine-tuning diffusion models for novel image generation. I am excited about the cutting-edge advancements in this field, particularly with models such as GPT-4 and BERT.

In addition to machine learning, I am also interested in quantitative finance and trading. I have used deep learning models to support my trading strategies, and I am fascinated by the complexity of the financial world. Most of my experience in this subject has been developing and backtesting quantitative analysis strategies, trading mostly on financial derivatives.

Currently, I am learning Java at university, which is a versatile and widely-used object-oriented programming language. I am enjoying exploring the intricacies of this language and developing my skills in it. Additionally, I am delving into full-stack development using the MERN stack, which consists of MongoDB, Express, React, and Node. I have never been particularly drawn to front-end web development but have realized that it's the best way to showcase my projects, especially to people without a computer science background. Back-end development comes easily to me, and I enjoy learning concepts such as caching, load balancing, and scaling, which are essential for building robust and scalable web applications.

Overall, I am excited about the opportunities to learn and grow within the field of computer science. I believe that my diverse range of skills and interests can contribute to the ever-evolving landscape of technology, and I am eager to continue exploring and experimenting with new technologies and applications.

My Projects

02

Vector search engine for internal company documents

I implemented a vector search engine for interal company documents.

A vector search engine is a type of search engine that relies on vector representations of data to perform efficient and accurate similarity searches. It is particularly useful for searching and retrieving information from large datasets, especially in applications related to information retrieval, recommendation systems, and machine learning.



In a vector search engine, data items, such as documents, images, products, or any other entities, are represented as high-dimensional vectors in a mathematical space. Each dimension in the vector represents a feature or characteristic of the data item.

This search engine is then queried by an LLM so that it can more acuratley answer the query.

This project is still under development, the idea is one day have an AI Agent that can be your personal assistant.


Designed and Assembled an RC plane


My Friend Hector Fernandez and me created an RC plane for our Matura Project.

Hector was in charge of designing in 3d software and later 3d printing the skeleton of an RC plane.

I was in charge of both the software and electronics that would allow the plane to be radio-controlled.


Here is a short video testing the planes functionality



The plane flying can be seen here


Auto Agents

AutoAgents is an innovative Salesforce plugin designed to streamline and automate tasks within the Salesforce ecosystem using the power of artificial intelligence. This tool employs the latest AI models, namely GPT-4 and GPT-3.5, to process tasks and make decisions. It is an exemplary application of the AutoGPT concept within a Salesforce context. This are some key features:

1. Iterative Problem-Solving:

Unlike static automation solutions, AutoAgents can solve problems iteratively. It receives instructions as user prompts, processes them using the AI models, and performs the necessary actions. This process continues until the plugin has effectively fulfilled the given task's requirements.

2. Simplicity and speed:

The primary advantage of using AutoAgents is the significant reduction in time and effort required to set up and manage new tasks within Salesforce. Being able to make functional modifications through simple text adjustments makes the plugin highly adaptable. It can handle various data types and email formats, adding to its versatility.



MNIST classifier

This project is just an other simple MNIST classifier using convolutional NN.

MNIST classifyers are regarded as the "Hello World" of deep learning projects. I build this project to familiarize myself with the pytorch framework, at that time I had only used Tensorflow for such projects.



Sports arbitrage betting

I implemented a Python web scraping bot to capitalize on varying odds from different bookmakers, exploiting differences in their assessments of event probabilities. This allowed me to automatically place bets on all potential outcomes, ensuring a profit regardless of the result.


Full stack trading game

In this project you compete against a reinforcement learning model (PPO algorithm) virtually trading eth/usdt pair. Every 5 minutes you have to decide if you will go long, short or hold a given percentage of the porfolio. Who ever gets the highest profits over a given period of time wins.


Earnings trader bot

In this project I programmed and trained a large languadge model to take a text input used to describe my expectations and concerned about a given publicly traded company and its earning report and outputs either a buy, hold or short signal, and a short summary of the for mentioned report.

Minimax on an inperfect information game

Jass is a popular card game in Switzerland, and it is often considered the national card game of the country. It is typically played with a special deck of 36 cards, which includes the cards 6 to Ace in four suits: hearts, diamonds, clubs, and spades. The game is known for its strategic depth and is often played socially in Swiss households and in clubs, as well as in organized tournaments.

In Jass, players have imperfect information because they don't know the exact distribution of cards among their opponents. Let's break down Jass in this context:

• Game State:

The game state in Jass consists of the current set of cards held by each player, the cards that have been played in the current round, and the state of the trick (the cards played in the current trick).


• Imperfect Information:

Players don't have complete information about the distribution of cards, which makes it an imperfect information game. They have knowledge of their own cards but lack full information about their opponents' hands.


• Decision Tree:

Jass can be represented as a decision tree where each node represents a possible game state, and each edge represents a player's action (playing a card). However, the imperfect information aspect complicates the decision tree because players don't know the exact cards held by their opponents.


• Minimax Strategy:

In a minimax strategy, a player aims to minimize the maximum potential loss (i.e., the worst-case scenario) while considering the uncertainty of the opponents' cards.

A player must estimate the likelihood of different cards being held by opponents based on their actions and the cards played in the current trick.

The player can make decisions to maximize their expected value or minimize their expected loss based on these estimated probabilities.

Work Experience

03

This section is in contruction

CONTACT

04

Email

You can reach me at contact@davideb.ch

Or at davide.berweger@headswap.com


Linkedin

I havent created a LinkedIn yet, but plan to do so in the near future.


Github

Here is where I publish mosts of my cool projects! Follow me here:


Github


Copyright © 2024 - Davide Berweger Gaillard