<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Giovanni Zanotti</title>
    <description>The latest articles on DEV Community by Giovanni Zanotti (@gizano).</description>
    <link>https://dev.to/gizano</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4132043%2F1e72fb2c-6afc-422d-a737-41d1ef49179a.webp</url>
      <title>DEV Community: Giovanni Zanotti</title>
      <link>https://dev.to/gizano</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gizano"/>
    <language>en</language>
    <item>
      <title>Fighting Decision Fatigue: How ClimbStack was Born</title>
      <dc:creator>Giovanni Zanotti</dc:creator>
      <pubDate>Thu, 29 Oct 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/gizano/fighting-decision-fatigue-how-climbstack-was-born-8i0</link>
      <guid>https://dev.to/gizano/fighting-decision-fatigue-how-climbstack-was-born-8i0</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TL;DR:&lt;/p&gt;

&lt;p&gt;What: A React Native Open Source productivity App.&lt;/p&gt;

&lt;p&gt;Tech: React Native, SQLite, Typescript, i18n, CI/CD&lt;/p&gt;

&lt;p&gt;Results: Free Open Source app available on Play Store&lt;/p&gt;

&lt;p&gt;Read further to: discover how I transformed my problem into an actual application&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Too often, I’d find myself paralyzed by decision fatigue, mindlessly scrolling on my phone instead of doing something that actually helped me grow or learn something new. I’ve always loved productivity apps with sleek planners and cool UI, but I could never find one that had exactly the tools I needed without being locked behind a subscription paywall.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;That's when I realized it was time to stop searching and start building. I wanted to engineer my own solution—something that could genuinely help me, and hopefully others, overcome this exact problem.&lt;/p&gt;

&lt;p&gt;I’ve always loved the concept of "gamifying" daily routines (completing tasks and gaining something in return) and I am a huge fan of mountain trekking. That’s how I decided to shape the core identity of my app: combining gamification with a trekking analogy. The goal is to help users "climb" their days, conquer their decision fatigue, and ultimately reach their peaks.&lt;/p&gt;

&lt;h2&gt;
  
  
  ClimbStack
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fci3nz7twx9ile8kyj2fy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fci3nz7twx9ile8kyj2fy.png" alt="ClimbStackApp Icon" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's how ClimbStack was born. The application is built around five main basecamps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Today:&lt;/strong&gt; A minimalist interface to check your daily tasks at a glance, eliminating the time spent thinking about what to do next.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Peaks:&lt;/strong&gt; The place to track your main goals. You can divide them into smaller "sub-camps," making it easier to climb towards your objectives. Here you can also check your current altitude, the total number of peaks reached, and your daily streak.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Planner:&lt;/strong&gt; A drag-and-drop environment where you take your customized "Blocks" (see below) and place them into your week. It synchronizes in real-time with your local calendar, allowing you to view your ClimbStack tasks and personal events in one unified space.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blocks:&lt;/strong&gt; Where creativity takes place. You can create personalized categories and blocks for the planner without any limits. By assigning a weekly hourly target, it becomes much easier to reach your quota while organizing your schedule.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Settings:&lt;/strong&gt; The control room to personalize your experience. You can switch between multiple languages (EN | IT | DE | ES | FR) and manage your local backups to seamlessly switch devices or store your data safely.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Privacy First, Always Offline
&lt;/h2&gt;

&lt;p&gt;As a developer, my main goal was to keep all your data strictly private. ClimbStack is designed to be 100% offline-first, meaning you can use it wherever you are: at school, on the subway, or literally at the peak of a mountain.&lt;/p&gt;

&lt;p&gt;To achieve this, the app relies on a local SQLite database. As mentioned, it synchronizes exclusively with your device's local calendar, bypassing invasive cloud integrations. Even the backup system is designed around a local JSON file, giving the user total sovereignty over whether to store their data locally or upload it to their cloud of choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open-Source and Production
&lt;/h2&gt;

&lt;p&gt;The application has been developed—and will continuously evolve—in a fully open-source ecosystem. All the code is publicly available on GitHub: &lt;a href="https://github.com/ClimbStack/climbstack-app" rel="noopener noreferrer"&gt;ClimbStack's Repo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The repository is structured to welcome anyone. You can participate by opening an issue, proposing a new feature, or getting your hands dirty with the code and submitting a PR! Everyone is welcome to share their ideas and help build the ultimate productivity tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now It's Your Turn
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foncyzczms6xi4ivwlo51.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foncyzczms6xi4ivwlo51.webp" alt="ClimbStack Landing Page Image" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app is officially available on the &lt;a href="https://play.google.com/store/apps/details?id=com.gizano.levelup" rel="noopener noreferrer"&gt;Google Play Store&lt;/a&gt;, and you can start climbing today. Feel free to contribute on GitHub (a star ⭐ is always appreciated!) or follow the project's updates on our &lt;a href="https://www.linkedin.com/company/climbstack/" rel="noopener noreferrer"&gt;LinkedIn Page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;While an iOS release isn't immediately on the horizon, sponsoring or contributing to the project is the best way to help us bring ClimbStack to the Apple ecosystem soon!&lt;/p&gt;

