<?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: Fabio Jonathan Arifin</title>
    <description>The latest articles on DEV Community by Fabio Jonathan Arifin (@fabiojonathanarifin).</description>
    <link>https://dev.to/fabiojonathanarifin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F860529%2F2b9cf185-592c-432b-bcac-778a3caf59e6.jpeg</url>
      <title>DEV Community: Fabio Jonathan Arifin</title>
      <link>https://dev.to/fabiojonathanarifin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fabiojonathanarifin"/>
    <language>en</language>
    <item>
      <title>I Built the Simplest Tool to Make You Productive Fast. Like, right now.</title>
      <dc:creator>Fabio Jonathan Arifin</dc:creator>
      <pubDate>Sat, 26 Apr 2025 12:11:52 +0000</pubDate>
      <link>https://dev.to/fabiojonathanarifin/i-built-the-simplest-tool-to-make-you-productive-fast-like-right-now-106b</link>
      <guid>https://dev.to/fabiojonathanarifin/i-built-the-simplest-tool-to-make-you-productive-fast-like-right-now-106b</guid>
      <description>&lt;p&gt;Today, productivity apps are everywhere. From overly complicated project management software to sleek but bloated to-do lists, it feels like managing tasks has somehow become a task in itself.&lt;/p&gt;

&lt;p&gt;I didn't build TinyOrange to chase trends. I built it because I needed it; well, my girlfriend needed it first, but I also found out later that it really helped me with my tasks management system.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Productivity Was Becoming a Second Job
&lt;/h2&gt;

&lt;p&gt;It all started when my girlfriend asked for a simple tool to help her maintain her work without wasting time. She uses Asana, but these apps are designed for teams, not individuals, making documentation flow maintenance cumbersome.&lt;/p&gt;

&lt;p&gt;I experienced similar challenges when founding my company and handling numerous responsibilities alone during our early days. When motivation runs low, discipline becomes necessary, and momentum is essential to keep going.&lt;/p&gt;

&lt;p&gt;To keep the business running, I needed better organization. Work often stalled because I couldn't identify the next priority among my many tasks. I juggled various responsibilities: fixing bugs, building features, customer communication, marketing, processing feedback, and building traction - not to mention personal and family matters.&lt;/p&gt;

&lt;p&gt;I tried several project management solutions I was familiar with - starting with Jira, then Asana, and finally Trello with its kanban approach. As a software engineer who loves systems, I noticed an irony: the more I "optimized" my workflows, the more time I spent maintaining them instead of doing actual work.&lt;/p&gt;

&lt;p&gt;These apps demanded significant overhead: configuring projects, linking subtasks, assigning priorities, creating labels, setting up automations, typing tasks, moving items between columns, and managing dashboards. What should have been helpful tools became almost full-time jobs themselves.&lt;/p&gt;

&lt;p&gt;I didn't want a second job. I just wanted to get things done.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea: Focus on Doing, Not Organizing
&lt;/h2&gt;

&lt;p&gt;I realized what I needed was radically simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A clean space where I could drop tasks as fast as they came to me.&lt;/li&gt;
&lt;li&gt;No setup headaches.&lt;/li&gt;
&lt;li&gt;No endless configurations.&lt;/li&gt;
&lt;li&gt;No stupid amount of workflow to maintain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just a way to quickly write things down and get them done without distractions. And I need to make it as frictionless as possible to see it back and forth.&lt;/p&gt;

&lt;p&gt;TinyOrange was born from that frustration and that vision.&lt;/p&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.amazonaws.com%2Fuploads%2Farticles%2Fggqdjwgur9jbnv9fn5pw.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.amazonaws.com%2Fuploads%2Farticles%2Fggqdjwgur9jbnv9fn5pw.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building TinyOrange: Keeping It Tiny on Purpose
&lt;/h2&gt;

&lt;p&gt;From the start, my principle was simple:&lt;br&gt;
If a feature made you spend more time organizing than doing, it didn't belong.&lt;br&gt;
That's why TinyOrange:&lt;br&gt;
Is lightweight and fast.&lt;br&gt;
Lets you create tasks instantly without worrying about fields or categories.&lt;br&gt;
Focuses only on helping you take action, not creating complicated systems around it.&lt;/p&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.amazonaws.com%2Fuploads%2Farticles%2Fo8u0lmmw9qzs6cqa07qn.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.amazonaws.com%2Fuploads%2Farticles%2Fo8u0lmmw9qzs6cqa07qn.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I made it a desktop app so your tasks appear immediately when your computer starts (maintaining momentum). Many people lose valuable time figuring out what to do when they begin their workday, as it takes time to get in the zone. Seeing what needs attention right away solves this problem.&lt;/p&gt;

