<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dawid Sibiński, Author at Yumasoft</title>
	<atom:link href="https://blog.yumasoft.pl/author/dawid/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.yumasoft.pl/author/dawid/</link>
	<description>Software development blog</description>
	<lastBuildDate>Sun, 01 Jan 2023 14:54:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://blog.yumasoft.pl/wp-content/uploads/2021/05/cropped-yumasoft_icon_transparent-32x32.png</url>
	<title>Dawid Sibiński, Author at Yumasoft</title>
	<link>https://blog.yumasoft.pl/author/dawid/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Technologies We Are Looking At In 2023</title>
		<link>https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/</link>
					<comments>https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Sun, 01 Jan 2023 14:54:15 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[2023]]></category>
		<category><![CDATA[2023 predictions]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[google cloud]]></category>
		<category><![CDATA[react]]></category>
		<category><![CDATA[saas]]></category>
		<category><![CDATA[technologies 2023]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=984</guid>

					<description><![CDATA[<p>As 2022 approaches its end, we can start making some summaries. By this opportunity, we have recently had a series of internal, in-person meetings. One of them included brainstorming sessions with one of our largest customers. The product of those meetings are technological perspectives for Yumasoft and our clients in the coming months. In this&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/">Technologies We Are Looking At In 2023</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As 2022 approaches its end, we can start making some summaries. By this opportunity, we have recently had a series of internal, in-person meetings. One of them included brainstorming sessions with one of our largest customers.</p>



<p class="wp-block-paragraph">The product of those meetings are technological perspectives for Yumasoft and our clients in the coming months. In this article, I&#8217;d like to share some of the technologies we are going to look into in 2023.</p>



<span id="more-984"></span>



<h2 class="wp-block-heading">AI</h2>



<p class="wp-block-paragraph">Artificial Intelligence is one of the technologies that’s been getting a lot of hype recently. Mostly thanks to OpenAI opening its GPT-3&nbsp;<a href="https://beta.openai.com/playground">playground</a>&nbsp;and&nbsp;<a href="https://chat.openai.com/chat">chat</a>. This is all fun, but companies started looking into how to use this in their businesses. We are also looking on how to leverage these new findings in AI to make our customers’ businesses easier. We think that AI can make end users’ life smoother, allowing them to focus on what is the most important.</p>



<p class="wp-block-paragraph">The fact is that in many applications we develop for our clients, there is a lot of data. We have quite rich experience in developing various document and quality management systems. The data in those systems can be generally classified as documents. The documents contain tons of information. This information is currently manually enriched with metadata by the end users. In AI, we see a huge potential to automate this part of people’s jobs.&nbsp;<a href="https://en.wikipedia.org/wiki/Natural_language_processing">NLP</a>&nbsp;is very promising in this manner. It is also worth looking into the technologies like&nbsp;<a href="https://www.usehaystack.io/">Haystack</a>&nbsp;and&nbsp;<a href="https://dotnet.microsoft.com/en-us/apps/machinelearning-ai/ml-dotnet">ML.NET</a>. The goal is that the end users can focus on their most important tasks, i.e. providing business value to companies they work for. Manual work should be limited to supervision and “teaching” the AI algorithm to perform better.</p>



<p class="wp-block-paragraph">At Yumasoft, one of the technologies we are looking at in 2023, is definitely Artificial Intelligence. We think it’s a way forward in most applications of software development, especially those including big data. What’s more, implementing AI is a great marketing leverage <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading">Guide-based forms/wizards</h2>



<p class="wp-block-paragraph">Diving into AI, we got inspired by how algorithms can help users fill the data online. We think that instead of presenting the end user with an old-school form containing dozens of input fields, we can ask him/her a few relevant questions and&nbsp;<em>prefill</em>&nbsp;the form based on the answers.</p>



<p class="wp-block-paragraph">Firstly, when performing an operation in the system, the user is asked several questions in a wizard/step-by-step guide form. Finally, our algorithm analyses the user’s answers and present the user with a&nbsp;<em>prefilled</em>&nbsp;HTML form. The user’s ultimate role is to verify the data. What’s more, if the form’s values are corrected manually by the user, the algorithm can learn from those editions to propose better values in the future.</p>



<p class="wp-block-paragraph">At Yumasoft, we think it’s better to sometimes lead the users by hand, instead of presenting them with complex, old-school forms. We’ll be exploring such ideas in the coming months.</p>



<h2 class="wp-block-heading">Minimal UIs</h2>



<p class="wp-block-paragraph">Nowadays, we are generally overstimulated. The marketing is omnipresent. Still remember these 3-weeks-long Black Friday sales? And the week-long Cyber Monday ones just after? We don’t want our applications to make people even more distracted in today’s world.</p>



<p class="wp-block-paragraph">Similarly to simplifying the forms, we think creating&nbsp;<a href="https://en.wikipedia.org/wiki/KISS_principle">KISS</a>&nbsp;UIs is crucial. We can also call them the&nbsp;<em><a href="https://uxdesign.cc/a-guide-to-the-modern-minimal-ui-style-531ac1e9fbfe">minimal UIs</a></em>.</p>



<p class="wp-block-paragraph">For instance: let’s assume we have a dashboard. The dashboard shows many things: new procedures, unread documents, some actions to take, people to call, notifications, company events… Usually, you as a user are only interested in what you actually need to do &#8211; now and today. The typical dashboard may contain too much information to easily spot the really important things requiring your immediate action. A solution to that could be presenting a simple indicator, like a colored, pulsating dot in a place that is central to the user:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="370" height="215" src="https://blog.yumasoft.pl/wp-content/uploads/2023/01/1_Certifeye_dashboard_dot.png" alt="Technologies we are looking at in 2023 - pulsating dot marking tasks to be done in a dashboard for the user" class="wp-image-987" srcset="https://blog.yumasoft.pl/wp-content/uploads/2023/01/1_Certifeye_dashboard_dot.png 370w, https://blog.yumasoft.pl/wp-content/uploads/2023/01/1_Certifeye_dashboard_dot-300x174.png 300w" sizes="(max-width: 370px) 100vw, 370px" /></figure>
</div>


<p class="wp-block-paragraph">The goal is to clearly see, in a single place, whether you have something to do for now or not. This is the only thing you&#8217;re really interested in.</p>



<p class="wp-block-paragraph">Such an approach simplifies working with the system and saves a lot of users’ time. It is also based on showing as little information as possible to get the job done.</p>



<h2 class="wp-block-heading">React</h2>



<p class="wp-block-paragraph">As per&nbsp;<a href="https://2021.stateofjs.com/en-US/libraries/front-end-frameworks">The State of JS 2021 survey</a>, React is currently the most popular front-end framework on the market. We’ve already been working with it for a long time, but it seems that we will be exploring React even more. At the moment, React is our default choice for new projects.</p>



<h2 class="wp-block-heading">SaaS</h2>



<p class="wp-block-paragraph">For some of our customers, we are still maintaining heavy desktop clients, including Windows applications. These programs require quite good hardware, as well as manual installation and maintenance. If the application we develop makes use of external desktop tools like Microsoft Office, this also adds the costs of licensing for every end user.</p>



<p class="wp-block-paragraph">As a consequence, the businesses are expecting to move the software into the cloud.&nbsp;<a href="https://en.wikipedia.org/wiki/Software_as_a_service">SaaS</a>&nbsp;looks like the preferred model. Web apps only require a modern web browser and Internet access to be used. Additionally, end users don’t need to worry about licensing. Most of UI and other frameworks are licensed per application or per developer. This is a huge difference to desktop applications, where every end user must possess a proper license for the operating system and used programs.</p>



<p class="wp-block-paragraph">Finally, it’s much easier to maintain SaaS-based systems. The updates are provided to everyone in a timely manner. It adds some complexity on the development and infrastructure, like keeping the backwards compatibility, but it seems to be worth the effort. Heavy clients are fading away and becoming unwanted in most use cases.</p>



<h2 class="wp-block-heading">Cloud</h2>



<p class="wp-block-paragraph">Last but not least, at Yumasoft we are looking to more integration with cloud services like&nbsp;<a href="https://azure.microsoft.com/en-us/">Microsoft Azure</a>,&nbsp;<a href="https://aws.amazon.com/">AWS</a>&nbsp;and&nbsp;<a href="https://cloud.google.com/">Google Cloud</a>. This goes together with betting on SaaS. Delegating the infrastructure to the cloud makes the maintenance much easier and smoother. Moreover, cloud computing services provide AI platforms and tools. The examples include&nbsp;<a href="https://cloud.google.com/document-ai">Google’s Document AI</a>&nbsp;or&nbsp;<a href="https://azure.microsoft.com/en-us/products/search/">Azure Cognitive Search</a>.</p>



<p class="wp-block-paragraph">Of course, moving the data into the cloud comes with challenges. Data anonymization and security should be of a great concern here.</p>



<h2 class="wp-block-heading">Summary</h2>



<p class="wp-block-paragraph">All of us &#8211; the technical teams as Yumasoft, our clients, their customers and finally &#8211; the end users &#8211; will have to go through a transformation which is happening right now. AI will bring a lot of improvements into most areas of our lives. Cloud computing will challenge all of us in terms of privacy and willingness to share our data with external companies. Will we trust them? Will we decide to go with the innovation flow, sometimes sacrificing our current beliefs? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f914.png" alt="🤔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">We are so excited about the coming months. We look forward to 2023 and can’t wait to get our hands on these technologies! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/">Technologies We Are Looking At In 2023</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2023/01/technologies-we-are-looking-at-in-2023/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Why Do You Attend IT Conferences – For Talks or For People?</title>
		<link>https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/</link>
					<comments>https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Tue, 24 May 2022 18:46:02 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[getnet]]></category>
		<category><![CDATA[infoshare]]></category>
		<category><![CDATA[it community]]></category>
		<category><![CDATA[it conferences]]></category>
		<category><![CDATA[ndc]]></category>
		<category><![CDATA[net developer days]]></category>
		<category><![CDATA[programming conference]]></category>
		<category><![CDATA[wrocsharp]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=899</guid>

					<description><![CDATA[<p>The question I’d like to openly ask today is: why do you attend IT conferences? Is it for talks or is it for people? Let’s try to find out what the answer is ? My conferences story Back in 2015-2019, I used to attend conferences in person only. My first events included GET.NET in Łódź&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/">Why Do You Attend IT Conferences – For Talks or For People?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The question I’d like to openly ask today is: why do you attend IT conferences? Is it for talks or is it for people? Let’s try to find out what the answer is ?</p>



<span id="more-899"></span>



<h2 class="wp-block-heading">My conferences story</h2>



<p class="wp-block-paragraph">Back in 2015-2019, I used to attend conferences in person only. My first events included <a href="https://sii.pl/en/news-feed/register-to-the-get-net-conference-in-lodz/?category=events-2&amp;tag=sii-lodz,get-net">GET.NET in Łódź</a>  and <a href="https://www.wrocsharp.com/">WROC#</a> in Wrocław. Then I attended <a href="https://net.developerdays.pl/">.NET Developer Days</a> in Warsaw two times in a row. This one was the first big-size programming conference I took part in.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="575" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-1024x575.jpg" alt="" class="wp-image-901" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-1024x575.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-300x168.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-768x431.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-1536x863.jpg 1536w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NETDEVDAYS_2016-2048x1150.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Dino Esposito speaking at .NET Developer Days 2016</figcaption></figure>



<p class="wp-block-paragraph">Back then, I was a newbie junior programmer. I was also a bit shy to talk to people. Probably I had a huge impostor syndrome, as I thought everyone there was better in programming than me. I attended many sessions, even though I didn’t understand many technical aspects and never used them in real life.</p>



<p class="wp-block-paragraph">I also always used to go to conferences and even meetups with someone I know (a colleague most of the time). If no one was going, I didn’t go alone. This didn’t help in becoming less shy and starting to talk to people I didn&#8217;t know ?&#x200d;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2642.png" alt="♂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">And then it happened. In 2018, I decided to go to <a href="https://infoshare.pl/infoshare2018/">InfoShare conference</a>. Alone ? I still wasn’t very open to talk to anyone encountered, but I was a little braver. I talked to a few awesome speakers, including <a href="https://jakoszczedzacpieniadze.pl/o-mnie-i-o-blogu">Michał Szafrański</a> and <a href="https://malawielkafirma.pl/o-blogu/">Marek Jankowski</a>. Those guys really were inspiring to me before, so it was an awesome feeling to talk to them face-to-face ?</p>



<figure class="wp-block-image size-full"><img decoding="async" width="2316" height="1304" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_prezentacja.jpg" alt="" class="wp-image-902" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_prezentacja.jpg 2316w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_prezentacja-300x169.jpg 300w" sizes="(max-width: 2316px) 100vw, 2316px" /><figcaption>Presentation at InfoShare 2018</figcaption></figure>



<p class="wp-block-paragraph">InfoShare conference changed my life. It was another booster to make significant changes in my life and become a <a href="https://blog.yumasoft.pl/2020/03/traveling-the-world-as-a-digital-nomad/">digital nomad</a>. Several months later, I started working fully remotely for Yumasoft and traveling the world ?</p>



<p class="wp-block-paragraph">There were some awesome guys like <a href="https://michael.team/">Michał Śliwiński</a> speaking about a <a href="https://nozbe.com/about/">fully remote companies</a> at that time already:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2316" height="1304" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_MSliwinski.jpg" alt="" class="wp-image-903" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_MSliwinski.jpg 2316w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/InfoShare2018_MSliwinski-300x169.jpg 300w" sizes="auto, (max-width: 2316px) 100vw, 2316px" /><figcaption>Michał Śliwiński speaking at InfoShare 2018</figcaption></figure>



<p class="wp-block-paragraph">I also felt great after attending the <a href="https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/">NDC Porto 2022</a>. After not seeing fellow programmers in person for more than 4 years, it was awesome to finally be more open and talk to many people at the conference. I was also alone this time.</p>



<h2 class="wp-block-heading"><strong>Talks or people?</strong></h2>



<p class="wp-block-paragraph">What can we take from my conferences&#8217; story? As you read it, you can easily notice that the only things I remember are people. Either talking to one or two speakers or chatting with many people attending the event. That’s what I remember from the event. <strong>Technologies and tools come and go, but people stay</strong>. You stay connected with them on Twitter/Instagram. Think how nice it would be meeting them again at another conference by coincidence!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-1024x576.jpeg" alt="" class="wp-image-878" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Heather Downing speaking at NDC Porto 2022</figcaption></figure>



<p class="wp-block-paragraph">On the other hand, I remember almost nothing from <a href="https://blog.yumasoft.pl/2021/04/can-online-conferences-replace-offline-ones/">Boiling Frogs 2021</a>, which I attended online. That&#8217;s how it works for me.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="483" src="https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021-1024x483.jpg" alt="" class="wp-image-95" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021-1024x483.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021-300x141.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021-768x362.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/05/Hopin_platform_Boiling_Frogs_2021.jpg 1523w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Boiling Frogs online platform</figcaption></figure>



<p class="wp-block-paragraph">I have to go back to the blog post or my notes to get something from it. This is also useful – that’s why I make notes. However, for me, this is not the real goal of attending a conference. All sessions are anyway recorded and in most cases available for free online after the conference. The community, interactions, Q&amp;A sections and conference parties cannot be transferred to the online world and provide the same value. For me, it simply doesn’t work.</p>



<h2 class="wp-block-heading">Conclusions</h2>



<p class="wp-block-paragraph">For me, conferences are the people. Not the talks.</p>



<p class="wp-block-paragraph">However, I had to learn it throughout the years of attending several conferences, both offline and online. That’s why I wanted to share my story with you at the beginning of this article. To give you my perspective.</p>



<p class="wp-block-paragraph">If you are about to take one thing from this article – <strong>please open yourself and talk more to people at the conferences</strong>. Try going to a conference alone, or if you go with someone &#8211; don’t stick with your fellows all the time. I know this is going out of your comfort zone. I still feel uncomfortable doing that, but I’m trying to improve little by little. If each of us makes a little effort, it will overall become much easier for everyone. Maybe next time I’m walking around the conference room getting stressed on selecting a random person to talk to, you’ll reach me and initiate the conversation? ?</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/">Why Do You Attend IT Conferences – For Talks or For People?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2022/05/why-do-you-attend-it-conferences-for-talks-or-for-people/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What Do People Talk About At Programming Conferences In 2022?</title>
		<link>https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/</link>
					<comments>https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Mon, 16 May 2022 06:30:00 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[ndc]]></category>
		<category><![CDATA[ndc conferences]]></category>
		<category><![CDATA[ndc porto]]></category>
		<category><![CDATA[ndc porto 2022]]></category>
		<category><![CDATA[programming conferences]]></category>
		<category><![CDATA[programming conferences 2022]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=884</guid>

					<description><![CDATA[<p>After attending NDC Porto 2022, my first in-person conference for 4 years, I thought it would be nice to sum up the most talked-through topics. This will be a subjective summary and my feelings after attending ~20 sessions and talking to dozens of people. Let&#8217;s see what people talk about at programming conferences in 2022.&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/">What Do People Talk About At Programming Conferences In 2022?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">After attending <a href="https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/">NDC Porto 2022</a>, my first in-person conference for 4 years, I thought it would be nice to sum up the most talked-through topics. This will be a subjective summary and my feelings after attending ~20 sessions and talking to dozens of people. Let&#8217;s see what people talk about at programming conferences in 2022.</p>



<span id="more-884"></span>



<h2 class="wp-block-heading">.NET</h2>



<p class="wp-block-paragraph">This is going to be the longest section of this article ? I think it’s a bit specific to NDC Conference (“.NET” is the first one on the <a href="https://ndcoslo.com/call-for-papers">list of proposed topic for an NDC talk</a>), but there was a lot about .NET. There were quite a few speakers either working for or associated with Microsoft.</p>



<p class="wp-block-paragraph"></p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1024x576.jpeg" alt="Steve Sanderson standing in front of audience" class="wp-image-867" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p class="wp-block-paragraph">I think the most discussed .NET topic was <a href="https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor">Blazor</a>. There were many sessions discussing various aspect of the Blazor framework, its new features and development. <a href="https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui">MAUI</a> was also mentioned several times.</p>



<p class="wp-block-paragraph">Except that, .NET developers and speakers seems interested in issues related to the new versions of .NET (.NET 6/7) and generally this whole new ecosystem that’s being formed. Topics included <a href="https://docs.microsoft.com/en-us/aspnet/core/grpc/?view=aspnetcore-6.0">gRPC</a>/<a href="https://github.com/grpc/grpc-web">gRPC web</a>, as well as <a href="https://github.com/dotnet/roslyn">Roslyn compiler</a> possibilities.</p>



<p class="wp-block-paragraph">Another important area of .NET was the multi-platform thing. It seems to be very important to the teams at Microsoft and contributors to related projects to make everything working on as many platforms as possible. Including desktops (Windows, Linux and Mac), web and mobile (Android and iOS). There were at least few multi-platform solutions discussed several times: <a href="https://platform.uno/">Uno</a>, <a href="https://avaloniaui.net/">Avalonia</a>, <a href="https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor">Blazor</a> and <a href="https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui">MAUI</a>. All seem to be solving similar problems, but each has different entry costs and technologies used.</p>



<h2 class="wp-block-heading">Software architecture</h2>



<p class="wp-block-paragraph">From software architecture topics, the most popular seemed to be everything around DDD. Not only the fully religious implementations of DDD were discussed, but also some of its simplified forms or just few concepts extracted from it.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2364" height="1330" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Jimmy-Bogard-Domain-Driven-Refactoring.jpg" alt="Jimmy Bogard during his Domain-Driven Refactoring talk" class="wp-image-886" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Jimmy-Bogard-Domain-Driven-Refactoring.jpg 2364w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Jimmy-Bogard-Domain-Driven-Refactoring-300x169.jpg 300w" sizes="auto, (max-width: 2364px) 100vw, 2364px" /></figure></div>



<p class="wp-block-paragraph">It seems it’s all about understanding our end users better. I like it ?</p>



<h2 class="wp-block-heading">Cloud</h2>



<p class="wp-block-paragraph">Possibilities of various cloud providers were discussed at almost every talk I attended. What I liked about that, is that it was not only Microsoft Azure discussed everywhere as it used to be few years ago ? Cloud is now seen more as a concept rather than concrete cloud providers’ possibilities.</p>



<p class="wp-block-paragraph">While we still need to support on-premise deployments, cloud seems an inevitable way to go for many applications.</p>



<h2 class="wp-block-heading">Web</h2>



<p class="wp-block-paragraph">WebAssembly and accessibility. There were the two topics discussed very often in terms of web technologies. Some sessions touched on React, but rather briefly. I even didn’t hear about JavaScript very often, which is actually weird ? TypeScript was also a topic, as well as some frontend testing techniques/frameworks.</p>



<h2 class="wp-block-heading">UX</h2>



<p class="wp-block-paragraph">I attended two sessions about UX. This is quite interesting for me, as I think we can do much better in terms of usability of our software for the end users.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2364" height="1330" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Tatiana-Kolesnikova-Change-wings-on-the-fly.jpg" alt="Tatiana Kolesnikova and her talk: Change wings on the fly: replace a system that handles 50 million euro turnover with zero downtime" class="wp-image-889" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Tatiana-Kolesnikova-Change-wings-on-the-fly.jpg 2364w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Tatiana-Kolesnikova-Change-wings-on-the-fly-300x169.jpg 300w" sizes="auto, (max-width: 2364px) 100vw, 2364px" /></figure></div>



<p class="wp-block-paragraph">In general, I love the concept of designing and implementing the application from the user’s point of view. Maybe it sounds obvious, but it’s not always like that. Especially in corporations, when there are several layers between programmers and end users. Each layer adds its own filtering. This process makes the final solution sometimes far away from end users’ expectations.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-1024x576.jpeg" alt="Eleftheria Batsou - It’s easy to create a good looking product, but what about a useful one?" class="wp-image-873" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Soft skills/team leadership</h2>



<p class="wp-block-paragraph">Not only technical stuff at programming conferences in 2022? Sure ?</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-1024x576.jpeg" alt="Heather Downing - The Care and Feeding of Software Developers" class="wp-image-878" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_HeatherDowning.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">I also enjoy team leadership and light-management topics. Although not many programmers I talked to especially love those talks. Except the ones who have actually managed people. There were, however, quite a few sessions on that, and I liked them. I think leadership is translatable to everyday life, not only work.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">My general feeling after NDC Porto 2022 is that <strong>we all want to be focused on people</strong>. We want to take care of our end users, but also of ourselves ? The main message was to <strong>make everyone feel welcome in IT</strong>. Especially after the pandemic, which increased anxiety and reduced the importance of social aspects in software development. I think programming conferences in 2022 should cover these topics.</p>



<p class="wp-block-paragraph">Technical stuff is important – without that we can’t make anything. However, we are all people, and we need to take care of ourselves first, so all of those awesome tools can be used effectively and to everyone’s satisfaction ?</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/">What Do People Talk About At Programming Conferences In 2022?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2022/05/what-do-people-talk-about-at-programming-conferences-in-2022/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Does Attending An In-person Conference Feel After The Pandemic?</title>
		<link>https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/</link>
					<comments>https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Wed, 04 May 2022 15:35:06 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[ndc]]></category>
		<category><![CDATA[ndc conferences]]></category>
		<category><![CDATA[ndc porto]]></category>
		<category><![CDATA[ndc porto 2022]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=859</guid>

					<description><![CDATA[<p>After 4 years of not attending an in-person IT conference, I finally did. I had a chance to attend NDC Porto 2022 conference, which took place from 27th until 29th of April 2022. How did it feel? What did people say about seeing each other in person again? Let’s find out ? My last conference&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/">How Does Attending An In-person Conference Feel After The Pandemic?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">After 4 years of not attending an in-person IT conference, I finally did. I had a chance to attend <a href="https://ndcporto.com/">NDC Porto 2022 conference</a>, which took place from 27<sup>th</sup> until 29<sup>th</sup> of April 2022. How did it feel? What did people say about seeing each other in person again? Let’s find out ?</p>



<span id="more-859"></span>



<p class="wp-block-paragraph">My last conference was the online Boiling Frogs event, which I attended remotely from Indonesia. As you could <a href="https://blog.yumasoft.pl/2021/04/can-online-conferences-replace-offline-ones/">read here</a>, I was generally happy with the sessions, but something was missing. This missing piece was <strong>community</strong>. A real one. Physical. The community you can touch. And talk to ? I didn’t even realize how much I missed that. Until I attended #NDCPorto 2022.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="576" height="1024" data-id="861" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDC_Porto_logo_entrance-576x1024.jpeg" alt="NDC Porto 2022 - my first in-person conference for 4 years" class="wp-image-861" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDC_Porto_logo_entrance-576x1024.jpeg 576w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDC_Porto_logo_entrance-169x300.jpeg 169w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDC_Porto_logo_entrance.jpeg 768w" sizes="auto, (max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="576" height="1024" data-id="862" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_before_keynote-576x1024.jpeg" alt="NDC Porto 2022 - my first in-person conference for 4 years" class="wp-image-862" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_before_keynote-576x1024.jpeg 576w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_before_keynote-169x300.jpeg 169w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_before_keynote.jpeg 768w" sizes="auto, (max-width: 576px) 100vw, 576px" /></figure>
</figure>



<p class="wp-block-paragraph">Firstly, Porto is an awesome city for an in-person conference. It offers a mild climate, especially by the end of April. The temperatures were around 24 Celsius degrees during the day. It also does offer wine, of course ? It all means that you can enjoy a technical event during the day and still have some fun and socializing in the evening.</p>



<p class="wp-block-paragraph">I lived in Porto for 2 weeks in September 2020 and really loved the city. It’s charming, not overwhelming and very appealing. It’s also a students&#8217; city, so you can feel that young vibe – lot of street bars, people drinking beers or wine starting late afternoon until very late night.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2-1024x576.jpeg" alt="Porto - view on the city from the bridge" class="wp-image-869" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/Porto-2.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p class="wp-block-paragraph">All right, let’s get to the point. NDC. This great, first in-person conference I attended since 2018. I will not talk about the sessions here. I will talk about the people.</p>



<p class="wp-block-paragraph">I tried to list the most-talked-through topics from this conference. The only real conclusion I can make, is that everyone I talked to, at some point said “It’s so great to be back in person”, or something very similar. The pandemic has taken a lot from us. Now it’s time to get it back.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-1024x576.jpeg" alt="Talk's title on the projector and some attendees sitting on the chairs" class="wp-image-873" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_UX.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p class="wp-block-paragraph">I didn’t realize it, but the remote work time made me a little anxious with talking to people ? I’m not talking about pandemic, because I was fortunate enough to spend most of it in Indonesia (yes, Yumasoft is fine with you working from another continent!). Before I started working remotely, I used to be a Team Leader. It made me talk to so many people at the office every day. I always thought I’m rather extrovert than introvert. However, I was very curious to see how it is to interact with people again.</p>



<p class="wp-block-paragraph">Before going to NDC Porto, I promised myself I will be starting chats with random people. Especially that I was going alone and didn’t know anyone there (except a few of the speakers). At first, I felt a bit stressed to just chit-chat to random people at the conference ? But then, after I started talking with the first 1 or 2 people, it felt great. It was so awesome to exchange opinions. Not only on coding, but also on pandemic, remote work and everything it changed in our lives.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1-1024x576.jpeg" alt="Steve Sanderson and his talk &quot;What's next for Blazor and .NET on WASI&quot;" class="wp-image-870" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_SteveSanderson-1.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">There was also a great <a href="https://www.youtube.com/watch?v=VFIw0LlULyc">opening keynote by Scott Hanselman</a>. He covered few very important topics related to pandemic times. Scott mentioned burnout, anxiety and onboarding issues while working remotely. Of course, he also proposed few solutions everyone can implement quite easily. Just watch it yourself.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1-1024x576.jpeg" alt="Scott Hanselman speaking at the NDC Porto 2022 opening keynote" class="wp-image-872" srcset="https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1-1024x576.jpeg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1-300x169.jpeg 300w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1-768x432.jpeg 768w, https://blog.yumasoft.pl/wp-content/uploads/2022/05/NDCPorto_keynote_ScottHanselman-1.jpeg 1365w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">During the conference, I also attended two socializing events. The first one was a diner with wine tasting after the 1<sup>st</sup> conference day. It was an additional event everyone could sign up to, but was not officially part of the agenda. I’m very happy I went there, as it was another chance to meet some great people, including few of the conference speakers. On the 2<sup>nd</sup> day of the conference, there was an official NDC Party. Very well organized, again allowing for socializing and exchanging views on various topics. Not only software ?</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">My conclusion is that the <strong>online events will never be a substitute for in-person ones</strong>. They are just different. I don’t feel the community and interactions at online events. There might be a chat, but it’s not the same.</p>



<p class="wp-block-paragraph">I encourage everyone to attend in-person events from time to time. It doesn’t need to be a big in-person conference in a foreign country like NDC is (although I definitely recommend that!). Look for local meetups in your city or smaller conferences in your own country. Go there and overcome your fears and anxiety about talking to people. Just do it – talk to random people you don’t know. You will feel awesome, believe me ?</p>



<p class="wp-block-paragraph">Attending a conference not only makes me wanting to try 10 new frameworks which I will forget about in a week. It makes me feel that we have an awesome programming community. That we are not alone in what we do. That others face the same pains we all have, like <a href="https://en.wikipedia.org/wiki/Impostor_syndrome">impostor syndrome</a> or feeling stagnated at work. I got to know that other developers are not magicians and geeky coders who don’t use StackOverflow. Not every programmer’s job is his/her hobby. They are just normal people like me, with their own pains and fears. And that is awesome! ?</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/">How Does Attending An In-person Conference Feel After The Pandemic?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2022/05/how-does-attending-an-in-person-conference-feel-after-the-pandemic/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Webpack Watch Cached And Not Refreshing Bundles</title>
		<link>https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/</link>
					<comments>https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Wed, 24 Nov 2021 06:00:00 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webpack]]></category>
		<category><![CDATA[webpack watch]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=829</guid>

					<description><![CDATA[<p>If you use webpack as your JavaScript bundler, you might have experienced an issue with webpack --watch not refreshing your bundles when modifying the source files. In this case, webpack&#8217;s output after changing the file is similar to the following one: As you can see, there are some [cached] mentions there in a few places&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/">Webpack Watch Cached And Not Refreshing Bundles</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">If you use <a href="https://webpack.js.org/">webpack</a> as your JavaScript bundler, you might have experienced an issue with <code>webpack --watch</code> not refreshing your bundles when modifying the source files. In this case, webpack&#8217;s output after changing the file is similar to the following one:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="87" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache-1024x87.png" alt="Webpack output showing [cached]" class="wp-image-830" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache-1024x87.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache-300x25.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache-768x65.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchNotRefreshingCache.png 1112w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">As you can see, there are some <code>[cached]</code> mentions there in a few places and no <code>[code generated]</code> statements at all. The effect is that your bundles are not rebuilt at all. In order to have them refreshed, you need to restart the building process, which takes time and makes your development flow painful. If you want to know how to solve that problem, read on ?</p>



<span id="more-829"></span>



<h2 class="wp-block-heading">webpack watch cached files</h2>



<p class="wp-block-paragraph">We have struggled with this issue for quite some time. It starts with launching <code>webpack</code> with <code>--watch</code> option. Such build script can be defined in your <code>package.json</code> in the following or similar way:</p>



<script src="https://gist.github.com/dsibinski/974e74538fae860a5d1f908b8193fcd4.js"></script>



<p class="wp-block-paragraph">The effect you would expect is for webpack to rebuild your bundles as soon as you make any change in the source code.</p>



<p class="wp-block-paragraph">When the webpack watch cached issue occurs, the first change you make in a file is properly reloaded by <code>webpack</code> and looks similarly to that:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="375" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime-1024x375.png" alt="webpack watch correctly rebuilding bundles with [code generated] statements" class="wp-image-832" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime-1024x375.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime-300x110.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime-768x281.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_WebpackWatchCorrectRefreshFirstTime.png 1048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">However, as soon as you change the file for the second time, the output looks less promising:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="87" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache-1024x87.png" alt="webpack watch cached issue" class="wp-image-833" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache-1024x87.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache-300x25.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache-768x65.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_WebpackWatchNotRefreshingCache.png 1112w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">As soon as you see some of these <code>[cached]</code> things, it probably means that webpack cached something and did not generate new bundles. Especially if there are no <code>[built]</code> and <code>[code generated]</code> statements in the output. You notice that your files are not refreshed, so your last change is not reflected in JS bundles ?</p>



<h2 class="wp-block-heading">Hotfix: disable webpack cache</h2>



<p class="wp-block-paragraph">The first hotfix solution &#8211; especially if you can&#8217;t easily find the cause &#8211; is to disable <code>webpack</code> cache completely. In order to do that, you should set <code>cache</code> to <code>false</code> in your <a href="https://webpack.js.org/configuration/cache/">webpack configuration file</a>:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="413" height="216" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_WebpackDisableCache.png" alt="cache set to false in webpack config file" class="wp-image-836" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_WebpackDisableCache.png 413w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_WebpackDisableCache-300x157.png 300w" sizes="auto, (max-width: 413px) 100vw, 413px" /></figure></div>



<p class="wp-block-paragraph">This will work, and webpack should now rebuild your bundles on every source change. However, it comes with a significant performance cost. Disabling the cache will make webpack actually rebuilding all your bundles on each change. This solution is actually a shortcut for restarting the build from scratch. Not what we really want ? Let&#8217;s see how to find the cause and solve webpack watch cached issue properly.</p>



<h2 class="wp-block-heading">Wrong casing &#8211; the real cause of webpack watch cached issue</h2>



<p class="wp-block-paragraph">In our case, the problem turned out to basically be <strong>wrong casing when importing stuff</strong>. </p>



<p class="wp-block-paragraph">The general advice is to find how given file you are modifying is entered into your webpack&#8217;s build flow. It can be <a href="https://flexiple.com/javascript-require-vs-import/">imported or required</a> directly. Maybe it&#8217;s used via <a href="https://webpack.js.org/configuration/resolve/">webpack alias</a>. I know these are quite general statements, so I&#8217;ll show you two examples.</p>



<h3 class="wp-block-heading">Wrong casing in import</h3>



<p class="wp-block-paragraph">First, we had a problem of <code>webpack watch</code> not refreshing bundles after making changes in a single file. This file is named <code>questionnaireCorrectTemplate.tsx</code>. It exports a single React component called <code>QuestionnaireCorrectTemplate</code>.</p>



<p class="wp-block-paragraph">In order to use this component, we imported it in another file in the following way:</p>



<script src="https://gist.github.com/dsibinski/a3e267ad6a41defc62fa22b405f8f96a.js"></script>



<p class="wp-block-paragraph">Have you already noticed the problem? Note that the import contains the module name with <strong>capital</strong> letter: &#8220;./<strong>Q</strong>uestionnaireCorrectTemplate&#8221;. As soon as we changed it to a small letter, so exactly as the  <code>questionnaireCorrectTemplate.tsx</code>  file&#8217;s name:</p>



<script src="https://gist.github.com/dsibinski/af26050bee05f9c52a5a253326b801a6.js"></script>



<p class="wp-block-paragraph">Everything started to magically work ? Since this change, <code>webpack watch</code> is properly rebuilding our bundles after changes in the affected file ?</p>



<h3 class="wp-block-heading">Wrong casing in webpack alias</h3>



<p class="wp-block-paragraph">We had another issue with <code>webpack</code> not refreshing the bundles when we made changes in a <code>Site.css</code> file. This is a file in which we store custom CSS for our React app. The issue was very similar to the previous one. After starting <code>webpack watch</code>, the first modification of <code>Site.css</code> file triggered a proper rebuild of bundles:</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="315" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh-1024x315.png" alt="webpack watch correctly rebuilding bundles for css file" class="wp-image-840" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh-1024x315.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh-300x92.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh-768x236.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_WebpackCssCorrectRefresh.png 1114w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p class="wp-block-paragraph">However, all subsequent modifications to the <code>Site.css</code> file causes the webpack watch cached issue:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="66" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue-1024x66.png" alt="webpack watch cached issue for css file" class="wp-image-841" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue-1024x66.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue-300x19.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue-768x50.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_WebpackCachedCssIssue.png 1094w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The reason was wrong casing again. However, this time we found out that the <code>Site.css</code> file was included as an alias in webpack configuration file:</p>



<script src="https://gist.github.com/dsibinski/731c30adc2b09ac12120a8426be5b400.js"></script>



<p class="wp-block-paragraph">I guess you can already see what is the problem ? The file was included as <code><strong>s</strong>ite.css</code>, instead of <code><strong>S</strong>ite.css</code>. As soon as we changed this part of the <code>webpack.config.js</code> file to the one with proper casing:</p>



<script src="https://gist.github.com/dsibinski/2d9900d68441aa83e50584d0ac2b91a8.js"></script>



<p class="wp-block-paragraph">Everything started to work correctly. Since this change, <code>webpack watch</code> correctly refreshes the bundles after each modification of <code>Site.css</code> file ?</p>



<h2 class="wp-block-heading">Webpack watch cached &#8211; summary</h2>



<p class="wp-block-paragraph">I hope this article helps you solve your <code>webpack watch</code> refreshing issue ? Webpack is still kind of magical tool for me and it surprises me very often. Such issues can be really painful &#8211; that&#8217;s why I wanted to share our solution to this problem with you. </p>



<p class="wp-block-paragraph">The general advice is to find how the problematic file is imported/required/added to webpack build flow. It&#8217;s very probably that you have the wrong casing somewhere. I hope it saves you some pain one day!</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/">Webpack Watch Cached And Not Refreshing Bundles</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/11/webpack-watch-cached-and-not-refreshing-bundles/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Remote Work Is Changing The World</title>
		<link>https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/</link>
					<comments>https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Mon, 15 Nov 2021 07:00:00 +0000</pubDate>
				<category><![CDATA[Remote work]]></category>
		<category><![CDATA[digital nomads]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=771</guid>

					<description><![CDATA[<p>As you know, at Yumasoft, we are proponents of remote work. We think that, as long as the work is done, our colleagues can work from any place they want. The development of remote work has increased significantly in the recent months. How is that affecting the world and politics? Have governments already defined who&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/">How Remote Work Is Changing The World</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As you know, at Yumasoft, we are proponents of remote work. We think that, as long as the work is done, our colleagues can work from any place they want.</p>



<p class="wp-block-paragraph">The development of remote work has increased significantly in the recent months. How is that affecting the world and politics? Have governments already defined who a digital nomad is? How do countries see remote workers &#8211; are they welcome or not? What about <a href="https://blog.yumasoft.pl/2021/10/most-annoying-digital-nomads-problems/#Visas">visa problems for digital nomads</a> &#8211; is it being solved, or is still kept in the <em>gray area</em>? ?</p>



<p class="wp-block-paragraph">In today&#8217;s essay, I&#8217;m trying to answer these questions and make some predictions on how the future of remote work will look like.</p>



<span id="more-771"></span>



<h2 class="wp-block-heading">Remote work in 2021</h2>



<p class="wp-block-paragraph">First, let&#8217;s see a few statistics. We&#8217;ve already taken <a href="https://blog.yumasoft.pl/2021/06/10-things-pandemic-changed-in-remote-work/">a brief look at them</a>, but it was more related to digital nomads. Let&#8217;s see, what can we say about the current state of telework.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="322" height="459" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_Percentage-of-Remote-Employees.png" alt="" class="wp-image-775" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_Percentage-of-Remote-Employees.png 322w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/1_Percentage-of-Remote-Employees-210x300.png 210w" sizes="auto, (max-width: 322px) 100vw, 322px" /><figcaption>Source: <a href="https://www.quantumworkplace.com/future-of-work/remote-work-statistics">quantumworkplace.com</a></figcaption></figure></div>



<p class="wp-block-paragraph">This is quite interesting. As we all know, COVID increased the number of remote workers significantly in 2020. Now we can see the employees in the United States are slowly, but steadily, going back to offices. Even though, in June 2021, when the economy has already been going back on track for quite some time, <strong>35% of employees are remote workers</strong>. <strong>Before the pandemic, this was only 7%.</strong></p>



<p class="wp-block-paragraph">In addition to that, 30% of people work in hybrid mode (few days in the office and few days working from home). That all means that <strong>65% of the US workforce is capable of doing their work remotely</strong>.</p>



<p class="wp-block-paragraph">These people will still want to leverage workations and living in different places than their employers or clients are based. This is especially true for those employed in big cities, where costs of living are relatively high. Often, by moving to a lower-cost area, these people can save a lot of money.</p>



<p class="wp-block-paragraph">We know the scale, but what about quality?</p>



<div class="wp-block-image"><figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_US-Remote-Work-Survey_-PwC.png" alt="" class="wp-image-778" width="763" height="311" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_US-Remote-Work-Survey_-PwC.png 763w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/2_US-Remote-Work-Survey_-PwC-300x122.png 300w" sizes="auto, (max-width: 763px) 100vw, 763px" /><figcaption>Survey performed in June 2020 and December 2020, Source: <a href="https://www.pwc.com/us/en/library/covid-19/us-remote-work-survey.html">PwC</a></figcaption></figure></div>



<p class="wp-block-paragraph">As you can see, with time passing, <strong>more employees and employers think remote work increases productivity</strong>.</p>



<p class="wp-block-paragraph">This makes sense, because with time, companies are refining their telework policies, getting used to using <a href="https://blog.yumasoft.pl/2021/04/asynchronous-communication-and-its-importance-for-remote-work/">proper communication tools and techniques</a> etc.</p>



<p class="wp-block-paragraph">Fine. Now it&#8217;s clear that the working out-of-office has got really popular in the last 2 years. Employers and employees were forced to switch to this working mode, which was far from ideal at the beginning. However, in the end, they made it better. Tools improved and work&#8217;s quality followed ?</p>



<h2 class="wp-block-heading">Sovereign Individuals &#8211; the new social class of the digital age</h2>



<p class="wp-block-paragraph">It might be surprising to most of you, but this scenario (common telework, physical borders losing their meaning etc.) was predicted in a 1999-book <em>The Sovereign Individual: Mastering the Transition to the Information Age.</em> The authors provide a wide context on how societies change when a new era is coming. The modern era &#8211; <em>information age</em> &#8211; has been predicted to be the fastest-coming revolution in history. <strong>That&#8217;s exactly what we can see today, and this phenomenon is often called the <em>digital era</em></strong> ?</p>



<p class="wp-block-paragraph">One of the most significant predictions made by <em>Sovereign Individual</em> authors is that the nation states and governments, as we used to know them, will become obsolete and less significant in XXI century. As people can now easily <em><a href="https://en.wikipedia.org/wiki/Foot_voting">vote with their feet</a></em>, countries should start competing for digital workers, referred to as <strong>sovereign individuals</strong>.</p>



<p class="wp-block-paragraph">I don&#8217;t want to go into too many details here. If you want to know more, I strongly recommend <a href="https://www.goodreads.com/en/book/show/82256">reading the book</a>.</p>



<p class="wp-block-paragraph">However, let&#8217;s try to see whether the governments really care about remote workers.</p>



<h2 class="wp-block-heading">How are governments attracting remote workers?</h2>



<p class="wp-block-paragraph">Currently, in my view, governments can divided into 2 types from remote work point of view:</p>



<ul class="wp-block-list"><li>completely ignoring the fact of digital workers&#8217; existence and their troubles, keeping telework in the gray area</li><li>seeing huge potential in remote workers and going ahead of their needs, welcoming and encouraging them to move into their countries and work remotely from there.</li></ul>



<p class="wp-block-paragraph">Still, most governments prefer the first, gray area option ?&#x200d;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2642.png" alt="♂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Fortunately, there are more and more countries attracting digital nomads, offering tax incentives and easy visa processes. Let&#8217;s see a few of the most interesting examples in the next sections.</p>



<h2 class="wp-block-heading">Georgia</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-1024x683.jpg" alt="" class="wp-image-793" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-1024x683.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-300x200.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-768x512.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia-263x174.jpg 263w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/3_Georgia.jpg 1387w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Georgia (the country) has launched heir <a href="https://agenda.ge/en/news/2020/2654">Remotely from Georgia</a> program in the middle-2020 to attract digital workers from around the world. Citizens of 95 countries were allowed to enter the country and legally work remotely while in Georgia. All this happened during the global pandemic, when most countries in the world were closed to foreigners.</p>



<p class="wp-block-paragraph">Would you ever think, that such a small country like Georgia proposes such a solution? It&#8217;s not common, even within the <a href="https://blog.yumasoft.pl/2021/08/top-5-places-for-digital-nomads-in-southeast-asia/">most popular digital nomad destinations</a>, to give legal work permit in such an easy way. The only requirement was $2000 earnings per month for covering expenses while in the country.</p>



<p class="wp-block-paragraph">What&#8217;s even more interesting, Georgia is offering very attractive tax rates for freelancers &#8211; you can pay as little as <a href="https://expathub.ge/why-move-your-taxes-to-georgia/">1% tax</a> on your income.</p>



<h2 class="wp-block-heading">Portugal</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-1024x683.jpg" alt="" class="wp-image-794" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-1024x683.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-300x200.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-768x512.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal-263x174.jpg 263w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/4_Portugal.jpg 1500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Portugal has become a digital nomads&#8217; hub in Europe in the last few months. It seems that the mild climate, quite affordable living costs and nomads-friendly attitude of government officials attracted a lot of digital nomads into the country.</p>



<p class="wp-block-paragraph">In the recent interview, Portugal’s Minister of Labor and Social Security said:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Telework can be a ‘game changer’ if we profit from the advantages and reduce the disadvantages (&#8230;) </strong></p><p><strong>We consider Portugal one of the best places in the world for these digital nomads and remote workers to choose to live in, we want to attract them to Portugal.</strong></p><cite><em>Ana Mendes Godinho, Portugal’s Minister of Labor and Social Security, <a href="https://www.pennlive.com/nation-world/2021/11/portugal-bans-bosses-from-texting-their-employees-after-work.html">source</a></em></cite></blockquote>



<p class="wp-block-paragraph">It is very nice to hear that some countries are welcoming digital nomads, a phrase that can&#8217;t often be heard in South-East Asia, for instance ?</p>



<p class="wp-block-paragraph">EU citizens can easily travel to and work remotely from Portugal based on EU laws. However, what&#8217;s interesting is that Portugal is offering the <a href="https://www.sovereigngroup.com/portugal/portugal-passive-income-d7-visa/">D7 visa</a> also to non-EU citizens. The requirement is to have a passive income equivalent to €7,620 per year. This allows anyone to live and work legally in Portugal, opening a business there or qualify for Portuguese citizenship after 5 years in the country.</p>



<h2 class="wp-block-heading">Malta</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1008" height="756" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_Malta.jpg" alt="" class="wp-image-796" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_Malta.jpg 1008w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_Malta-300x225.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/5_Malta-768x576.jpg 768w" sizes="auto, (max-width: 1008px) 100vw, 1008px" /></figure>



<p class="wp-block-paragraph">Malta is another country which is very open to remote workers. They have launched an official program <a href="https://residencymalta.gov.mt/overview/">called Nomad Residence Permit</a>. As long as you are employed by a foreign company, are a freelancer or owner of an offshore company and can work remotely, you qualify for the nomad permit. You must also have a gross monthly income of 2,700 EUR.</p>



<p class="wp-block-paragraph">An interesting point here is that the digital nomads earning money remotely while in Malta are not subjected to personal income tax. You only need to pay the tax in the country where your income is generated (or where your tax residency is, but not in Malta).</p>



<h2 class="wp-block-heading">Costa Rica</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="998" height="748" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/6_CostaRica.jpg" alt="" class="wp-image-797" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/6_CostaRica.jpg 998w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/6_CostaRica-300x225.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/6_CostaRica-768x576.jpg 768w" sizes="auto, (max-width: 998px) 100vw, 998px" /></figure>



<p class="wp-block-paragraph">In August 2021, Costa Rica <a href="https://www.lonelyplanet.com/articles/costa-rica-digital-nomad">approved a law to introduce digital nomads visas</a>. You need to earn at least $3000 per month (or $5000 per family). If your application is successful, you can stay in Costa Rica for up to a year, with a possibility to extend it for another year. Previously, a tourist visa allowed people from most countries to stay only for 90 days.</p>



<p class="wp-block-paragraph">Similarly to Malta, digital nomad visa holders are exempt from paying local income tax in Costa Rica. Teleworkers can also easily open a bank account in the country.</p>



<h2 class="wp-block-heading">Taiwan</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-1024x683.jpg" alt="" class="wp-image-799" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-1024x683.jpg 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-300x200.jpg 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-768x512.jpg 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-1536x1024.jpg 1536w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan-263x174.jpg 263w, https://blog.yumasoft.pl/wp-content/uploads/2021/11/7_Taiwan.jpg 1552w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Coming back to South-East Asia&#8230; As I already mentioned, countries in this region of the world still keep digital nomads mostly in gray area. However, there&#8217;s a tiny island which seems to have noticed the potential ?</p>



<p class="wp-block-paragraph">This island country is Taiwan. Within their <a href="https://goldcard.nat.gov.tw/en/">Gold Card </a>program, foreigners can obtain resident visa and work permit in the country. The card allows you to work legally in Taiwan, but also work remotely for offshore clients or companies.</p>



<p class="wp-block-paragraph">To be eligible for the Taiwanese Gold Card, your professional skills must be related to one of the following areas: Science and Technology, Economics, Education, Culture and Art, Sport, Finance, Law, or Architecture. As long as you can prove your skills in one of them (e.g. by presenting an academic thesis or work experience proof), the card should be given to you without bigger issues. As programmers, we are a perfect fit ?</p>



<p class="wp-block-paragraph">Gold Card valid for 1 year costs around $160, while the one valid for 2 years costs around $200. You can also bring your spouse, who can also apply for residence and work permit in Taiwan. You will also be eligible for public healthcare after 6 months waiting period.</p>



<p class="wp-block-paragraph">In addition to all that, for the first 3 years of living in Taiwan with Gold Card, half of your income up to around $110,000 will not be taxable. Sounds good, doesn&#8217;t it? ?</p>



<h2 class="wp-block-heading">What about the most popular digital nomad destinations?</h2>



<p class="wp-block-paragraph">What&#8217;s surprising for me, most of the <a href="https://blog.yumasoft.pl/2021/08/top-5-places-for-digital-nomads-in-southeast-asia/">most popular digital nomads destinations</a> and not doing their homework here. It seems they don&#8217;t see (or don&#8217;t want to see?) the potential in remote work and the changes that happened very quickly in the last few months.</p>



<p class="wp-block-paragraph">A great example is Indonesia, the country which normally attracts a lot of teleworkers into its island Bali. They have recently <a href="https://coconuts.co/jakarta/news/indonesian-tourism-minister-sandiaga-uno-plans-turbo-charged-5-year-visa-for-high-spending-tourists/">announced to launch a digital nomad visa</a> in the near future. However, the planned requirements are insane. You will have to deposit around $143,000 (or around $179,000 for family) in an Indonesian bank account in order to be eligible for the visa&#8230; ?&#x200d;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2642.png" alt="♂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">In my opinion, such countries will lose a lot in the years to come. Remote workers have a huge potential for bringing a lot of money into the country. The countries that realize that soon enough will be the winners.</p>



<h2 class="wp-block-heading">The future of remote work</h2>



<p class="wp-block-paragraph">I think that more and more countries will realize the potential of telework. They will start defining who digital nomads are and how their income should be taxed. Easy-to-obtain work visas for remote workers will be more popular. As national borders are beginning to have much less meaning, countries will need to start competing for location-independent professionals. Digital workers will seek for a state in which the taxes they pay are proportional to the value they get.</p>



<p class="wp-block-paragraph">Will the residency and associated benefits become a free market good? Will the governments be competing with each other, offering &#8220;a better residency package&#8221;? I guess we will see that in the years to come. For sure, COVID accelerated these movements a lot. Now the question is, which countries will realize that and enter the new &#8220;market&#8221; the fastest.</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/">How Remote Work Is Changing The World</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/11/how-remote-work-is-changing-the-world/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Does TypeScript Types Narrowing Work?</title>
		<link>https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/</link>
					<comments>https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Wed, 27 Oct 2021 05:30:00 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[ts]]></category>
		<category><![CDATA[typescript]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=736</guid>

					<description><![CDATA[<p>Have you ever heard about TypeScript types narrowing? Have you ever seen such an error in your TypeScript code: Even tough, you really knew that the name property exists on the person object? How did you solve this problem? Did you cast the variable to the expected type? If the answer to at least one&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/">How Does TypeScript Types Narrowing Work?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Have you ever heard about <em>TypeScript types narrowing</em>? Have you ever seen such an error in your TypeScript code:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="604" height="118" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_missing_property_error.png" alt="TypeScript complains about &quot;name&quot; property not existing  on &quot;person&quot; object of type &quot;object&quot;" class="wp-image-746" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_missing_property_error.png 604w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_missing_property_error-300x59.png 300w" sizes="auto, (max-width: 604px) 100vw, 604px" /></figure></div>



<p class="wp-block-paragraph">Even tough, you <em>really knew</em> that the <code>name</code> property exists on the <code>person</code> object? How did you solve this problem? Did you cast the variable to the expected type?</p>



<p class="wp-block-paragraph">If the answer to at least one of those questions is <em>yes,</em> you might read on. There are better ways of determining the type of local variable in TypeScript. What&#8217;s more, TS compiler does a lot of stuff for us by leveraging types narrowing. In this article, we are going to see how it works and how it can be useful ?</p>



<span id="more-736"></span>



<h2 class="wp-block-heading">TypeScript types narrowing &#8211; what is that?</h2>



<p class="wp-block-paragraph">One of the <a href="https://blog.yumasoft.pl/2021/06/migrating-javascript-react-app-to-typescript/">goals of TypeScript</a> is to make writing JavaScript code better and more secure by adding the typing system. However, we don&#8217;t want the typing system to be problematic and making us to use the <em>dirty haxes</em> like all the time casting our variables explicitly, do we? ?</p>



<p class="wp-block-paragraph">First, we need to understand that TypeScript does a lot of stuff in order to ensure we work with the most specific type as possible. Basically, if the exact type of local variable can be determined, TS compiler tries to do that.</p>



<p class="wp-block-paragraph">Imagine such a function:</p>



<script src="https://gist.github.com/dsibinski/b67234dc1fa7fba52a0695ce8b001c4d.js"></script>



<p class="wp-block-paragraph">In <a href="https://www.javatpoint.com/what-is-vanilla-javascript">vanilla JS</a>, such code would of course compile. But in our case, TypeScript sees a problem:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="730" height="170" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_type_error.png" alt="TypeScript complains that &quot;lenght&quot; doesn't exist on a variable of type &quot;string&quot; or &quot;number&quot;" class="wp-image-740" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_type_error.png 730w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/1_TypeScript_type_error-300x70.png 300w" sizes="auto, (max-width: 730px) 100vw, 730px" /></figure></div>



<p class="wp-block-paragraph">The compiler is right here. Our parameter is either <code>string</code> or <code>number</code>, so the <code>length</code> property may not be available if someone passes a <code>number</code>.</p>



<p class="wp-block-paragraph">You might have already been in such situations. What did you do? Well, sometimes when the code is more complex, and you <em>just know</em> that the variable contains the requested property, it might be tempting to cast:</p>



<script src="https://gist.github.com/dsibinski/fe0787bacfdadb10e0411c126a85f978.js"></script>



<p class="wp-block-paragraph">Of course, we will satisfy the compiler here. But does that make our code any more safe than the previous version? Not at all.</p>



<p class="wp-block-paragraph">In our example, based on the code we have written, TypeScript is not able to determine the exact type of <code>variable</code>. We can help it by using <em>type guards</em>. We will talk about them in details in a separate article. However, for now it&#8217;s enough to know that the language has some built-in type guards &#8211; one of them is <a href="https://www.typescriptlang.org/docs/handbook/advanced-types.html#typeof-type-guards">typeof</a>. Let&#8217;s use it in our function:</p>



<script src="https://gist.github.com/dsibinski/3848759ec400644ce6b36326cb5b3e13.js"></script>



<p class="wp-block-paragraph">That&#8217;s cool, TS compiler doesn&#8217;t complain anymore. But how does it work? Our code is still accessing <code>variable.length</code> directly, there&#8217;s no casting there.</p>



<p class="wp-block-paragraph">Notice what your IDE tells you when you hover your mouse over the <code>variable</code> in the first <em>if</em> branch after checking if the type is <code>string</code>:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="559" height="202" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/2_TypeScript_narrowing1.png" alt="TypeScript types narrowing figures out the type of variable is &quot;string&quot;" class="wp-image-741" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/2_TypeScript_narrowing1.png 559w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/2_TypeScript_narrowing1-300x108.png 300w" sizes="auto, (max-width: 559px) 100vw, 559px" /></figure></div>



<p class="wp-block-paragraph">and also what it tells you when hovering over <code>variable</code> in the <code>else</code> block:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="560" height="178" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/3_TypeScript_narrowing2-1.png" alt="TypeScript types narrowing figures out the type of variable is &quot;number&quot;" class="wp-image-743" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/3_TypeScript_narrowing2-1.png 560w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/3_TypeScript_narrowing2-1-300x95.png 300w" sizes="auto, (max-width: 560px) 100vw, 560px" /></figure></div>



<p class="wp-block-paragraph">Wow! The IDE magically knows what&#8217;s the exact type of our locally scoped variable! ?</p>



<p class="wp-block-paragraph">This magic is called <em>types narrowing</em>. TypeScript compiler does many things to ensure that the type of local variable you work with is of the most specific type possible. It is based on the complex analysis of the source code, especially the code surrounding the place in which the local variable is used.</p>



<h2 class="wp-block-heading"><em>in</em> keyword in types narrowing</h2>



<p class="wp-block-paragraph">Let&#8217;s take a look at this code now:</p>



<script src="https://gist.github.com/dsibinski/5ecdd052adb538e50e3f4917d11fe785.js"></script>



<p class="wp-block-paragraph">Let&#8217;s say we have a variable which may either be <code>Employee</code> or <code>Manager</code>:</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="166" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1-1024x166.png" alt="TypeScript doesn't know the type is it's not narrowed" class="wp-image-756" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1-1024x166.png 1024w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1-300x49.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1-768x125.png 768w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/5_TypeScript_narrowing_unknown_type-1.png 1189w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p class="wp-block-paragraph">In that place, TypeScript can&#8217;t say whether <code>person</code> is <code>Employee</code> or <code>Manager</code>.</p>



<p class="wp-block-paragraph">Maybe you&#8217;ve used the <code>in</code> keyword for determining types before. Types narrowing also works with <code>in</code> keyword:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="688" height="228" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/6_TypeScript_narrowing_in_keyword.png" alt="in keyword helps TypeScript narrow the type" class="wp-image-757" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/6_TypeScript_narrowing_in_keyword.png 688w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/6_TypeScript_narrowing_in_keyword-300x99.png 300w" sizes="auto, (max-width: 688px) 100vw, 688px" /></figure></div>



<p class="wp-block-paragraph">As you can see, TypeScript analyzed the flow, and it noticed that in the first <code>if</code> block we check whether the <code>person</code> object contains the <code>employees</code> property. If it does, the compiler known it must be <code>Manager</code>, not <code>Employee</code>. Cool, isn&#8217;t it? ?</p>



<h2 class="wp-block-heading">Narrowing and equality operator</h2>



<p class="wp-block-paragraph">Another interesting application of TypeScript types narrowing is using the equality operator:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="780" height="417" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/7_TypeScript_narrowing_equality.png" alt="TypeScript types narrowing determines type of variable based on === equality operator" class="wp-image-760" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/7_TypeScript_narrowing_equality.png 780w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/7_TypeScript_narrowing_equality-300x160.png 300w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/7_TypeScript_narrowing_equality-768x411.png 768w" sizes="auto, (max-width: 780px) 100vw, 780px" /></figure></div>



<p class="wp-block-paragraph">Notice how TypeScript determines the type of variables based on the <code>===</code> operator. If both parameters are equal, they must be both <code>string</code>s.</p>



<h2 class="wp-block-heading">TypeScript types narrowing &#8211; summary</h2>



<p class="wp-block-paragraph">Narrowing in TypeScript is a very power feature of the language. I just showed you some simple examples, so you can grasp the idea and notice how much TS compiler does to ensure your type is <em>the correct one</em>.</p>



<p class="wp-block-paragraph">If you&#8217;re interested, you can read much more about this in <a href="https://www.typescriptlang.org/docs/handbook/2/narrowing.html">TypeScript docs</a>. It&#8217;s however worth knowing how TypeScript compiler works and how you should properly check for types in your code. Remember that using <code>any</code> or explicit casting should be your last resort ?</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/">How Does TypeScript Types Narrowing Work?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/10/how-does-typescript-types-narrowing-work/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>When Not To Use TDD?</title>
		<link>https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/</link>
					<comments>https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Thu, 21 Oct 2021 06:00:00 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[software testing]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[tests]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=719</guid>

					<description><![CDATA[<p>Some time ago we talked about 7 reasons to start using Test Driven Development. As soon as you learn it and start practicing it on a daily basis, it might be tempting to always be TDDing. However, TDD is not always a good fit. There are some cases when it might not be worth using&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/">When Not To Use TDD?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Some time ago we talked about <a href="https://blog.yumasoft.pl/2021/09/7-reasons-to-start-doing-test-driven-development/">7 reasons to start using Test Driven Development</a>. As soon as you learn it and start practicing it on a daily basis, it might be tempting to always be <em>TDDing</em>. However, TDD is not always a good fit. There are some cases when it might not be worth using TDD. Let&#8217;s explore them today ?</p>



<span id="more-719"></span>



<h2 class="wp-block-heading">Prototypes</h2>



<p class="wp-block-paragraph">You may consider not doing TDD with prototypes. By <em>prototype</em>, I mean an app that will most probably be thrown away or completely changed very soon. It may be created when you are experimenting with some technology/framework or are just asked to <em>conduct research</em> on something.</p>



<p class="wp-block-paragraph">TDD gives you a high code/flow coverage, which may need to be changed in case of prototype projects. If you are in such situation, consider resigning from TDD at this stage.</p>



<h2 class="wp-block-heading">Short living apps</h2>



<p class="wp-block-paragraph">Similarly to prototypes, short living solutions might be the ones where TDD is not the best fit. It applies to one-time-use apps or scripts which are supposed to do one thing well and quickly.</p>



<p class="wp-block-paragraph">Short living apps are the ones where you may consider not using Test Driven Development. I&#8217;d even argue whether you need any kind of tests for such programs. Testing such apps or even scripts may be art for art&#8217;s sake. If something is supposed to realize a given task without fireworks (like reusability, maintenance etc.), I wouldn&#8217;t bother with testing it. It&#8217;s better to focus on solving your current, short-lived problem than on practicing the profound TDD idea ?</p>



<h2 class="wp-block-heading">Unclear requirements</h2>



<p class="wp-block-paragraph">One of the reasons not to use TDD might be unclear requirements. The idea of writing tests in Test Driven Development is to define the expected outcomes for predefined incomes. As we said <a href="https://blog.yumasoft.pl/2021/09/7-reasons-to-start-doing-test-driven-development/">in the previous article</a>, Test Driven Development can help spot the edge cases and make the business requirements more <em>close to the code</em>. However, if you don&#8217;t have these requirements defined, TDD might be a waste of time (at this stage). If the requirements actually arrive or are completely changed, your significant set of tests will need to be changed or even removed.</p>



<h2 class="wp-block-heading">MVP</h2>



<p class="wp-block-paragraph">If you&#8217;re creating an <a href="https://en.wikipedia.org/wiki/Minimum_viable_product">MVP</a>, with very short time and budget, TDD might not be worth the struggle. It&#8217;s probably better to resign from using TDD in that case. You should rather focus on your product and the business value it needs to deliver. TDD might slow down the delivery time, which, in case of MVPs, can be critical. It&#8217;s better to deliver the minimum viable product without TDD than to not deliver it with TDD ?</p>



<p class="wp-block-paragraph">However, remember to add some tests, even post-factum. MVPs have a high chance of survival, so you&#8217;d want your final product to be tested and testable. You need to find a good balance here, not to make your solution completely untestable when it&#8217;s ready for production use.</p>



<h2 class="wp-block-heading">Tests writing beginner</h2>



<p class="wp-block-paragraph">If you are a total beginner in writing tests in general, Test Driven Development might not be the best approach to start with. You may consider not to use TDD at the beginning of your testing journey.</p>



<p class="wp-block-paragraph">To make Test Driven Development effective, you should be able to write tests quickly and efficiently. Starting to learn software testing with Test Driven Development may make you feel overwhelmed and discouraged. If you&#8217;re a beginner, I suggest to first write some unit tests, get familiar with that and then try to learn Test Driven Development. </p>



<p class="wp-block-paragraph">It would be great if you can find some smaller and well-defined task to start with TDD. If you don&#8217;t have such tasks, try solving one of the programming katas (e.g. <a href="https://codingdojo.org/kata/StringCalculator/">this one</a>) with TDD. </p>



<h2 class="wp-block-heading">When not to use TDD &#8211; summary</h2>



<p class="wp-block-paragraph">Like everything, TDD is not a gold standard for every possible case. It should be used as often as possible, but not always. Remember to always weight the gains and losses from using Test Driven Development in a given project or application at a given time.</p>



<p class="wp-block-paragraph">What&#8217;s your experience with Test Driven Development? Can you list any more cases where it&#8217;s not worth using it? Share your thoughts in the comments below!</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/">When Not To Use TDD?</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/10/when-not-to-use-tdd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Most Annoying Digital Nomads Problems</title>
		<link>https://blog.yumasoft.pl/2021/10/most-annoying-digital-nomads-problems/</link>
					<comments>https://blog.yumasoft.pl/2021/10/most-annoying-digital-nomads-problems/#comments</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Mon, 11 Oct 2021 07:00:00 +0000</pubDate>
				<category><![CDATA[Remote work]]></category>
		<category><![CDATA[digital nomadism]]></category>
		<category><![CDATA[digital nomads]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=680</guid>

					<description><![CDATA[<p>If you&#8217;re thinking about working remotely as a digital nomad, Yumasoft is one of the companies allowing that. We leverage remote work to make the most of it, also allowing our employees to travel. However, as with everything, being a digital nomad has its dark sides. In today&#8217;s article, I&#8217;m exploring the most annoying digital&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/most-annoying-digital-nomads-problems/">Most Annoying Digital Nomads Problems</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">If you&#8217;re thinking about <a href="https://blog.yumasoft.pl/2020/03/traveling-the-world-as-a-digital-nomad/">working remotely as a digital nomad</a>, Yumasoft is one of the companies allowing that. We leverage remote work to make the most of it, also allowing our employees to travel.</p>



<p class="wp-block-paragraph">However, as with everything, being a digital nomad has its dark sides. In today&#8217;s article, I&#8217;m exploring <strong>the most annoying digital nomads problems</strong>. Read on to be well-prepared for this lifestyle before you decide to take it on! ?</p>



<span id="more-680"></span>



<h2 class="wp-block-heading">Visas</h2>



<p class="wp-block-paragraph">When traveling full-time, visas can be a real pain. When living in your home country, you don&#8217;t think about that aspect of life at all. However, digital nomads who want to stay longer in a foreign country must apply for an appropriate visa first. What&#8217;s problematic is the permitted length of stay. In most Southeast Asian countries, which are very popular among remote workers, foreigners can stay in the country for up to one month. After that time passes, you need to either exit the country or apply for another, often expensive visa extension.</p>



<p class="wp-block-paragraph">Because of that, there&#8217;s a common practice within digital nomads called a <em>visa run</em>. It basically means to leave a particular country by bus or plane for a day or two (sometimes even for just several hours!), only to go back and get another visa stamp in your passport ? Some countries are even <a href="https://www.thaiembassy.com/thailand-visa/thailand-visa-latest-update">trying to introduce mechanisms preventing visa runs</a>. All this makes digital nomads life complicated, stressful and costly.</p>



<h2 class="wp-block-heading">Taxes</h2>



<p class="wp-block-paragraph">One of the most frustrating digital nomads problems is taxation. In most countries in the world, if you stay for longer than 6 months, you should be paying taxes in the country you&#8217;re staying in. However, because remote work is still a gray area in most of the world, the taxes often cannot be technically paid by a foreigner. </p>



<p class="wp-block-paragraph">The issue is that most of the world&#8217;s countries still have not defined what a remote work really is and how the taxation and visa rules relate to it. In effect, often you are not able to legally obtain a visa that gives you a tax ID, which is needed for paying taxes ? </p>



<p class="wp-block-paragraph">Even if you finally get a tax ID in the country you live in, there are issues with double taxation. Assuming you have your company registered in your home country and are still paying taxes there, you might be taxed twice &#8211; both by your home country and your new residence country. In such case, digital nomads must analyze the double taxation agreements between the two countries, which are often hard to understand. Establishing your double taxation rules sometimes requires consulting a local tax advisor, which adds up to the cost of your trip.</p>



<h2 class="wp-block-heading">Apartments not suitable for remote work</h2>



<p class="wp-block-paragraph">For me, this is a very annoying point! If I were to choose one of the digital nomads problems I could magically solve, I would vote for apartments not adjusted for working. Sometimes even such a would-seem-irrelevant thing like a bad table or chair not suitable for working with a laptop can be a disaster for your stay. Especially if you book a flat for a longer period.</p>



<p class="wp-block-paragraph">What I hate the most are these IKEA chairs, popular in the whole world ?:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="495" height="544" src="https://blog.yumasoft.pl/wp-content/uploads/2021/10/IKEA_krzesslo_fanbyn.png" alt="" class="wp-image-691" srcset="https://blog.yumasoft.pl/wp-content/uploads/2021/10/IKEA_krzesslo_fanbyn.png 495w, https://blog.yumasoft.pl/wp-content/uploads/2021/10/IKEA_krzesslo_fanbyn-273x300.png 273w" sizes="auto, (max-width: 495px) 100vw, 495px" /><figcaption>Source: <a href="https://www.ikea.com/pl/pl/p/fanbyn-krzeslo-bialy-do-wewnatrz-na-zewnatrz-s49228474/">IKEA.com</a></figcaption></figure></div>



<p class="wp-block-paragraph">I can&#8217;t even express how much I do hate this chair ? Maybe they look fancy, but try sitting on it and working with laptop for 8 hours&#8230; The back of this chair is very flexible/elastic, so it is impossible to sit straight on it. So I am publicly asking all apartments owners &#8211; please stop buying IKEA FANBYN (and similar) chairs! ?</p>



<p class="wp-block-paragraph">Adding to that too low/too high tables, poor WiFi quality and not enough light, the apartment you book for a few months can become your remote work prison!</p>



<h2 class="wp-block-heading">Internet</h2>



<p class="wp-block-paragraph">Digital nomads need constant Internet access. While in most cities it is not a problem, when you want to travel to a bit more remote areas it becomes painful. WiFi is often unreliable, and mobile networks also often can&#8217;t be counted on.</p>



<p class="wp-block-paragraph">I remember joining our daily meeting with Yumasoft team in late 2019, when I was living in a remote part of Bali, Indonesia. <a href="https://goo.gl/maps/enJCXVC8dtL8KzEs7">Amed</a> is a beautiful place, with rice fields and volcano views, but the Internet really sucks there ? On a video call, I couldn&#8217;t use my camera of course. Even with only voice, I remember me saying something and the guys in Poland hearing it after 20-30 seconds. It was fun, but also a bit of stress.</p>



<h2 class="wp-block-heading">Time zones</h2>



<p class="wp-block-paragraph">Another challenge digital nomads face on a daily basis are time zones. Working from different continents than your colleagues requires you to adjust to the majority of the team&#8217;s timezone. Having my team based in Europe while living in Asia, I had to start working around noon and finish work around 8PM.</p>



<p class="wp-block-paragraph">This becomes even more problematic if most of your team is based in the same place all the time. This has been my case for almost 3 years at Yumasoft. Fortunately, we are quite flexible with working hours, and we try to use <a href="https://blog.yumasoft.pl/2021/04/asynchronous-communication-and-its-importance-for-remote-work/">asynchronous communication</a> as much as we can. Nevertheless, if you want to become a digital nomad, be prepared that time zones will most probably not be your best friends ? Of course, remember to always check the timezone in the country you are going to travel to!</p>



<h2 class="wp-block-heading">Making friends/socializing</h2>



<p class="wp-block-paragraph">Many digital nomads problems are related to social aspects of life. Working remotely, it might be hard to make new friends. If you are not an outgoing person or maybe an introvert (as many programmers are), you will not have the safe physical office space to expose you to some social interactions.</p>



<p class="wp-block-paragraph">Getting trapped at your apartment may make you more isolated than you have ever been before. The solution is to sometimes go out to a café or a coworking space. You can always meet like-minded people there. However, for introverts, it may come at a price.</p>



<p class="wp-block-paragraph">The same applies to the team you work at. If some of your teammates work at the office, you may feel &#8220;out of sync&#8221;. Some jokes and stories are always only told in the office, and you will not hear them. It might make you feel &#8220;out of the team&#8221; at some point.</p>



<p class="wp-block-paragraph">That is why, at Yumasoft we try to <a href="https://blog.yumasoft.pl/2020/05/5-tips-on-remote-programmers-team-work-organization/#Learn_asynchronous_communication">organize remote work properly</a>. It is very important that everyone feels part of the team. However, be prepared that it may not work ideally in every company you may work for.</p>



<h2 class="wp-block-heading">Work-traveling balance</h2>



<p class="wp-block-paragraph">This point is similar to <a href="https://en.wikipedia.org/wiki/Work%E2%80%93life_balance">work-life balance</a>, but what work takes from us in case of digital nomads is not life, but traveling ?</p>



<p class="wp-block-paragraph">Imagine you are living on an exotic island in Thailand. The weather is great, there are some stunning beaches around you have not visited yet &#8211; you arrived just 3 days ago. However, you must finish this important task&#8230; Maybe you can go on Saturday? Not this time &#8211; you must visit the local immigration office for your visa extension.</p>



<p class="wp-block-paragraph">That is what I mean by work-traveling balance. Being in exotic and interesting places makes you wanting to explore them, not work ? Going further &#8211; sometimes you cannot go to some place, because it is not suitable for remote work (poor Internet etc.). It makes you resign from visiting some cool places around, because you need to work. Even if they are at your fingertips. Unfortunately, being a digital nomad is not a constant holiday ?</p>



<h2 class="wp-block-heading">Not being understood by others</h2>



<p class="wp-block-paragraph">After you start a digital nomad lifestyle, you will notice that no one <em>really </em>understands what you do. Your friends and family members will soon be introducing you as &#8220;the guy who travels&#8221;. Most of your family will have no idea what you actually do at work. They will say: &#8220;she does something on her laptop&#8221;.</p>



<p class="wp-block-paragraph">Unfortunately, most people will also not understand your decision to leave home and constantly travel. This is not the lifestyle most people can and choose to have. Be prepared for not being understood by people who surrounded you until this moment. On the positive side, when leading a digital nomad lifestyle, you will quickly meet fellow nomads who will understand you very well ?</p>



<h2 class="wp-block-heading">Medical insurance</h2>



<p class="wp-block-paragraph">Last but not least &#8211; medical insurance. When traveling the world, it can be one of the most costs-generating digital nomads problems. You may still be covered by a public healthcare in your home country, but in most of the countries in the world you are not covered for health problems at local hospitals. If something happens, you have to pay even for using local public healthcare.</p>



<p class="wp-block-paragraph">That is why digital nomads must but a worldwide medical insurance. Most of the typical travel insurances will not work, because they are usually time-limited. It means that you cannot travel for few years on a travel insurance. You should buy a nomad medical insurance.</p>



<p class="wp-block-paragraph">Prices for good medical insurance for digital nomads start from 500 USD per year. If you suffer from chronic diseases, it will be even more expensive. You should also read the insurance policy very carefully to be sure it will cover your medical expenses in every case. Especially now, during COVID-19 pandemic.</p>



<h2 class="wp-block-heading">Digital nomads problems &#8211; summary</h2>



<p class="wp-block-paragraph">As you can see, nomadic lifestyle is not perfect &#8211; it has its drawbacks as any other lifestyle ? For me, after almost 3 years of working remotely and traveling, I can surely say that the benefits of being a digital nomad outweigh all of these problems. But it is important that you are prepared for them, so they do not surprise you when you get on the road.</p>



<p class="wp-block-paragraph">Of course, it is always best to check it yourself! There are now many more companies like Yumasoft that allow their employees to work remotely. Just give it a try and see for yourself! ?</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/10/most-annoying-digital-nomads-problems/">Most Annoying Digital Nomads Problems</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/10/most-annoying-digital-nomads-problems/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>7 Reasons To Start Doing Test Driven Development</title>
		<link>https://blog.yumasoft.pl/2021/09/7-reasons-to-start-doing-test-driven-development/</link>
					<comments>https://blog.yumasoft.pl/2021/09/7-reasons-to-start-doing-test-driven-development/#respond</comments>
		
		<dc:creator><![CDATA[Dawid Sibiński]]></dc:creator>
		<pubDate>Mon, 20 Sep 2021 10:00:00 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[software testing]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[tests]]></category>
		<guid isPermaLink="false">https://blog.yumasoft.pl/?p=656</guid>

					<description><![CDATA[<p>Why should you start doing Test Driven Development (TDD) today? What are the benefits of TDD, and how can it help the developers and business? Let&#8217;s explore 7 reasons everyone should be TDD-ing ? Moving design into code With test driven development, you create your tests before writing production code*. Having that in mind, one&#8230;</p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/09/7-reasons-to-start-doing-test-driven-development/">7 Reasons To Start Doing Test Driven Development</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Why should you start doing Test Driven Development (TDD) today? What are the benefits of TDD, and how can it help the developers and business? Let&#8217;s explore 7 reasons everyone should be TDD-ing ?</p>



<span id="more-656"></span>



<h2 class="wp-block-heading">Moving design into code</h2>



<p class="wp-block-paragraph">With test driven development, you create your tests before writing production code*.</p>



<p class="wp-block-paragraph">Having that in mind, one of the benefits of using TDD is that you need to <strong>move your design requirements into code before you even write a single line of business logic</strong>.</p>



<p class="wp-block-paragraph">It means that you need to spend time thinking about <a href="https://blog.yumasoft.pl/2021/07/why-naming-tests-matters/">good names</a> for your tests. I often create empty tests straightaway after staring to work on a task. Spending time to create well-named test methods can help you quickly spot missing parts in the design.</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;">*By <em>production code</em> I mean the actual business logic <em>except</em> the tests&#8217; code. This is only to differentiate here, but I personally consider my tests part of the production code in real life. Tests are as important as all the code.</span></p>



<h2 class="wp-block-heading">Finding edge cases</h2>



<p class="wp-block-paragraph">Going further, if you create many empty tests with well-thought names, you will surely find many edge cases. Thanks to test driven development, <strong>you&#8217;ll verify the business requirements by your code <em>without </em>writing even a single line of it</strong>. Discovering edge cases and boundary conditions will let you <strong>clarify the requirements or even change/adjust them <em>before </em>any production code is written</strong> ?</p>



<h2 class="wp-block-heading">Structuring your code beforehand</h2>



<p class="wp-block-paragraph">You&#8217;ll see that TDD forces you to think about the code you&#8217;re about to write beforehand. You&#8217;re going to think about production code to-be-written: how and where to add it, what methods, parameters and classes are needed. Thanks to that, you can quickly notice that maybe the place you&#8217;d normally place the new code in is not the best choice. Maybe it requires too much changing instead of modifying.</p>



<p class="wp-block-paragraph">Such approach leads to <strong>taking and rethinking architectural and structural decisions before writing a single line of production code</strong>. In the end, it saves you a lot of time. Without TDD, you&#8217;d probably just add this new code where you thought it&#8217;s appropriate and struggle to refactor it later. And refactoring without tests is dangerous ?</p>



<h2 class="wp-block-heading">Allowing to refactor</h2>



<p class="wp-block-paragraph">Test driven development is based on <a href="https://blog.cleancoder.com/uncle-bob/2014/12/17/TheCyclesOfTDD.html">red-green-refactor cycle</a>. <strong>As soon as your test is green, you can safely (for sure much more safely than without tests, especially if you combine TDD with <a href="https://blog.yumasoft.pl/2021/08/make-your-tests-bulletproof-with-mutation-testing/">mutation testing</a>) refactor the code you&#8217;ve just written</strong>.</p>



<p class="wp-block-paragraph">In the end, the quality of your code is much higher than it would be without tests. You don&#8217;t feel the <em>fear of refactoring</em>, which is a common blocker for improving code quality in legacy systems.</p>



<h2 class="wp-block-heading">Making implementation very easy</h2>



<p class="wp-block-paragraph">When you move from red to green phases of TDD, it&#8217;s time for implementation. From my experience, <strong>writing production code that satisfies TDD-produced tests is very easy</strong>. </p>



<p class="wp-block-paragraph">I find it much easier than writing code not covered by TDD-based tests. You exactly know what to do and which tests must pass. Thanks to that, your implementation is minimal &#8211; it should only make the test(s) green.</p>



<h2 class="wp-block-heading">Creating current code documentation</h2>



<p class="wp-block-paragraph">Implementing a new feature with test driven development will leave you with a comprehensive set of tests. From my experience, I write few times more tests with TDD than in a &#8220;traditional&#8221; <em>tests-after-code</em> mode.</p>



<p class="wp-block-paragraph">As a nice side effect, <strong>you&#8217;re building and growing the only possible, current documentation of your code &#8211; set of your tests</strong>. Only tests can tell you the truth about your code. It can&#8217;t be achieved with any other kind of documentation. Notice one more advantage &#8211; <strong>you&#8217;re creating documentation&#8230; <em>without </em>writing any documentation!</strong> ?</p>



<p class="wp-block-paragraph">Current, well-named tests are very helpful not only for developers, but also for the so-called <a href="https://blog.yumasoft.pl/2021/07/why-naming-tests-matters/#How_naming_tests_well_can_help_the_business">business people</a>.</p>



<h2 class="wp-block-heading">Spotting architectural problems</h2>



<p class="wp-block-paragraph">Last but not least, test driven development helps to solve application&#8217;s architectural problems. Tests should be relatively easy to write.<strong> If the test is hard to write before production code exists, it might mean that the architecture of your solution is wrong.</strong> There&#8217;s a problem somewhere that should be addressed.</p>



<p class="wp-block-paragraph">That&#8217;s why it&#8217;s very important to start working with TDD as early as possible in your project. There might be some cases where TDD it not suitable (maybe I&#8217;ll write a separate article about it ?), but in quite mature and stable projects, it should be a gold standard. Altering the architecture is much easier early in the project. </p>



<p class="wp-block-paragraph"></p>
<p>The post <a rel="nofollow" href="https://blog.yumasoft.pl/2021/09/7-reasons-to-start-doing-test-driven-development/">7 Reasons To Start Doing Test Driven Development</a> appeared first on <a rel="nofollow" href="https://blog.yumasoft.pl">Yumasoft</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.yumasoft.pl/2021/09/7-reasons-to-start-doing-test-driven-development/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
