Hi, I'm João Davi
A Brazil-based full-stack developer with 3 years of freelancing experience in web and mobile development. I thrive on the dopamine kick of seeing people use my apps and aim to craft impactful user experiences.
Tools
Tech Stack
Services
Projects

AI-Powered Content Generation Automation using Make and OpenAI
This Make-based project integrates Google Sheets, OpenAI API, Google Docs, and DALL-E3 to automate the creation of content (text, audio, and images) for video production. By using a single input, this project enables the generation of engaging content, saving time and effort for content creators. The automation process utilizes OpenAI's language model and DALL-E's image generation capabilities to produce high-quality content, while Make's workflow management integrates the various tools for seamless execution.

Mobile Wallet Application with Advance Features
This React Native and Node.js-based mobile wallet application enables users to deposit funds, set withdrawal dates, and block values until the specified date. The app features user levels, including admin and user, allowing administrators to track transactions, balances, and other essential information. Additionally, the app integrates with Pix payments, providing a seamless payment experience. Developed with security and ease of use in mind, this mobile wallet application is designed to simplify financial transactions and management. The application was developed in collaboration with Ricardo Amorim (https://github.com/RicardoIA) responsible for development and integration in React Native.

Inventory Analysis and Ordering System for Franchise Model
This Node.js-based tool provides a comprehensive inventory management solution for franchise models, allowing for real-time tracking of stock levels, automatic generation of orders, and dynamic inventory control. The system also supports multiple products, suppliers, and storage locations, as well as authentication levels for administrators and collaborators. Additionally, it includes features for handling discrepancies in deliveries and tracking changes in product receipt.

Real Estate Credit Analysis Report Tool
Relatórios Beta Negócios is a web-based application that collects data from a form page and exports reports in PDF format for real estate credit analysis. Developed using HTML5, CSS3, Node.js, and MySQL, this tool provides a comprehensive platform for evaluating credit worthiness and making informed decisions in the real estate market.

bet365toCSV - A Node.js Terminal App
This Node.js terminal application uses the RapidAPI to fetch virtual football results from bet365 and returns them in CSV format. You can filter the results by league or date. Simply run the app, provide the API key, and get instant access to the results. Perfect for football enthusiasts and data analysts looking to automate their data collection process.
Articles
Software: Product versus Problem
As I progressed in my career as a developer, I realized that creating a high-quality software is not just about designing an architecture, writing code, testing it, and putting it into production. It is also about having an analytical thought process that precedes the choice of technology itself. This happens because clients can have two distinct expectations from a project: - Creating a product. - Solving a problem. This detail is extremely important because it defines two types of clients with vastly different needs. The client who seeks to create a software product has a clear idea of what they want, and usually, they have materials such as documents, requirements lists, wireframes, and other references where they expect a result that meets their entire expectations. On the other hand, the client who seeks to solve a problem knows that technology can help, but they do not have a clear idea of how it would work in practice and have a vague understanding of the available solutions, costs involved in implementing the solution, etc. With this in mind, we can think of a specific approach to cater to each client's demand. The first step to reaching the desired product or solution is to ask the client, as the developer/analyst, which of the two profiles they fit, to know what to expect. If the client is seeking a software product, discussions with the technical team should focus mainly on the nature of the project, the delivery dynamics, the expectation regarding the requirements timeline, and primarily, the dedication of initial time for the team's thorough analysis of the material to make suggestions to the client and relevant observations. In this case, the final delivery will always result in software and documentation related to it. On the other hand, in the second case, the solution may not always result in software, and the employment of an existing technology may be more suitable. Therefore, the work of the analyst, in addition to contacts with the client, will focus on identifying the client's expectations and listing them to develop a solution that perfectly meets them, without starting development or using unnecessary tools, even if the client believes they are necessary. When considering investing time and money in creating a technological solution, consider these factors to ensure agile development and satisfaction with the result adds even more value to your business or personal project.
What is Domain and Hosting?
Domain and hosting are two fundamental components for creating and maintaining a website on the internet. Although they are interrelated, they perform distinct functions and are essential for ensuring that a website is accessible to users. A domain is the address of your website on the internet, such as www.example.com. It's what users type into their browser's address bar to access your website. Domains are managed by domain registrars, which are authorized organizations to sell and manage domain names. When you register a domain, you are essentially renting that address for a specific period, usually a year, with the option to renew. Domains facilitate the location of websites on the vast internet, providing memorable and easy-to-use addresses. On the other hand, hosting refers to the service that stores your website's files and makes them available on the internet. When a user accesses your domain, their browser connects to the hosting server where your website's files are stored and displays them. There are different types of hosting, including shared hosting, VPS (Virtual Private Server), dedicated hosting, and cloud hosting. Each type offers different levels of performance, security, and cost, allowing you to choose the option that best fits your website's needs. The combination of a domain and a hosting service is necessary for a website to be accessible on the internet. The domain serves as a friendly address for users, while hosting provides the storage space and resources needed to serve your website's files to visitors. It is possible to register a domain and contract a hosting service from different providers, but many hosting providers also offer domain registration services, making it easier to manage these two components integrated. In summary, a domain is the address of your website on the internet, while hosting is the service that stores and makes available your website's files. Both are essential to ensure that your website is accessible and functioning correctly on the web.
Virtual Private Server (VPS) Hosting versus Shared Hosting, Understand the Differences.
Choosing between Virtual Private Server (VPS) Hosting and Shared Hosting is a crucial decision for any online project. Both options have their advantages and disadvantages, and the right choice depends on the specific needs of your site or application. Shared Hosting is a popular and affordable hosting option, ideal for small to medium-sized sites that don't require many resources. In this model, multiple sites share the same physical server's resources, including CPU, memory, and storage. This makes shared hosting accessible, but it can also lead to performance issues if one of the sites on the server consumes many resources. The main advantage of shared hosting is the low cost, making it an attractive option for beginners and small businesses. On the other hand, VPS Hosting offers a middle ground between shared hosting and dedicated hosting. In a VPS, a single physical server is partitioned into multiple virtual servers, each with its own dedicated resources, such as CPU, memory, and storage. This provides more control and flexibility, allowing for customized software installation and server configuration according to the site's specific needs. VPS hosting is ideal for medium to large-sized sites that require more resources and a more stable and secure hosting environment. The main difference between the two options is how server resources are allocated. In shared hosting, resources are shared among all sites on the server, which can lead to performance issues if one site consumes many resources. In VPS hosting, resources are dedicated to each virtual server, ensuring a more stable and predictable performance. Additionally, VPS hosting offers more security, as each virtual server is isolated from others, reducing the risk of attacks and security issues. Shared hosting, on the other hand, may be more vulnerable to attacks, as all sites share the same server environment. In conclusion, the choice between VPS hosting and shared hosting depends on the specific needs of your project. Shared hosting is a cost-effective and practical option for smaller sites, while VPS hosting offers more resources, flexibility, and security for medium to large-sized sites. Carefully evaluating the needs of your site and budget will help make the right decision.
What is PWA (Progressive Web Application)?
A Progressive Web Application (PWA) is a web application that uses modern technologies to offer a user experience similar to that of a native application. PWAs are built using HTML, CSS, and JavaScript, but possess capabilities that make them behave like native applications, including the ability to function offline, receive push notifications, and be installed on the device's home screen. The development of PWAs is centered on the idea of providing a fast, reliable, and immersive user experience, regardless of the network or device used. To achieve this, PWAs use service workers, which are scripts executed in the background in the browser and are responsible for features such as caching, background synchronization, and push notifications. This technology allows the PWA to continue functioning even when the device is offline or has an unstable connection. In addition to service workers, PWAs benefit from the use of manifests, which are JSON files that provide information about the application, such as name, icon, and display settings. This enables the application to be installed on the device's home screen and behave similarly to a native app, with an immersive interface and no browser address bar. The concept of PWA gained popularity due to its ability to combine the advantages of web and native applications. PWAs are fast to load, even on slow connections, thanks to intelligent caching. They are responsive, adapting to different screen sizes and devices. Moreover, they offer a reliable user experience, functioning offline or in precarious network conditions. In summary, a Progressive Web Application is an advanced web application that provides a superior user experience, combining the best features of web and native applications. With the use of service workers and manifests, PWAs are fast, reliable, and immersive, offering a powerful alternative to traditional native applications.