&lt;p&gt;Now pack your gear, download the app, and start climbing!&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;Hi, I’m GiZano! I am a BSc Computer Science student at the University of Pisa, deeply passionate about IoT, local AI, and sustainable technology. As an active Open Source contributor, my goal is to dive deeper into the FOSS (Free and Open-Source Software) world and help make tech accessible to everyone.&lt;/p&gt;

&lt;p&gt;Let's connect! &lt;a href="https://www.linkedin.com/in/giovanni-zanotti-it/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | &lt;a href="https://github.com/GiZano" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://giovanni-zanotti.is-a.dev" rel="noopener noreferrer"&gt;Personal Website&lt;/a&gt;&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>opensource</category>
      <category>typescript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Winning a Tech Contest with bE-More: Integrating IoT and Local AI for a Greener Office</title>
      <dc:creator>Giovanni Zanotti</dc:creator>
      <pubDate>Thu, 24 Sep 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/gizano/winning-a-tech-contest-with-be-more-integrating-iot-and-local-ai-for-a-greener-office-5bhd</link>
      <guid>https://dev.to/gizano/winning-a-tech-contest-with-be-more-integrating-iot-and-local-ai-for-a-greener-office-5bhd</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TL;DR:&lt;br&gt;
What: An IoT semi-automatic system for company energy saving.&lt;br&gt;
Tech: Java 23, Arduino, MQTT, ThingsBoard and local AI (Ollama/Mistral:7b).&lt;br&gt;
Results: Winner of school contest 'Project Day' 2025.&lt;br&gt;
Read further to: discover how local AI can analyze IoT data respecting privacy and environment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  I. The Background
&lt;/h2&gt;

&lt;p&gt;My journey with bE-More started in february 2025, when my team started to gear up for the Project Day, the most anticipated event in my school.&lt;/p&gt;

&lt;p&gt;Every year this contest transforms the school in a tech hub, where teams from all classes gather to showcase their projects to representatives of companies of our territory.&lt;br&gt;
We didn't want to develop a project like others, we wanted to create a professional solution for an actual global problem: energy saving.&lt;/p&gt;

&lt;h2&gt;
  
  
  II. The&amp;nbsp;Inspo
&lt;/h2&gt;

&lt;p&gt;To be sure we developed a project that would be in demand, we knew we had to resolve a real-world problem. That's how we decided to look at Agenda 2030, which challenges companies to comply with stricter environmental standards and enhance their energy savings.&lt;br&gt;
However, we found a significant friction point: while trying to optimize, companies are deeply concerned about data privacy. Sending sensitive telemetries to the cloud for analysis can often become a deal-breaker.&lt;/p&gt;

&lt;p&gt;This is why we decided to rely on a local AI analysis system. By using Ollama and the (then) newborn Mistral:7b, we created a light-weight, fast and secure solution. It allows users to get data insights and detect anomalies without spending hours reading long, complex charts.&lt;/p&gt;

&lt;h2&gt;
  
  
  III. The Project Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  III.I The Tech&amp;nbsp;Stack
&lt;/h3&gt;

&lt;p&gt;Our solution relies on different components talking to each other to gather, store and analyze data for the end user, who can then make decisions based on AI-driven insights.&lt;br&gt;
The Controller (Java 23): A desktop app which works as central hub, using WebView for the dashboard and manages the life cycle of AI analysis processes.&lt;/p&gt;

&lt;p&gt;The IoT Hub (ThingsBoard): We selected platform for robust data handling and storing, using MQTT and real-time dashboards on the port 8080.&lt;/p&gt;

&lt;p&gt;The Edge Hardware (Arduino): The actual operator of the system. It is responsible for gathering real-time telemetry from light sensors and executing local automation rules to save energy.&lt;/p&gt;

&lt;p&gt;The Intelligence (Python &amp;amp; Ollama): A middleware service that acts as a bridge between the data and the AI model by querying the PostgreSQL database of ThingsBoard to feed the Mistral:7b model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F38sdb8ru1n4mnfmhmmnx.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F38sdb8ru1n4mnfmhmmnx.webp" alt="GUI in Italian" width="720" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  III.II The Communication
&lt;/h2&gt;

