<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jozef Cipa</title><link>https://jozefcipa.com/</link><description>Recent content on Jozef Cipa</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 13 Jul 2026 18:35:08 +0000</lastBuildDate><atom:link href="https://jozefcipa.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>How to securely access homelab via the internet with mTLS</title><link>https://jozefcipa.com/blog/how-to-securely-access-homelab-via-the-internet-with-mtls/</link><pubDate>Mon, 13 Jul 2026 18:35:08 +0000</pubDate><guid>https://jozefcipa.com/blog/how-to-securely-access-homelab-via-the-internet-with-mtls/</guid><description>Establishing a secure connection to home services requires balancing accessibility and robust authentication. This guide explores the use of mTLS to provide client-certificate-based security for external access to a homelab environment.</description></item><item><title>Turning an old 27” iMac into an external monitor</title><link>https://jozefcipa.com/blog/turning-an-old-27-imac-into-an-external-monitor/</link><pubDate>Thu, 07 May 2026 14:54:41 +0000</pubDate><guid>https://jozefcipa.com/blog/turning-an-old-27-imac-into-an-external-monitor/</guid><description>&lt;p&gt;I’ve always admired the design of the older 27” iMacs. Back when they were still current, I couldn’t really afford one, so owning one became one of those small “maybe one day” dreams from my student years.&lt;/p&gt;</description></item><item><title>Building a USB HID Device with Raspberry Pi Pico and TinyGo</title><link>https://jozefcipa.com/blog/building-a-usb-hid-device-with-raspberry-pi-pico-and-tinygo/</link><pubDate>Tue, 10 Mar 2026 11:22:40 +0000</pubDate><guid>https://jozefcipa.com/blog/building-a-usb-hid-device-with-raspberry-pi-pico-and-tinygo/</guid><description>&lt;p&gt;I have an old Mac Mini that I wanted to use to run &lt;a href="https://retropie.org.uk/"&gt;RetroPie&lt;/a&gt; and launch it automatically after startup. But the question was how to turn it off. I didn’t want to yank the power or force‑shut the whole OS, but I also don’t have a keyboard and a mouse connected to it. I wanted to have a graceful way to trigger a clean shutdown so the system could close everything properly.&lt;/p&gt;</description></item><item><title>Upgrading my iPod Classic</title><link>https://jozefcipa.com/blog/upgrading-my-ipod-classic/</link><pubDate>Fri, 26 Sep 2025 10:15:38 +0000</pubDate><guid>https://jozefcipa.com/blog/upgrading-my-ipod-classic/</guid><description>&lt;p&gt;Why would anyone buy an iPod in 2025? After all, we already carry smartphones that can stream anything, anytime. But that’s exactly what makes the iPod stand out. It’s a device that focuses on &lt;strong&gt;just one thing&lt;/strong&gt; - playing music. No notifications, no social media feeds, no distractions—just your music library and nothing else.&lt;/p&gt;</description></item><item><title>Exploring Scandinavia ‒ my journey to Nordkapp</title><link>https://jozefcipa.com/blog/exploring-scandinavia-my-journey-to-nordkapp/</link><pubDate>Sat, 30 Aug 2025 16:05:07 +0000</pubDate><guid>https://jozefcipa.com/blog/exploring-scandinavia-my-journey-to-nordkapp/</guid><description>&lt;p&gt;Ever since I bought my new adventure bike, I knew that one day I had to go on a trip to the very north. I cannot explain why exactly I was so thrilled about this journey, as there’s not really much interesting to see along the way, except for the highways and never-ending forests. At least that’s what some people would tell me. But something in my mind kept bugging me. I saw several motorcyclists setting off on this journey, and I always found it super interesting.&lt;/p&gt;</description></item><item><title>My EDC collection</title><link>https://jozefcipa.com/blog/my-edc-collection/</link><pubDate>Mon, 18 Aug 2025 10:11:20 +0000</pubDate><guid>https://jozefcipa.com/blog/my-edc-collection/</guid><description>&lt;p&gt;Recently, I realized I’ve collected quite a few handy little items that I use almost every day. For a long time, I didn’t even know “Everyday Carry” — or EDC — was a thing. I’ve just always been drawn to cool-looking, compact gear that feels good in the hand.&lt;/p&gt;</description></item><item><title>How to do Raspberry Pi OS backups</title><link>https://jozefcipa.com/blog/how-to-do-raspberry-pi-os-backups/</link><pubDate>Wed, 30 Jul 2025 13:03:44 +0000</pubDate><guid>https://jozefcipa.com/blog/how-to-do-raspberry-pi-os-backups/</guid><description>&lt;p&gt;I recently got a Raspberry Pi Zero and started configuring it for a personal project. As I was setting everything up I realized how much time and effort I was investing. That’s when it hit me: microSD cards, which the Pi relies on for storage, aren&amp;rsquo;t exactly known for their durability under heavy I/O. A sudden failure could mean losing everything. To avoid starting from scratch in the future, I decided to create a full backup of the system, including all configurations and data.&lt;/p&gt;</description></item><item><title>Extending your application with Lua scripts</title><link>https://jozefcipa.com/blog/extending-your-application-with-lua-scripts/</link><pubDate>Sun, 01 Jun 2025 22:49:31 +0000</pubDate><guid>https://jozefcipa.com/blog/extending-your-application-with-lua-scripts/</guid><description>&lt;p&gt;I was always intrigued when I heard about people creating custom mods in games with the help of the mysterious Lua scripting language. I didn’t care much about the games themselves, but more about the idea of extending and customizing something to my imagination. I’m not a gamer, but I love automation and modifying things, so this naturally sparked my interest.&lt;/p&gt;</description></item><item><title>How I built a custom Homekit thermostat for 40€</title><link>https://jozefcipa.com/blog/how-i-built-a-custom-homekit-thermostat-for-40eur/</link><pubDate>Sun, 09 Mar 2025 18:22:16 +0000</pubDate><guid>https://jozefcipa.com/blog/how-i-built-a-custom-homekit-thermostat-for-40eur/</guid><description>&lt;p&gt;&lt;video src="https://assets.jozefcipa.com/blog/12677955515e8037be53e7832bb10412/thermostat.mp4" autoplay muted controls&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;I wanted a smart HomeKit thermostat for a long time. The only problem is that it is quite expensive so I never bought one. Last year, &lt;a href="https://www.espressif.com/"&gt;Espressif&lt;/a&gt; organized an introductory workshop to familiarize people with ESP32. I’ve heard about this board before but didn’t know what exactly it was and never really played with it. So I signed up for the workshop to get hands-on experience with the chip. If you don’t know what ESP32 is, you can think of it as something between Arduino and Raspberry Pi - a microprocessor that you can program in C with GPIO pins, WiFi and Bluetooth connectivity.&lt;/p&gt;</description></item><item><title>Watching Github repo stars via Telegram</title><link>https://jozefcipa.com/blog/watching-github-repo-stars-via-telegram/</link><pubDate>Thu, 27 Feb 2025 07:57:09 +0000</pubDate><guid>https://jozefcipa.com/blog/watching-github-repo-stars-via-telegram/</guid><description>&lt;p&gt;I recently published and shared with the world my first real open-source &lt;a href="https://github.com/jozefcipa/novus"&gt;project&lt;/a&gt;. It brought some traffic to its Github page and some people even starred it. This made me super happy, knowing that other people find my project useful or interesting enough to give it a star.&lt;/p&gt;</description></item><item><title>Monitoring your website with Upptime</title><link>https://jozefcipa.com/blog/monitoring-your-website-with-upptime/</link><pubDate>Sun, 02 Feb 2025 22:39:27 +0000</pubDate><guid>https://jozefcipa.com/blog/monitoring-your-website-with-upptime/</guid><description>&lt;p&gt;Recently I’ve encountered an unpleasant situation on one of the websites I manage. I randomly opened it only to find out it wasn’t working. Unfortunately, it was not a very important website, so no harm was done but the problem was that I didn’t know for how long it had been down. This is unacceptable, especially for the important websites that cannot go down.&lt;/p&gt;</description></item><item><title>Novus just got better (again)</title><link>https://jozefcipa.com/blog/novus-just-got-better-again/</link><pubDate>Thu, 16 Jan 2025 08:36:29 +0000</pubDate><guid>https://jozefcipa.com/blog/novus-just-got-better-again/</guid><description>&lt;p&gt;After a couple of months since the last release, here I am again, announcing a new updated version of Novus - &lt;a href="https://github.com/jozefcipa/novus/releases/tag/v0.0.5"&gt;v0.0.5&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This version includes new features and minor enhancements, but most importantly, it introduces the &lt;code&gt;**trust**&lt;/code&gt; **command—**something I have wanted to have since the very beginning.&lt;/p&gt;</description></item><item><title>How to use sudo without a password in your programs</title><link>https://jozefcipa.com/blog/how-to-use-sudo-without-a-password-in-your-programs/</link><pubDate>Tue, 14 Jan 2025 19:51:47 +0000</pubDate><guid>https://jozefcipa.com/blog/how-to-use-sudo-without-a-password-in-your-programs/</guid><description>&lt;p&gt;When writing software, sometimes it is necessary to run shell commands that require sudo privileges. This can happen, for instance, when building a CLI tool that needs to write into protected filesystem directories or modify certain files. Such commands are usually prepended with the &lt;code&gt;sudo&lt;/code&gt; keyword which is then followed by a password prompt. This is very important from the security perspective, so the OS can protect sensitive data. However, sometimes it might become annoying when using a tool that constantly asks for a password.&lt;/p&gt;</description></item><item><title>Novus v0.0.4 released 🚀</title><link>https://jozefcipa.com/blog/novus-v0-0-4-released/</link><pubDate>Thu, 14 Nov 2024 15:58:48 +0000</pubDate><guid>https://jozefcipa.com/blog/novus-v0-0-4-released/</guid><description>&lt;p&gt;Ever since &lt;a href="https://jozefcipa.com/blog/novus-local-https-proxy-for-better-developer-experience/"&gt;releasing&lt;/a&gt; the first version of the binary, I knew there were more things I wanted to add and improve in &lt;em&gt;Novus&lt;/em&gt;. There have been a couple of smaller releases since then, but it was only bug fixes I stumbled across while using the binary.&lt;/p&gt;</description></item><item><title>Publishing a Go binary with Homebrew</title><link>https://jozefcipa.com/blog/publishing-go-binary-with-homebrew/</link><pubDate>Mon, 22 Jul 2024 09:32:37 +0000</pubDate><guid>https://jozefcipa.com/blog/publishing-go-binary-with-homebrew/</guid><description>&lt;p&gt;As developers, we often need to use many different programs for our job. There are various ways to install these applications, one of the most popular being &lt;a href="https://brew.sh/"&gt;Homebrew&lt;/a&gt;. It is advertised as “the missing package manager for macOS” (and Linux) and it certainly does a great job there. But have you ever wondered how it works under the hood and how can one add their custom binary into it?&lt;/p&gt;</description></item><item><title>Introducing Novus - a local HTTPS proxy for better developer experience</title><link>https://jozefcipa.com/blog/novus-local-https-proxy-for-better-developer-experience/</link><pubDate>Wed, 12 Jun 2024 22:07:23 +0000</pubDate><guid>https://jozefcipa.com/blog/novus-local-https-proxy-for-better-developer-experience/</guid><description>&lt;p&gt;Novus is a tiny command-line utility designed to enhance local web development. It consists of several tools to provide production-like web URLs on your local machine in a matter of seconds. You don’t have to bother by figuring out how to configure HTTP server, DNS resolutions or manage SSL certificates. Everything is handled by Novus so you can focus on your work.&lt;/p&gt;</description></item><item><title>LaundryAlert - never forget your laundry again</title><link>https://jozefcipa.com/blog/laundryalert-never-forget-your-laundry-again/</link><pubDate>Thu, 01 Feb 2024 10:20:07 +0000</pubDate><guid>https://jozefcipa.com/blog/laundryalert-never-forget-your-laundry-again/</guid><description>&lt;p&gt;A few months ago I was hanging my laundry after it stayed in the washing machine for half a day before I remembered I had forgotten to take it out. And this didn’t happen for the first time. Maybe it happened to you too. I got fed up and that’s when I got an idea.&lt;/p&gt;</description></item><item><title>Self signed SSL certificates on iOS</title><link>https://jozefcipa.com/blog/self-signed-ssl-certificates-on-ios/</link><pubDate>Thu, 18 Jan 2024 23:51:14 +0000</pubDate><guid>https://jozefcipa.com/blog/self-signed-ssl-certificates-on-ios/</guid><description>&lt;p&gt;Recently I was working on a project and I needed to add an SSL certificate for the API service. Normally you would use &lt;a href="https://letsencrypt.org/"&gt;Let’s Encrypt&lt;/a&gt; or some other certificate authority after deploying the service. In this case, though, my service will always only run on a local network and thus I have to generate a self-signed certificate.&lt;/p&gt;</description></item><item><title>Javascript objects are tricky</title><link>https://jozefcipa.com/blog/javascript-objects-are-tricky/</link><pubDate>Fri, 08 Sep 2023 23:55:34 +0000</pubDate><guid>https://jozefcipa.com/blog/javascript-objects-are-tricky/</guid><description>&lt;p&gt;I just spent four hours debugging a really weird issue… I’m gonna write it up here as a reminder for my future self, and maybe you’ll find it useful too.&lt;/p&gt;</description></item><item><title>Server-sent events or how ChatGPT typing animation works</title><link>https://jozefcipa.com/blog/server-sent-events-or-how-chatgpt-typing-animation-works/</link><pubDate>Tue, 23 May 2023 00:31:35 +0000</pubDate><guid>https://jozefcipa.com/blog/server-sent-events-or-how-chatgpt-typing-animation-works/</guid><description>&lt;p&gt;I’m sure you’ve heard of ChatGPT, the &lt;a href="https://www.reuters.com/technology/chatgpt-sets-record-fastest-growing-user-base-analyst-note-2023-02-01/"&gt;fastest-growing&lt;/a&gt; user application in the history of the internet. Most probably you also played with it or even used it for work. This chatting model provides impressive and often mind-blowing responses to a wide range of questions. But have you ever wondered how it works?&lt;/p&gt;</description></item><item><title>Database locks, lost updates and idempotency</title><link>https://jozefcipa.com/blog/database-locks-lost-updates-and-idempotency/</link><pubDate>Thu, 26 Jan 2023 23:14:39 +0000</pubDate><guid>https://jozefcipa.com/blog/database-locks-lost-updates-and-idempotency/</guid><description>&lt;p&gt;Web applications are often complex systems consisting of several parts such as UI (frontend), API (backend), database and often other 3rd party services that the application depends on. Designing the API service properly so it’s robust, secure, and works as expected goes without saying but sometimes there are other factors that should be considered and handled adequately.&lt;/p&gt;</description></item><item><title>Assuming IAM role and role chaining in AWS</title><link>https://jozefcipa.com/blog/assuming-iam-role-and-role-chaining-in-aws/</link><pubDate>Sun, 13 Nov 2022 21:14:26 +0000</pubDate><guid>https://jozefcipa.com/blog/assuming-iam-role-and-role-chaining-in-aws/</guid><description>&lt;p&gt;Sometimes a user or an application needs to access resources they don’t normally have access to. This is where the AWS Security Token Service (STS) comes in handy. STS is an AWS service used to obtain temporary security credentials for IAM users or roles by using the &lt;code&gt;AssumeRole&lt;/code&gt; action. This is useful in situations like:&lt;/p&gt;</description></item><item><title>Running HTTPS on localhost</title><link>https://jozefcipa.com/blog/running-https-on-localhost/</link><pubDate>Mon, 31 Oct 2022 17:36:16 +0000</pubDate><guid>https://jozefcipa.com/blog/running-https-on-localhost/</guid><description>&lt;figure class="callout"&gt;
 &lt;div class="callout-icon"&gt;🚀&lt;/div&gt;
 &lt;div class="callout-body"&gt;&lt;p&gt;&lt;strong&gt;Quick note before you dive in!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This article shows the way of creating your own SSL certificate for local use. It works… but it’s a bit of a hassle.&lt;/p&gt;