&lt;p&gt;It's built for doers, not project managers.&lt;br&gt;
I built TinyOrange using technologies that keep it lean, distraction-free, and brutally simple. Every design choice, from the minimalist UI to the frictionless flow, is intentional.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/vtiyswICCYM"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why TinyOrange Matters
&lt;/h2&gt;

&lt;p&gt;At the end of the day, productivity shouldn't feel like homework.&lt;br&gt;
TinyOrange reminds me, and hopefully others, that sometimes the best system is the one that gets out of your way.&lt;br&gt;
You can check out the app here: tinyorange.app&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>startup</category>
      <category>sideprojects</category>
      <category>news</category>
    </item>
    <item>
      <title>The differences between req.params, req.query, and req.body in Express.js &amp; Node.js</title>
      <dc:creator>Fabio Jonathan Arifin</dc:creator>
      <pubDate>Mon, 12 Feb 2024 07:16:51 +0000</pubDate>
      <link>https://dev.to/fabiojonathanarifin/the-differences-between-reqparams-reqquery-and-reqbody-in-expressjs-nodejs-5fi8</link>
      <guid>https://dev.to/fabiojonathanarifin/the-differences-between-reqparams-reqquery-and-reqbody-in-expressjs-nodejs-5fi8</guid>
      <description>&lt;p&gt;In this article, I’ll cover the fundamentals of Express &amp;amp; Node.js&lt;br&gt;
 in regards to &lt;strong&gt;req.params, req.query, and req.body&lt;/strong&gt;. When we discuss how websites operate, we often mention terms like “request” and “response.” A “request” is what a user asks for, and the “response” is what the server sends back.&lt;/p&gt;

&lt;p&gt;In Node.js programming, we handle requests and responses manually, even with frameworks like Express.js. Here’s how the server communication works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;We start by calling the web server provided by Node.js.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We read the URL the user wants to visit and decide how to handle it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We process the request from the user.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We send back a response to the user.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Essentially, both parameters (request and response) come from http.createServer, an HTTP server provided by Node.js that handles web communication (request and response). When http.createServer is executed upon a request, it provides two parameters:&lt;/p&gt;

&lt;p&gt;request, which is an instance of http.IncomingMessage, representing the HTTP Request sent by the user. A single connection can generate multiple HTTP Requests. We'll get more into this later.&lt;/p&gt;