&lt;p&gt;To be able to communicate, the components used MQTT and HTTP(s) protocols, which make the architecture fast and secure.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;MQTT (Message Queuing Telemetry Transport): a light-weight transport protocol to exchange messages based on the subdivision of devices in publishers and subscribers, relying on a central broker that rules the exchange of telemetries in channels called topics. In our project, it's the heartbeat of the communication between the Arduino and ThingsBoard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HTTP (HyperText Transport Protocol): a request/response protocol, relying on different types of calls (i.e. GET, POST, PUT). We used it to serve the web-based dashboards from the server to the Java app. While HTTP is natively insecure, it is possible to implement HTTPS to encrypt data between the server and the end-user, ensuring that corporate sensitive data remains protected from interceptions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsdqw5pdyny0l571ddix9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsdqw5pdyny0l571ddix9.png" alt="The modular architecture: bridging Java 23, MQTT and local AI." width="800" height="619"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  IV. The Diorama: Bringing Code to&amp;nbsp;Life
&lt;/h2&gt;

&lt;p&gt;To demonstrate bE-More during the showcase, we didn't just show a screen with code, we built a physical prototype. This diorama represents a typical office environment where our architecture could be tested in real-time.&lt;/p&gt;

&lt;h3&gt;
  
  
  IV.I The Physical Implementation
&lt;/h3&gt;

&lt;p&gt;The diorama was designed to be a miniature office. We integrated the sensor and actuators directly into the structure to simulate a real-life installation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Main Workspace LEDs&lt;/strong&gt;: Representing the lighting system, controlled by the Arduino.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Status Feedback&lt;/strong&gt;: A dedicated LED is used to indicate if the automatic mode is activated, while a Buzzer is used to signal acoustically when the mode is switched.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interactive Controls&lt;/strong&gt;: Two physical buttons were placed on the Arduino Shell to allow the user to toggle between manual control and &lt;strong&gt;Autonomous Mode&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  IV.II Circuitery in the Crafted Arduino&amp;nbsp;Shell
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbqlal7b4bemanmhvbkvq.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbqlal7b4bemanmhvbkvq.webp" alt="bE-More Circuit Diagram" width="500" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The central point of the diorama is an &lt;strong&gt;Arduino&lt;/strong&gt; microcontroller (Arduino UNO R4, to natively host Wi-Fi functionalities) that runs a deterministic logic to ensure energy saving without human intervention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The automation follows a simple rule&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sensor Input&lt;/strong&gt;: a photoresistor (connected to pin A3) continuously monitors the environments natural light.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Publishing&lt;/strong&gt;: the Arduino automatically logins (registering can be both manual and automatic on the platoform) to the ThingsBoard MQTT broker, which stores data in the database of the platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Threshold&lt;/strong&gt;: if the 'AUTO' mode is active and the natural light value exceeds a value of 450, the system automatically powers down the lighting system.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  V. Conclusion: The&amp;nbsp;Victory
&lt;/h2&gt;

&lt;p&gt;Thanks to the project and development process, where we found great synergies between the selected technologies, we developed a working product that could be installed in a real-life scenario.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Project Day 2025&lt;/strong&gt; was an unforgettable experience, where the interest of the company representatives was the ultimate validation of our hard work. We were honored to be announced as winners, a title we shared with another brilliant project from our class (VIPRA, whose github repo can be found here).&lt;/p&gt;

&lt;p&gt;This double victory proved that our school is a real nursery for innovation, where sustainability and technology meet to solve actual problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  VI. Extra: Future Possible Developments
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Security&amp;nbsp;(HTTPS)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;While the initial web server used HTTP, a professional migration to HTTPS would be the next priority. By adding an SSL/TLS layer, we can encrypt all data between the server and the end-user, ensuring total privacy during delivery.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Artificial Intelligence&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The local AI landscape has exploded since we first started. We could now enhance our analysis through:&lt;/li&gt;
&lt;li&gt;↳ Prompt Engineering: refining the input prompts to make more accurate insights from telemetry.&lt;/li&gt;
&lt;li&gt;↳ Llama 3: swapping to a more modern model to use better reasoning capabilities while keeping the same infrastructure.&lt;/li&gt;
&lt;li&gt;↳ Ad Hoc AI Models: creating a custom-trained model based on specific analysis samples, allowing a fine-tuned weight balancing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Actuators&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Decoupled Architecture&lt;/strong&gt;: in the diorama, one Arduino handled both the sensor and actuator roles. In a real-life deployment, these would appear in separate devices distributed across different zones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ESP32 Board&lt;/strong&gt;: for a final product, we would switch to ESP32 board, which include native Wi-Fi, smaller size and superior processing power.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Advanced MQTT Infrastructure&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Currently, our implementation uses an unilateral MQTT flow for telemetry. Introducing an intermediary broker, such as Mosquitto, we would enable bi-directional communication, allowing for real-time analysis and immediate automated correction through actuators without the need to risk database integrity and injections.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  VII. Bibliography and Project&amp;nbsp;Links
&lt;/h2&gt;