&lt;p&gt;If you’d rather skip the copy-paste-and-curse routine, check out &lt;strong&gt;&lt;a href="https://github.com/jozefcipa/novus"&gt;Novus&lt;/a&gt;&lt;/strong&gt; — a handy local HTTPS proxy for macOS. It sets up HTTPS with custom domains in minutes, so you can get straight to building cool stuff instead of fighting certificates.&lt;/p&gt;</description></item><item><title>Keeping track of database changes and when it can be useful</title><link>https://jozefcipa.com/blog/keeping-track-of-database-changes-and-when-it-can-be-useful/</link><pubDate>Wed, 21 Sep 2022 20:42:50 +0000</pubDate><guid>https://jozefcipa.com/blog/keeping-track-of-database-changes-and-when-it-can-be-useful/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;My task was simple - we had a Postgres database and a data science team that needed to consume changes from the database to update their internal datasets. But how on earth would I do that?&lt;/em&gt; 🤷🏻‍♂️ &lt;em&gt;Luckily, my colleagues brought some light into this mysterious database world but I still had to (wanted) read a lot to understand it better and make sure I did it right.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Why use multiple unsubscribe groups when sending emails</title><link>https://jozefcipa.com/blog/why-use-multiple-unsubscribe-groups-when-sending-emails/</link><pubDate>Mon, 27 Jun 2022 17:09:56 +0000</pubDate><guid>https://jozefcipa.com/blog/why-use-multiple-unsubscribe-groups-when-sending-emails/</guid><description>We all know how annoying all those emails that we receive from various websites might be, especially when we don’t expect them. So naturally, there should be an option to unsubscribe. However there are some things that you have to be careful about.</description></item><item><title>Travelling around Argentina</title><link>https://jozefcipa.com/blog/traveling-around-argentina/</link><pubDate>Tue, 07 Jun 2022 17:36:11 +0000</pubDate><guid>https://jozefcipa.com/blog/traveling-around-argentina/</guid><description>&lt;p&gt;At the beginning of the year, my &lt;a href="https://www.instagram.com/sandratomasova/"&gt;girlfriend&lt;/a&gt; and I spent four weeks on the roads of this beautiful country. This was our first time in South America and we were really amazed and got lots of experiences and memories, so I thought I would write down some notes of our adventure and maybe share some tips and tricks.&lt;/p&gt;</description></item><item><title>Feature Flags</title><link>https://jozefcipa.com/blog/feature-flags/</link><pubDate>Wed, 12 Jan 2022 00:41:17 +0100</pubDate><guid>https://jozefcipa.com/blog/feature-flags/</guid><description>&lt;h4 id="what-are-feature-flags"&gt;What are feature flags?&lt;/h4&gt;
&lt;p&gt;In two words - &lt;em&gt;&amp;ldquo;if statements&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;No, but seriously feature flags are a very simple, yet very powerful tool that can find its place in many projects.
The idea is to be able to control certain critical parts or essentially any relevant logical parts of the code and say if they should be enabled or not.
Simple as that but it brings a lot of advantages.&lt;/p&gt;</description></item><item><title>Showing the active Firebase project in the command line</title><link>https://jozefcipa.com/blog/showing-the-active-firebase-project-in-the-command-line/</link><pubDate>Sat, 09 Jan 2021 00:09:06 +0000</pubDate><guid>https://jozefcipa.com/blog/showing-the-active-firebase-project-in-the-command-line/</guid><description>&lt;p&gt;If you are working on a project where Firebase is used, most likely you have a separate project created for each environment (&lt;code&gt;dev&lt;/code&gt;, &lt;code&gt;staging&lt;/code&gt;, &lt;code&gt;prod&lt;/code&gt;, sometimes maybe even more). During the development, it often happens that you need to configure something using &lt;a href="https://firebase.google.com/docs/cli"&gt;Firebase CLI.&lt;/a&gt; Whenever you intend to make a change you want to make sure the right project is set as active. This can be verified easily by running&lt;/p&gt;</description></item><item><title>How We Migrated All User Files to AWS S3</title><link>https://jozefcipa.com/blog/how-we-migrated-all-user-files-to-aws-s3/</link><pubDate>Tue, 05 Jan 2021 15:21:15 +0000</pubDate><guid>https://jozefcipa.com/blog/how-we-migrated-all-user-files-to-aws-s3/</guid><description>&lt;p&gt;Migrating data is often a challenging job, especially when every little mistake can instantly impact a user’s experience. Thus, it is necessary to research the task properly, pinpoint possible issues, and make sure the description is totally clear and everyone knows what is the expected result. Nevertheless, errors may (and most probably will) occur during the process so it is also important to keep that in mind and design the solution in a way that anticipates that and handles it accordingly. In the ideal situation, we want to complete the migration process without anyone even noticing that something has changed.&lt;/p&gt;</description></item><item><title>Sharing gRPC protobufs between microservices</title><link>https://jozefcipa.com/blog/sharing-grpc-protobufs-between-microservices/</link><pubDate>Sun, 23 Feb 2020 21:18:37 +0000</pubDate><guid>https://jozefcipa.com/blog/sharing-grpc-protobufs-between-microservices/</guid><description>&lt;p&gt;If you work with gRPC you need to find a way of sharing &lt;code&gt;proto&lt;/code&gt; files across individual microservices. I just got into this “gRPC-and-microservices” thing recently and had to research and learn everything so now I want to share how I tackled it.&lt;/p&gt;</description></item><item><title>Automatically pausing Spotify on macOS</title><link>https://jozefcipa.com/blog/automatically-pausing-spotify-on-macos/</link><pubDate>Sat, 06 Apr 2019 13:10:22 +0000</pubDate><guid>https://jozefcipa.com/blog/automatically-pausing-spotify-on-macos/</guid><description>&lt;p&gt;I really enjoy listening to some good music before sleeping. But the question is who will stop the music once you fall asleep, right? If you’re using iPhone you can schedule a timer which will stop playing after time elapses.&lt;/p&gt;</description></item><item><title>When dream comes true (USA trip)</title><link>https://jozefcipa.com/blog/when-dream-comes-true--usa-trip/</link><pubDate>Fri, 09 Nov 2018 12:51:50 +0000</pubDate><guid>https://jozefcipa.com/blog/when-dream-comes-true--usa-trip/</guid><description>&lt;p&gt;&lt;strong&gt;Yes I did it, I can’t believe I’m really here! 😍&lt;/strong&gt; (&lt;em&gt;After taking part-time job for last two years in addition to high school I finally earned enough money to begin my two weeks United States trip&lt;/em&gt;).&lt;/p&gt;</description></item><item><title>Watching your UNIX scripts</title><link>https://jozefcipa.com/blog/watching-your-unix-scripts/</link><pubDate>Tue, 30 Jan 2018 10:53:23 +0000</pubDate><guid>https://jozefcipa.com/blog/watching-your-unix-scripts/</guid><description>&lt;p&gt;In one project I needed to run the Laravel&amp;rsquo;s &lt;code&gt;queue:work&lt;/code&gt; command for sending emails on production. The problem was that sometimes it quit silently and emails were accumulating in database. To solve it you would probably install program like &lt;a href="http://supervisord.org/"&gt;&lt;strong&gt;supervisord&lt;/strong&gt;&lt;/a&gt; or similar.&lt;/p&gt;</description></item><item><title>How I bypassed our school internet system. Twice.</title><link>https://jozefcipa.com/blog/how-i-bypassed-our-school-internet-system-twice/</link><pubDate>Fri, 15 Dec 2017 18:04:39 +0000</pubDate><guid>https://jozefcipa.com/blog/how-i-bypassed-our-school-internet-system-twice/</guid><description>&lt;p&gt;I live at student’s dormitory and we have got one rule here. Internet here turns off every day after 11pm. And it sucks 😏. So my roommate and I wanted to do something with that. We knew that internet is controlled via program which is located in computer in office downstairs. The goal was simple – edit configuration file of program. We had some information about how it works in advance.&lt;/p&gt;</description></item><item><title>Sending exceptions to mail in Laravel</title><link>https://jozefcipa.com/blog/sending-exceptions-to-mail-in-laravel/</link><pubDate>Thu, 09 Nov 2017 16:37:42 +0000</pubDate><guid>https://jozefcipa.com/blog/sending-exceptions-to-mail-in-laravel/</guid><description>&lt;p&gt;&lt;strong&gt;Update 2019:&lt;/strong&gt; &lt;em&gt;This article was written at the time when I didn’t have a lot of knowledge about error handling, system architecture and common practices in general. It is definitely&lt;/em&gt; &lt;strong&gt;&lt;em&gt;not a recommended solution&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;for tracking application errors. There are many better ways for handling these situations (e.g.&lt;/em&gt; &lt;a href="https://sentry.io/"&gt;&lt;em&gt;Sentry&lt;/em&gt;&lt;/a&gt;&lt;em&gt;).&lt;/em&gt;&lt;/p&gt;</description></item><item><title>About</title><link>https://jozefcipa.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jozefcipa.com/about/</guid><description>&lt;p&gt;I&amp;rsquo;m Jozef, a software developer with &lt;strong&gt;10+ years&lt;/strong&gt; of experience, focusing mostly on backend and web applications.&lt;/p&gt;
&lt;p&gt;Most of my day happens in &lt;strong&gt;Node.js&lt;/strong&gt; and &lt;strong&gt;TypeScript&lt;/strong&gt;, with Postgres and AWS somewhere nearby. Over the years, &lt;strong&gt;Go&lt;/strong&gt; went from &amp;ldquo;language I&amp;rsquo;m curious about&amp;rdquo; to the thing I reach for whenever I build my own tools — like &lt;a href="https://github.com/jozefcipa/novus"&gt;novus&lt;/a&gt;, a local HTTPS proxy, or a &lt;a href="https://github.com/jozefcipa/usb-button"&gt;USB macro button&lt;/a&gt; running TinyGo on a Raspberry Pi Pico. In the past I also worked with PHP, jQuery, and a little bit of Python — we don&amp;rsquo;t talk about the XSLT era 😅.&lt;/p&gt;</description></item><item><title>Projects</title><link>https://jozefcipa.com/projects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jozefcipa.com/projects/</guid><description/></item><item><title>Work</title><link>https://jozefcipa.com/work/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jozefcipa.com/work/</guid><description/></item></channel></rss>