As an 19-year-old self-taught programmer from Finland, I have a wide range of programming skills and a passion for artificial intelligence. With five years of experience under my belt, I am proficient in Python and have a strong foundation in JavaScript, HTML, and CSS. In addition, I have some experience with Rust and am currently learning the basics of C/C++.

smb-ppo

In my first machine learning project, I utilized OpenAI's gym-retro to create an AI that could successfully complete a few levels of Super Mario Bros. To enhance the model's performance, I implemented image pre-processing techniques such as gray-scaling and downscaling the game window. Additionally, I created a custom scenario file to define rewards and penalties, as well as to determine when a single episode should end.

I employed the stable-baselines3 PPO algorithm for the neural network, and was able to successfully train the model to complete the levels in a relatively fast time.

This project served as a valuable introduction to the field of AI and solidified my interest in the subject. It was gratifying to observe the AI learn and improve its gameplay over time. I found experimentation with different parameters and adjustments to the network to be a particularly rewarding aspect of the project.

Overall, this project was a valuable learning experience, and I am eager to continue exploring the potential of AI in the future.

nn-tool

In this project, I developed a tool that can create neural networks from scratch using only NumPy. The project was a challenging but rewarding experience, as I had to code all the mathematics by hand and implement a basic dense layer and several activation layers. Additionally, I included two loss functions, Cross-Entropy Loss and Mean Squared Error, to provide options for both classification and regression problems. To speed up the training I also implemented a cuda accelerated CuPy version of the same tool.

One of the most exciting aspects of this project was the ability to experiment with different parameters and observe the network's performance. I used the MNIST dataset as a showcase and was pleased to see the network correctly classify numbers with a high level of accuracy. In the end I was able to achieve over 98% accuracy.

The results were particularly gratifying, as it was a testament to the effectiveness of the network I had developed.

The process of coding the mathematics by hand was a valuable learning experience. I found it to be a great way to gain a deeper understanding of the underlying principles of neural networks. I also enjoyed the challenge of developing a functional neural network without using pre-existing libraries.

Overall, this project reinforced my interest in the field of AI and machine learning. I am excited to continue exploring the potential of these technologies in the future. I'm planning to improve the tool by adding more layers, activation functions and optimizers.

netatmoapi

In this project, I developed a Python wrapper for the Netatmo Connect API. The goal of this project was to make it easy for developers to access the Netatmo Connect API from Python. This package makes it easy to interact with the Netatmo Connect API and perform tasks such as retrieving data from Netatmo devices and managing them.

One of the key features of this wrapper is that it is open-sourced and available from PyPi, making it easy for developers to install and use. This makes it simple for developers to integrate the Netatmo Connect API into their projects and automate tasks related to Netatmo devices.

Despite following the API documentation and interpreting it in the way I wanted, the development process was relatively straightforward. This project was more about sharing my work publicly and getting used to the process of making my projects open source. I was able to understand the API and its endpoints, and then implement them in a way that was easy to use for Python developers. I also had to take into account the various parameters and options available for each endpoint and ensure that they were easy to use in the wrapper.

Overall, this project was a great opportunity to share my work publicly and get more familiar with open-source development. I'm looking forward to continue working on open-source projects and contributing to the developer community. Netatmo has since modified their API, and this project is no longer maintained.

kakkulaari.fi

As my first web development project, I developed a website for my mother, who is a hobbyist baker that creates cakes that look like real objects. The goal of this website was to showcase her baked goods and make it easy for her followers to appreciate her cakes and see her creative work.

I used the Instagram API to fetch all of her photos and planted them onto the website. I also implemented a search system that allows users to search for specific cakes using hashtags as keywords. Additionally, I included a filter feature that allows users to browse sweet or salty pastries.

This project was my first experience with web development, and I was excited to take on the challenge of creating a website from scratch. I worked closely with my mother to understand her vision and bring it to life. It was a fun and creative process and I enjoyed learning about different web development techniques and technologies.

Overall, this project was a great learning experience, and I am proud of the final product. I'm looking forward to continue improving my web development skills and creating more websites in the future.

ruokaboksi-archive

In this project, I developed a recipe archive for private use. The goal of this project was to create a tool that allows for easy organization and retrieval of meal-kit recipes. The archive allows for filtering recipes by their ingredients which were gathered from over 1000 recipes using an NLP model. Additionally, it includes a feature that allows users to view the recipe, instructions and its ingredients along with their amounts.

This recipe archive website allows users to filter recipes based on their ingredients. On the left side of the website, users can select specific ingredients to filter the recipes shown on the website. Clicking on a recipe will open a new tab with the recipe and its ingredients, along with the link to the original recipe.

The development process involved understanding the needs and use cases of the users and gathering all the recipes and ingredients information. One of the most challenging aspects was to design the user interface and the database in a way that makes it easy to use and understand. I also had to work with filtering and sorting mechanisms more in-depth than before.

Another challenging aspect was to gather the ingredients information from the over 1000 recipes. I had to manually go through multiple recipes before handing the rest of the work to the AI. The AI was trained to categorize the ingredients based on the recipe.

Overall, this project was a great opportunity to use my technical skills to create a tool that is useful for personal use. I was pleased to see the final product, and it was satisfying to see the positive feedback from the users. I'm looking forward to continue working on this tool and improve it in the future.

Get in touch with me to discuss potential opportunities or to learn more about my skills and experiences. I am excited to hear from you and to explore new opportunities to grow and learn as a programmer.

Email: joona.heimonen@gmail.com