&lt;h3&gt;
  
  
  VII.I The&amp;nbsp;Project
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/GiZano/bE-More" rel="noopener noreferrer"&gt;GitHub (code)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  VII.II Bibliography
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://thingsboard.io/docs/getting-started-guides/what-is-thingsboard/" rel="noopener noreferrer"&gt;ThingsBoard&lt;/a&gt;&lt;br&gt;
&lt;a href="https://it.wikipedia.org/wiki/Arduino_(hardware)" rel="noopener noreferrer"&gt;Arduino&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/it/what-is/mqtt/" rel="noopener noreferrer"&gt;MQTT&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.ibm.com/docs/it/cics-ts/6.x?topic=concepts-http-protocol" rel="noopener noreferrer"&gt;HTTP&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/ollama-explained-transforming-ai-access%20ibility-and-language-processing/" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;&lt;br&gt;
&lt;a href="https://mistral.ai/news/announcing-mistral-7b" rel="noopener noreferrer"&gt;Mistral:7b&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the&amp;nbsp;Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GiZano&lt;/strong&gt;: I am a BSc in CS at University of Pisa with a deep passion for IoT, local AI, and sustainable tech. As the lead architect of bE-More, I focus on building systems that bridge the gap between complex software and real-world environmental impact - always with a privacy-first mindset.&lt;/p&gt;

&lt;p&gt;Beyond winning the Project Day 2025, I'm constantly exploring new ways to integrate modern stacks like Java 23, Python aiohttp and local LLMs into everyday life,&lt;/p&gt;

&lt;p&gt;Let's connect!&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/giovanni-zanotti-it/" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/GiZano" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://giovanni-zanotti.is-a.dev/" rel="noopener noreferrer"&gt;Personal website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://medium.com/@gizano/winning-a-tech-contest-with-be-more-integrating-iot-and-local-ai-for-a-greener-office-f906ec921963" rel="noopener noreferrer"&gt;my Medium blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>iot</category>
      <category>ai</category>
      <category>java</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Why High School is the Perfect Time to Start Contributing to Open Source</title>
      <dc:creator>Giovanni Zanotti</dc:creator>
      <pubDate>Tue, 22 Sep 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/gizano/why-high-school-is-the-perfect-time-to-start-contributing-to-open-source-450o</link>
      <guid>https://dev.to/gizano/why-high-school-is-the-perfect-time-to-start-contributing-to-open-source-450o</guid>
      <description>&lt;h2&gt;
  
  
  I. The Myth: I’m not ready…
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyxp8hmf3e75hqw0gs7hm.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyxp8hmf3e75hqw0gs7hm.webp" alt="SymPy CLI Execution" width="720" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My biggest fear before starting was the lack of experience. I used to think you had to be a senior software developer to even touch an Open Source project, let alone become part of its community. I won’t lie, the first moments are the hardest. Opening a repository and seeing hundreds of thousands of lines of code is intimidating, and the urge to quit immediately is strong. I was convinced it would take me months to make my first contribution. But then, I explored the project’s issues and stumbled upon the “beginner-friendly” labels. Seeing those was the spark that changed my mindset: Wait, I can actually do this too.&lt;/p&gt;

&lt;h2&gt;
  
  
  II. Choose the Project: why I chose SymPy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuv1xtn7hznm8uyjowvr3.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuv1xtn7hznm8uyjowvr3.webp" alt="Math symbols on blackboard" width="720" height="721"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, before making a contribution, you face the hardest decision: ‘Which project should I join?’. The answer is entirely up to you and what you love doing. Over the past few years, I’ve been diving deep into Python, and I have a genuine passion for mathematics. I really wanted to contribute under the Python Software Foundation umbrella, so I started exploring their projects. That’s when I stumbled upon SymPy, a Python library for symbolic math. Since I’ve always loved math at school, finding a project that perfectly merged my two biggest interests was an absolute goldmine.&lt;/p&gt;