&lt;p&gt;response, an instance of http.ServerResponse, representing the HTTP Response that will be sent back to the user.&lt;br&gt;
When we make a request (request), we sometimes want to either request data from the server or send data to the server, whether through a URL or a form (HTML). In this article, we’ll discuss sending and retrieving values sent via requests.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;req.query&lt;/code&gt;: When data is sent through a URL, like &lt;code&gt;http://localhost:3000/search?name=John&amp;amp;age=45&lt;/code&gt;, we can retrieve that data in our Node.js/Express code like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;router.get('/search', function(req, res, next) {
var name = req.query.name;
console.log(`Name: ${name}`)
var age = req.query.age;
console.log(`Age: ${age}`)
res.send('Request has been parsed, see console');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;req.params&lt;/code&gt;: If data is sent directly in the URL without keys, like &lt;code&gt;http://localhost:3000/search/John/45&lt;/code&gt;, we can get it like this:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;router.get('/search/:name/:age', function(req, res, next) {
var name = req.params.name;
console.log(`Name: ${name}`)
var age = req.params.age;
console.log(`Age: ${age}`)
res.send('Request has been parsed, see console');
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;req.body&lt;/code&gt;: When data is sent through an HTML form, we use &lt;code&gt;req.body&lt;/code&gt;. We first need to use the &lt;code&gt;body-parser&lt;/code&gt; library to handle this data. Here’s how:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Calling the library
var bodyParser = require('body-parser');
// Using the library in Express
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we can get the data from the form this way:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;router.post('/search', function(req, res, next) {
var name = req.body.name;
console.log(`Name: ${name}`)
var age = req.body.age;
console.log(`Age: ${age}`)
res.send('Request has been parsed, see console');
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it! That’s how we handle data sent through URLs and HTML forms in Node.js.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>express</category>
      <category>node</category>
      <category>api</category>
    </item>
    <item>
      <title>Navigating the Future in an AI-Centric World</title>
      <dc:creator>Fabio Jonathan Arifin</dc:creator>
      <pubDate>Tue, 15 Aug 2023 07:58:10 +0000</pubDate>
      <link>https://dev.to/fabiojonathanarifin/navigating-the-futurein-an-ai-centric-world-a66</link>
      <guid>https://dev.to/fabiojonathanarifin/navigating-the-futurein-an-ai-centric-world-a66</guid>
      <description>&lt;p&gt;This understanding has been derived from my involvement in crafting hundreds of tech articles at DiggerInsights. (&lt;a href="http://www.di"&gt;www.di&lt;/a&gt;&lt;br&gt;
ggerinsights.com)&lt;/p&gt;

&lt;p&gt;The significance of critical thinking skills is closely tied to the rise of AI. In a world where information is effortlessly accessible, the demand for adept critical thinking abilities is higher than ever before, poised to reach unprecedented heights. Foundational knowledge remains essential, but memorization is no longer as crucial as the ability to think critically.&lt;/p&gt;

&lt;p&gt;As an engineer, I don’t bother memorizing syntax or formulas that lack repetitive application. Instead, I prefer to spend a few seconds using AI to find the specific syntax or formula I need. This is quite different from the days when people were discouraged from asking on platforms like Stack Overflow and searching through heaps of code, often consuming minutes, if not hours, of valuable time.&lt;/p&gt;

&lt;p&gt;as a business person, I find that thriving in the modern business world requires more than just memorizing market trends or statistics. Critical thinking is the cornerstone of devising innovative strategies, adapting to changes, and solving intricate problems. Unlike the past, where hours were spent sifting through archives for business insights, today’s AI-driven landscape allows me to swiftly retrieve pertinent information, freeing up time to focus on strategic thinking and decision-making.&lt;/p&gt;

&lt;p&gt;It’s a crucial time to reflect on our cognitive abilities and further enhance our critical thinking skills. 💡&lt;/p&gt;

&lt;p&gt;How would you navigate in the future of an AI-dominated landscape? The exact timing remains uncertain, but it is inevitable.&lt;/p&gt;

</description>
      <category>career</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Michelin Chef turned Software Engineer</title>
      <dc:creator>Fabio Jonathan Arifin</dc:creator>
      <pubDate>Thu, 12 May 2022 19:32:22 +0000</pubDate>
      <link>https://dev.to/fabiojonathanarifin/michelin-chef-turned-software-engineer-35i0</link>
      <guid>https://dev.to/fabiojonathanarifin/michelin-chef-turned-software-engineer-35i0</guid>
      <description>&lt;p&gt;Hi Everyone, this is my story :)  &lt;/p&gt;

&lt;p&gt;I was born and raised in Indonesia and moved to the US when I was 15. I attended Le Cordon Bleu College of Culinary Arts and ended up with a culinary degree. After a while, I ended up working as a lead line in a Michelin star restaurant in the Bay Area&lt;/p&gt;

&lt;p&gt;While working in the Bay Area, one of the tasks that I was appointed to was R&amp;amp;D (creating new recipes). Studying chemical reactions, and trial &amp;amp; error are daily meals.&lt;/p&gt;

&lt;p&gt;At that time the majority of my friends were working as software engineers in the Bay Area, some of them work in Google, Facebook(now Meta), Yahoo, etc. In daily conversation, I was listening to how awesome creating new technology is, being able to constantly learn, create and innovate. at that time, I started comparing how I created new recipes vs how they created and innovate new technology, it is a completely different in scale; they create, innovate and optimize to help human life on a significantly substantial scale.&lt;/p&gt;

&lt;p&gt;Then, one day, two of my friends, A (Ex-Googler, now working as a CTO and got into Forbes 30 under 30) and B (Coursera) saw my interest in tech and started introducing me to how programming works. They helped me to start learning by finding the right books to read, and the right classes to take from Udacity and Coursera; I ended up taking a python class, and reading ‘Head First, Java’.&lt;/p&gt;

&lt;p&gt;However, at that time my working hours were 60-80 hours per week(it’s quite common to have that kind of working hours in if you're working as a micromanaging supervisor in a Michelin restaurant), consequently, I was unable to complete and continue the book nor the class; I had a burnout. but it gets me to end up contemplating my future career in the restaurant industry; I was thinking of having more time for my family, a better working lifestyle, and better social life in the future. in my mind, I wouldn't be able to get those in the restaurant industry unless I moved out of the Michelin restaurant circle, which was not an option for me; I do am quite ambitious and passionate about what I do.&lt;/p&gt;

&lt;p&gt;After a while, the restaurant offered me to apply for a green card so that I was able to continue to work there. Instead, I chose to go back to my home country Indonesia while I started reconsidering my future career. In Indonesia, I ended up trying to work in a different industry; I started to work for a public accountant company, as a business strategy manager, thinking that I could use more experience in delegating tasks, problem-solving, and communication. I got what I wanted in terms of mental and physical health; I am able to have the social life that I wanted, and not have to work 10-14 hours on the weekend while my friends were out. I have the time to learn and improve myself by reading 1-2 books per month; I love reading books. My relationships with my family and others have significantly improved. &lt;/p&gt;

&lt;p&gt;Since working as a business development manager, I was able to save 12%-15% of the company’s unnecessary bleeding expenses per year by creating a leaner and more efficient system and operation. I had the chance to work with some extraordinary people. I also had the chance to learn new project management tools and skills like Agile, Kanban Board, and Kaizen. I believe learning, observing, and listening is an absolute necessity; whether from the people around me, from books, or from my mentor. It is a philosophy that I learned and hold from one of my mentors in the restaurant industry. I learned that who we are going to be tomorrow, should be better than who we are today.&lt;/p&gt;

&lt;p&gt;Even with all that, there’s a hole in me that is somehow unfulfilled. I missed the time when I was able to create, and innovate. I missed the grit that I had to solve problems through doing trial and error experiments.&lt;/p&gt;

&lt;p&gt;in July 2021, as my working hour was significantly better compared to when I worked in the restaurant industry, I started my journey to be a software engineer. At first, I took and finished some Python, HTML, and CSS courses at Codecademy. Then, I took the JavaScript Algorithms and Data Structures curriculum at freeCodeCamp, and currently, I am at the end line of finishing a Udemy course called ‘The Web Developer Bootcamp 2022’ by Colt Steele.&lt;/p&gt;

&lt;p&gt;From what I experienced, I gain a lot of new skill set that is more relevant to the industry rather than just theoretical.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; a better skill set in using CSS flexbox and the usage of CSS frameworks, such as Bootstrap and Bulma. &lt;/li&gt;
&lt;li&gt; Understanding and usage of OOP.&lt;/li&gt;
&lt;li&gt;implementing the skills and tools that we learned into real-life projects.&lt;/li&gt;
&lt;li&gt; learning JavaScript ES6 and more current syntax such as, async/await, destructuring, default, rest, spreads, reduce, map, and arrows.&lt;/li&gt;
&lt;li&gt;learning and implementing CRUD and RESTful API into projects&lt;/li&gt;
&lt;li&gt;learning full-stack tools such as Express, Mongoose, MongoDB, Node, and Postman so that we're able to build a complete web app by ourselves. &lt;/li&gt;
&lt;li&gt;learning to Terminal syntaxes using Bash and Powershell.&lt;/li&gt;
&lt;li&gt;Other awesome tools like bcrypt, momentJS, PassportJS.
But the best thing that I got from the course is learning how to learn new programming tools; which I currently am implementing by learning tailwinds for my new dessert business that I run with my friend called Milestone Dessert. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the end, my need for a more balanced lifestyle bring me out of the restaurant industry, and my love for learning, creating, and innovating something impactful for humanity is what brought me into pursuing a career in software engineering. I believe my experience working in restaurant industry and as a business strategy manager does bring some value to being a software engineer. But beyond all of that, it brings me happiness that what I do will contribute to the improvement of other people’s life quality.&lt;/p&gt;

&lt;p&gt;The amount of things that I have to learn in this industry humbles me. I would be honest with you, it’s definitely not an easy thing to do. It’s a very steep mountain. But, the thing that keeps me going is the goal and vision that I have in mind to significantly impact the lives of others in the future. &lt;/p&gt;

&lt;p&gt;_If you’re with me right now, walking on this journey. Sometimes it feels dark, sometimes it feels like we’re walking towards uncertainty, and sometimes it feels nice to entertain the mind that wants to just quit and give up. &lt;/p&gt;

&lt;p&gt;But always keep in mind that every single step that you’re making right now is a step closer to your goal, no matter how small it is. whether it’s finding your first job, getting a promotion, creating your startup or other awesome and extraordinary things that are going to happen to you in the future if you keep walking. Don’t stop, keep walking, the end of the tunnel is closer than you think.&lt;br&gt;
_&lt;/p&gt;

&lt;p&gt;I hope you enjoy reading it as much as I was writing it :)&lt;/p&gt;

</description>
      <category>career</category>
      <category>devjournal</category>
      <category>javascript</category>
      <category>motivation</category>
    </item>
  </channel>
</rss>