&lt;h2&gt;
  
  
  III. The contribution reality (Not only code!)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F009i55cvtg9p1c2qur4b.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F009i55cvtg9p1c2qur4b.webp" alt="GitHub Codespace Window" width="720" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The reality of contributing is that you don’t need to sit down and read a massive codebase for hours before writing a single line. You just need to find a task within your reach! While browsing the open issues, I found one about adding type hints, and I knew that was my starting point. I focused on a few specific files, particularly in the solvers module, that clearly needed some work. The best part? I didn't even have to download the entire library locally. I simply spun up a GitHub-hosted environment to edit and run the code directly from my browser. I analyzed the functions' inputs and outputs to accurately define their parameters and return types. Sure, I ran into some conflicts, but dealing with them gets surprisingly easy once you learn how to read MyPy error logs. It might look intimidating from the outside, but in every big project, there is a perfect mix of simple and complex tasks just waiting to be tackled.&lt;/p&gt;

&lt;h2&gt;
  
  
  IV. Where everything starts: the first Pull Request (PR)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzkzv21tdjr9lxu28yqb2.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzkzv21tdjr9lxu28yqb2.webp" alt="My First Accepted PR" width="720" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I mentioned earlier, the fear of not being experienced enough is real, and right after writing your first lines of code, that imposter syndrome might come rushing back. In open source, you can’t just push your code directly into the main project; it has to pass numerous automated tests and a code review. Mentors and reviewers can sometimes feel like unreachable giants, sitting there with a red marker ready to judge your work. But the reality is completely different: they are just developers like us who once started from scratch too. Most of the time, they are there to guide you and point out what needs improvement. Getting corrections doesn’t mean you aren’t welcome! It just means you need to iterate and adjust your work until it’s ready for a “Merge” — the moment your code officially joins the project. After some back-and-forth, fixing things, and learning a ton from my mentor’s feedback, my code was finally approved. And that is when the ultimate satisfaction hits: seeing that beautiful purple [MERGED] badge appear on your Pull Request. You can finally take a deep breath and say, 'I did it!'. Sure, a single PR might not change the world, but knowing your code is now part of something much bigger is an incredible feeling.&lt;/p&gt;

&lt;h2&gt;
  
  
  V. Open Source: everybody’s duty
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbx012zf0nzgv3j2ajhop.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbx012zf0nzgv3j2ajhop.webp" alt="Obtainable Skills" width="720" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It might seem like the Open Source world is completely out of reach for high schoolers, but the reality is the exact opposite! Contributing to an Open Source project teaches you crucial skills that you simply won’t learn in a traditional classroom:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigating Git on massive, real-world projects&lt;/li&gt;
&lt;li&gt;Practicing technical English by communicating with international mentors and peers&lt;/li&gt;
&lt;li&gt;Working with GitHub Actions (CI/CD) and strictly following formatting standards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But beyond the technical skills, contributing to Open Source feels like a moral duty. It’s our way of giving something back to the giant sea of free libraries and tools that we rely on every single day to build our own projects!&lt;/p&gt;

&lt;h2&gt;
  
  
  VI. Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9r36maodk7bnbuwzcxep.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9r36maodk7bnbuwzcxep.webp" alt="GSoC Logo" width="500" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whether you are a high school student or anyone else looking to learn — you don’t need a fancy title to start contributing. Now is the perfect time! Hop on GitHub, do a quick search, and look for repositories with ‘good first issue’ or ‘beginner-friendly’ tags. The fix might seem small, but landing that first PR will give you the momentum you need to eventually tackle much bigger challenges. For me, this was just the first step on an exciting new path: I have officially submitted my proposal for the Google Summer of Code 2026! I’m hoping to spend my summer diving even deeper into SymPy. Fingers crossed!&lt;/p&gt;

&lt;h2&gt;
  
  
  VII. About the Author
&lt;/h2&gt;

&lt;p&gt;Hi, I’m GiZano! I am a BSc in CS at University of Pisa, deeply passionate about IoT, local AI, and sustainable technology. As an active Open Source contributor, my goal is to dive deeper into the FOSS (Free and Open-Source Software) world and help make tech accessible to anyone.&lt;/p&gt;

&lt;p&gt;Let's connect!&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/giovanni-zanotti-it/" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/GiZano" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://giovanni-zanotti.is-a.dev/" rel="noopener noreferrer"&gt;Personal website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://medium.com/@gizano/why-high-school-is-the-perfect-time-to-start-contributing-to-open-source-83f364d77f22" rel="noopener noreferrer"&gt;my Medium blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>sympy</category>
      <category>python</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
