<?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>Hand-Picked</title>
	<atom:link href="https://hand-picked.io/feed/" rel="self" type="application/rss+xml" />
	<link>https://hand-picked.io</link>
	<description>Top-notch remote software developers</description>
	<lastBuildDate>Mon, 09 Jan 2023 20:07:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.6.16</generator>

<image>
	<url>https://hand-picked.io/wp-content/uploads/2019/04/cropped-logo_512-2-32x32.png</url>
	<title>Hand-Picked</title>
	<link>https://hand-picked.io</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Massive Layoffs in the USA IT Market: What You Need to Know? [2023 Edition!]</title>
		<link>https://hand-picked.io/massive-layoffs-in-the-usa-it-market-what-you-need-to-know-2023/</link>
					<comments>https://hand-picked.io/massive-layoffs-in-the-usa-it-market-what-you-need-to-know-2023/#respond</comments>
		
		<dc:creator><![CDATA[Gabriel Calero]]></dc:creator>
		<pubDate>Mon, 09 Jan 2023 18:10:57 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2023]]></category>
		<category><![CDATA[Causes & Impacts]]></category>
		<category><![CDATA[Massive Layoffs]]></category>
		<category><![CDATA[USA IT Market]]></category>
		<guid isPermaLink="false">https://hand-picked.io/?p=7700</guid>

					<description><![CDATA[The US IT market is under the shadow of massive layoffs. Companies have lost IT professionals. Hand-Picked is here to help you to hire the best talent]]></description>
										<content:encoded><![CDATA[
<p>Since the onset of the coronavirus pandemic, the US market has been hit hard with massive layoffs. Companies have had to make difficult decisions to reduce their workforce to stay afloat in these turbulent times. There are almost <a href="https://layoffs.fyi/" target="_blank" rel="noopener">151648 employees laid off</a> in December, 2022. </p>



<p>It has been reported that Amazon will lay off 10,000 employees following the footstep of Meta, who has planned to let go of 11,000 workers. Elon Musk already fired<a href="https://www.euronews.com/next/2022/11/04/twitter-temporarily-closes-offices-as-elon-musk-begins-mass-layoffs#:~:text=Twitter%20had%207%2C500%20workers%20before,billion%20(%E2%82%AC44.9%20billion)." target="_blank" rel="noopener"> 50% of Twitter employees</a> last month.</p>



<p>All sectors are affected, but IT companies have undergone some of the most dramatic changes – with thousands of IT workers being let go in the last few months. These layoffs are having a massive impact on the lives of many and have created a wave of uncertainty in the industry.</p>



<p>IT Companies have lowered their growth/hiring targets to reduce burn rates and have adopted cost-cutting measures to stay afloat. This has resulted in thousands of workers in the IT sector losing their jobs.</p>



<p>This article will discuss the impact of these layoffs on the USA IT market and explore the implications for the future. We will also discuss how the affected workers can cope with the situation and look for solutions to their problems.</p>



<h2><strong>Which Tech Companies have Laid off?</strong></h2>



<p>Every week brings a new wave of layoffs in the IT sector. It all started earlier this year with smaller and medium IT companies who wanted to reduce their ongoing spend has now extended to big giants like Meta and Amazon.</p>



<p>Some of the most prominent tech companies who <a href="https://tech.co/news/tech-companies-layoffs" target="_blank" rel="noopener">laid off their workforce</a> following Meta and Amazon are;</p>



<ul><li>Adobe fired 100 staff on 6th December</li><li>Lyst fired 50 staff on 29th November</li><li>HP fired around 4000-6000 staff on 22nd November</li><li>Cisco fired 4000 staff on 18th November</li><li>Roku fired 200 staff on 17th November</li><li>Uber fired 3,700 staff on 10th November</li><li>Intel fired 10,500 staff on 19th October</li></ul>



<p>These are some of the biggest tech companies that have laid off their staff. However, many other small and medium tech companies have also had to let go of their employees due to this severe recession.</p>



<h2><strong>Major Causes of massive layoffs in the USA IT market</strong></h2>



<p>Over-hiring during Pandemic and <a href="https://www.bankrate.com/banking/federal-reserve/fomc-meeting-recap-december-2022/#:~:text=The%20Federal%20Open%20Market%20Committee,late%202007%20and%20early%202008." target="_blank" rel="noopener">increase in interest rate by Federal Reserve</a> to fight inflation are the major reasons for massive layoffs in the US IT market.</p>



<p>Many tech startups that experienced tremendous growth in 2020, particularly in the real estate, financial, and delivery sectors, are beginning to experience a slowdown in user activity.</p>



<p>During an employee Zoom call, Mark Zuckerberg, CEO of Meta, cited inflation and over-hiring as the main causes of the layoffs. He said that not only had online commerce returned to prior trends before the Pandemic, but that the macroeconomic downturn, increased competition, and ads signal loss had caused their revenue to be much lower than expected.&nbsp;</p>



<p>Salesforce, a cloud-based company, is also reportedly cutting hundreds of jobs. In a statement, a Salesforce spokesperson stated that their sales performance process drives accountability, which can, unfortunately, lead to some leaving the business, and that they will support them through their transition.</p>



<p>The Pandemic has also brought about a shift in the way companies are hiring. Companies are now relying more heavily on remote working and automation and cutting costs in the process. This has led to a decrease in hiring in the US IT market.</p>



<p>Businesses are increasingly focusing on digital transformation, process optimization, and cost reduction. This has led to massive layoffs in the IT sector, as companies have been forced to make cuts to remain competitive.</p>



<p>The Federal Reserve&#8217;s recent 0.75% rate hike appears to have slowed down the job market. The cost of financing the projects becomes more expensive which is another reason why tech companies are laying off.</p>



<p><a href="https://www.cnbc.com/2022/12/14/fed-rate-decision-december-2022.html" target="_blank" rel="noopener">On December 14</a>, the Federal Reserve sent a clear message that their battle against inflation is still ongoing. This was evidenced by their decision to raise the benchmark interest rate to the highest level in 15 years.</p>



<p>The Federal Open Market Committee voted to increase the overnight borrowing rate by a half a percentage point, bringing it to a targeted range between 4.25% and 4.5%. This is the most aggressive policy move since the early 1980s, with four straight three-quarter point hikes implemented over the past few months.</p>



<p>Higher interest rates have negatively impacted economic growth, leading to recession and unemployment.</p>



<p>It is likely that the layoffs will continue in the upcoming months. Companies are also beginning to make decisions on how to best manage their workforce in the coming months. They are implementing new strategies such as remote working, automation, and process optimization to remain competitive and remain profitable.</p>



<h2><strong>Impact of massive layoffs in the USA IT market</strong></h2>



<p>Whatever the causes might be, we can’t deny the harsh reality that it has hurt the US economy badly. Many US IT businesses have had to reduce their workforce, resulting in the layoffs of thousands of IT workers. This has created a ripple effect throughout the IT industry.</p>



<p>Some of the most devastating impacts of the layoffs include;</p>



<ul><li><strong>Loss of knowledge and expertise</strong></li></ul>



<p>Many IT workers have decades of experience in their areas of expertise, and the layoffs have resulted in the loss of this valuable asset. This has created a significant gap in knowledge and expertise, which could be difficult to fill.</p>



<ul><li><strong>Reduced innovation</strong></li></ul>



<p>With fewer IT workers, businesses have had to reduce their innovation efforts, as they lack the resources to invest in new technologies or research. This could lead to industry stagnation, as businesses cannot compete with other companies investing in research and development.</p>



<ul><li><strong>Disruption in business operations</strong></li></ul>



<p>The layoff has also disrupted business operations, as teams have had to adjust to the loss of key personnel. In some cases, businesses have had to completely restructure their teams and operations, leading to project delays or the loss of time and resources.</p>



<ul><li><strong>Loss of Customer Confidence</strong></li></ul>



<p>Customers feel uncertain about the ability of the company to deliver on its promises after the old employees have been laid off. This has caused customers to become more cautious and hesitant when engaging with companies that have experienced massive layoffs.</p>



<ul><li><strong>Increased competition</strong></li></ul>



<p>The layoffs have caused a surge in competition among IT companies, as they have to compete for fewer resources and talent. This could lead to decreased innovation and productivity, as companies have to focus on cost-cutting and efficiency over creativity and innovation.</p>



<ul><li><strong>Damage to company image</strong></li></ul>



<p>The massive layoffs have caused a lot of damage to the reputation of the companies involved. Customers may view companies as less reliable, and employees may view them as less committed to their workforce. This could lead to long-term damage to the company’s image and reputation.</p>



<ul><li><strong>Poor staff morale</strong></li></ul>



<p>The massive layoffs have caused a lot of distress and anxiety among IT workers. This has resulted in a decrease in morale, which can have a negative impact on productivity and efficiency. It can also lead to decreased loyalty and commitment among employees, who may feel uncertain about job security.</p>



<h2><strong>How can Hand-Picked help you?</strong></h2>



<p>Hand-Picked is the perfect partner for companies looking to access top talent. With our strict recruitment process, we can help you save time and money by quickly assessing and selecting the best IT professionals for your business at a fraction of cost.</p>



<p>Our rigorous process comprises several steps, including interviews, technical evaluations, coding and defending test projects. We look for talented people with a strong passion for technology, problem solving and ability to integrate into a team.</p>



<p>We are committed to providing a comprehensive service that is sure to meet all of your recruitment needs. Our experts are on hand to guide you through the recruitment process and help you find the perfect employees for your team.</p>



<p>Get the best talent in the industry with Hand-Picked &amp; hire with confidence!</p>



<div class="wp-block-contact-form-7-contact-form-selector lqd-contact-form">[contact-form-7]</div>
]]></content:encoded>
					
					<wfw:commentRss>https://hand-picked.io/massive-layoffs-in-the-usa-it-market-what-you-need-to-know-2023/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Outsourcing is expected to grow 70% by 2023</title>
		<link>https://hand-picked.io/outsourcing-is-expected-to-grow-70-by-2023/</link>
					<comments>https://hand-picked.io/outsourcing-is-expected-to-grow-70-by-2023/#respond</comments>
		
		<dc:creator><![CDATA[Gabriel Calero]]></dc:creator>
		<pubDate>Thu, 01 Sep 2022 21:25:07 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[2023]]></category>
		<category><![CDATA[outsourcing grow]]></category>
		<category><![CDATA[outsourcing trends]]></category>
		<category><![CDATA[software outsourcing]]></category>
		<guid isPermaLink="false">https://hand-picked.io/?p=7436</guid>

					<description><![CDATA[Outsourcing is expected to grow 70% by 2023 with companies projected to outsource at least 36% of their software developers, according to BusinessWire - a Berkshire Hathaway Company]]></description>
										<content:encoded><![CDATA[
<p>Outsourcing is expected to grow 70% by 2023 with companies projected to outsource at least 36% of their software developers, according to BusinessWire &#8211; a Berkshire Hathaway Company.<br>Furthermore, 99% of technology and HR leaders today recognize the benefits of remote teams, with 75% seeing an increase in productivity from their remote staff.</p>



<figure class="wp-block-image size-large"><img width="750" height="463" src="https://hand-picked.io/wp-content/uploads/2022/09/chart-copy-2.jpg" alt="" class="wp-image-7493" srcset="https://hand-picked.io/wp-content/uploads/2022/09/chart-copy-2.jpg 750w, https://hand-picked.io/wp-content/uploads/2022/09/chart-copy-2-300x185.jpg 300w" sizes="(max-width: 750px) 100vw, 750px" /><figcaption>Outsourcing is expected to grow 70% by 2023 with companies projected to outsource at least 36% of their software developers, according to BusinessWire – a Berkshire Hathaway Company</figcaption></figure>



<p>From your point of view as a CTO, quick and effortless scaling up of a team is an essential business operation to deliver a product in a shorter time-to-market. When your company is growing and you need to scale up your product and services to reach more customers, finding relevant resources becomes a time-consuming task.<br>Partnering a software outsourcing company can effortlessly scale up the team. Moreover, up to 40% of CTOs think that software development outsourcing can be convenient in a fast-paced environment.</p>



<p>On the other hand, if you&#8217;re a HR Manager you already know that hiring employees has always been a time-consuming and expensive task. This is particularly true considering the high turnover rate and dynamism of the IT labor market.<br>Having a partner that feeds your process with vetted IT resources is the key to streamline the IT resource onboarding process.<br>It also helps your company to reduce the hidden costs since more than 68% of companies spend at least one month to recruit a single developer. At the same time, one in five new recruits must be replaced.</p>



<p>The correct partner must meet many aspects including technical quality of the IT resources, a reasonable price, a quick end-to-end process, the ability to adapt to your specific needs and they must give you direct control over the talent so you can handle them as part of your IT team.</p>



<p>In the same way, a smart strategy to outsource IT resources requires selecting a provider that has available resources to be hired immediately. Those resources must be already trained to work independently but integrated and communicated with the rest of the team and in the same timezone.</p>



<h5>About Hand-Picked</h5>



<p>Hand-Picked is a Latam-based company that provides remote software developers selected by their high motivation and proved experience in the Industry, to startups and mid-sized companies all around the world. Since 2017 Hand-Picked developers have helped dozens of companies to successfully implement their projects.</p>



<h5>Contact us</h5>



<div class="wp-block-contact-form-7-contact-form-selector lqd-contact-form">[contact-form-7]</div>
]]></content:encoded>
					
					<wfw:commentRss>https://hand-picked.io/outsourcing-is-expected-to-grow-70-by-2023/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A Tale of Two HashMaps, or the importance of reading developer docs</title>
		<link>https://hand-picked.io/tale-of-hashmaps-or-the-importance-of-reading-docs/</link>
					<comments>https://hand-picked.io/tale-of-hashmaps-or-the-importance-of-reading-docs/#respond</comments>
		
		<dc:creator><![CDATA[Julián Álvarez]]></dc:creator>
		<pubDate>Mon, 19 Jul 2021 20:49:28 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[stories]]></category>
		<guid isPermaLink="false">https://hand-picked.io/?p=5968</guid>

					<description><![CDATA[In this article we&#8217;ll show an example of the importance of knowing about Data Structures (HashMaps or Dictionaries in this case) and paying attention to contracts and documentation, with a real story. We had an ads system (picture something like Google Ads) in an e-commerce site. And to make it simple, let&#8217;s say that we [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>In this article we&#8217;ll show an example of the importance of knowing about Data Structures (HashMaps or Dictionaries in this case) and paying attention to contracts and documentation, with a real story.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img width="640" height="640" src="https://hand-picked.io/wp-content/uploads/2021/07/blog-media-ads.png" alt="Media Google Ads" class="wp-image-5973" srcset="https://hand-picked.io/wp-content/uploads/2021/07/blog-media-ads.png 640w, https://hand-picked.io/wp-content/uploads/2021/07/blog-media-ads-300x300.png 300w, https://hand-picked.io/wp-content/uploads/2021/07/blog-media-ads-150x150.png 150w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption>Image by <a href="https://pixabay.com/users/megan_rexazin-6742250/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5000790" target="_blank" rel="noopener">Megan Rexazin</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5000790" target="_blank" rel="noopener">Pixabay</a></figcaption></figure></div>



<p>We had an ads system (picture something like Google Ads) in an e-commerce site. And to make it simple, let&#8217;s say that we had 3 key endpoints:</p>



<ul><li>One to retrieve ads</li><li>Other to count impressions (a pixel request placed by the retrieved ad)</li><li>The last one to count clicks and do the proper redirect</li></ul>



<p>To count impressions, that endpoint should get an encrypted parameter, decrypt it, verify the (internal, decrypted) parameters with a signature, and then use those values impressions counting.</p>



<p>While the code that generated those links was deployed in servers that were readily updatable, the code that read those links (impressions counter) was deployed in an old monolithic system. Those servers were only deployable every 2 weeks.</p>



<ul><li>Link generator &#8211;&gt; in servers that could update</li><li>Link/impression reader &#8211;&gt; in servers that couldn&#8217;t update</li></ul>



<figure class="wp-block-image size-large"><img width="1024" height="358" src="https://hand-picked.io/wp-content/uploads/2021/07/blog-servers-1024x358.jpeg" alt="Servers Clusters" class="wp-image-5971" srcset="https://hand-picked.io/wp-content/uploads/2021/07/blog-servers-1024x358.jpeg 1024w, https://hand-picked.io/wp-content/uploads/2021/07/blog-servers-300x105.jpeg 300w, https://hand-picked.io/wp-content/uploads/2021/07/blog-servers.jpeg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Photo by&nbsp;<strong><a href="https://www.pexels.com/@artunchained?utm_content=attributionCopyText&amp;utm_medium=referral&amp;utm_source=pexels" target="_blank" rel="noopener">Manuel Geissinger</a></strong>&nbsp;from&nbsp;<strong><a href="https://www.pexels.com/photo/interior-of-office-building-325229/?utm_content=attributionCopyText&amp;utm_medium=referral&amp;utm_source=pexels" target="_blank" rel="noopener">Pexels</a></strong></figcaption></figure>



<p>When this code was released, both servers (clusters indeed, but let&#8217;s call them servers for simplification) were running JDK 1.5.</p>



<p>In a given moment the server which was part of the readily updatable ones, got updated to JDK 1.6, and at that point.. we lost something…</p>



<p>In the morning we were alerted by the abnormality of having 0 (zero) impressions. Fall that could not be attributed to anything organic, but a code issue.</p>



<p>So, what was happening?</p>



<h2>HashMap implementation changes</h2>



<p>Remember that I said we were creating those links with a big encrypted parameter? That had a signature mechanism that was analyzed by the impression reader server code, and if the signature (simply done by hashing) wasn&#8217;t correct, the impression was discarded.<br>So the code for the impression counter link was something like:</p>



<pre class="wp-block-code"><code>for (String key: parametersMap.keySet()) {
    appendParameter(key, parametersMap.get(key),paramsBuilder); // Appends parameter
    stringToHash += parametersMap.get(key); // append value for the string to hash to get a signature
}

// calculate the hash and add some salt
stringToHash += secret;

signature = calulateHash(stringToHash);

appendParameter("signature", signature, paramsBuilder); // Appends parameter</code></pre>



<p>On the reader/impression counter side:</p>



<pre class="wp-block-code"><code>for (String key: parametersMap.keySet()) { // before this, this code put the parameters into a Map
    stringToHash += parametersMap.get(key);
}

// calculate the hash and add some salt
stringToHash += secret;

signatureToVerify = calulateHash(stringToHash);</code></pre>



<p>Can you spot the error there? It happens that in JDK 1.6, there was a slight change in the hashing code in HashMap, which made another slight change in the order elements were placed in the internal hashtable (an array).</p>



<p>So at the point where the impression counter server did <code>.keySet</code>, it provided those keys/values in an original order (by JDK 1.5) while the new code that generated that, was delivering those values in a different order (by JDK 1.6).</p>



<figure class="wp-block-image size-large"><img width="1024" height="125" src="https://hand-picked.io/wp-content/uploads/2021/07/blog-two-hashmaps-1024x125.png" alt="Hash function comparison" class="wp-image-5970" srcset="https://hand-picked.io/wp-content/uploads/2021/07/blog-two-hashmaps-1024x125.png 1024w, https://hand-picked.io/wp-content/uploads/2021/07/blog-two-hashmaps-300x37.png 300w, https://hand-picked.io/wp-content/uploads/2021/07/blog-two-hashmaps.png 1198w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>How the HashMap#hash() function changed. (But this isn&#8217;t the exact change of this story, we just couldn&#8217;t find it)</figcaption></figure>



<p>Obviously the bug is that relying on that order from the HashMap to append and retrieve values was a violation of the HashMap contract (and Set for instance), where it is expressed that you shouldn&#8217;t rely on the HashMap keys order.</p>



<blockquote class="wp-block-quote"><p>This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.</p><cite>Extracted from the HashMap class Javadoc</cite></blockquote>



<h2>Developer&#8217;s quick solution to save the day</h2>



<p>As the server that counted those impressions wasn&#8217;t available for an update (next code upload was scheduled for the next 2 weeks!), we had to do something on the &#8216;pixel generator&#8217; with that link.</p>



<p>As the counter was expecting those parameters in a given order, we decided to use the old HashMap code, so we could get the same order to verify the signature.</p>



<p>The <code>parametersMap</code>  object ended up being an instance of the <code>HashMap15</code> class, for the sake of letting it sort those elements as the impression counter endpoint expected them to be.</p>



<h2>Cleanup and conclusion</h2>



<p>In a next release we did sort those keys before relying on the order and ditched that temporary class. (It wasn&#8217;t an elegant solution to keep).</p>



<p>So that&#8217;s the story of why we should know about data structures, contracts and reading docs… or maybe about minor bugs that could go unnoticed until big consequences happen. Have you ever had to resort to this kind of tricks to save the day and continue operations?</p>



<p><em>A Tale of Two Cities Book Cover Photo by&nbsp;<strong><a href="https://www.pexels.com/@fotios-photos?utm_content=attributionCopyText&amp;utm_medium=referral&amp;utm_source=pexels" target="_blank" rel="noopener">Lisa</a></strong>&nbsp;from&nbsp;<strong><a href="https://www.pexels.com/photo/photo-of-a-tale-of-two-cities-by-charles-dickens-book-2608179/?utm_content=attributionCopyText&amp;utm_medium=referral&amp;utm_source=pexels" target="_blank" rel="noopener">Pexels</a></strong></em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hand-picked.io/tale-of-hashmaps-or-the-importance-of-reading-docs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Have you just hired a freelance developer? Read these 9 tips first</title>
		<link>https://hand-picked.io/have-you-just-hired-a-freelance-developer-read-these-9-tips-first/</link>
					<comments>https://hand-picked.io/have-you-just-hired-a-freelance-developer-read-these-9-tips-first/#respond</comments>
		
		<dc:creator><![CDATA[Dante Faricci]]></dc:creator>
		<pubDate>Wed, 16 Jun 2021 00:26:08 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[candidates]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[hire]]></category>
		<category><![CDATA[project]]></category>
		<guid isPermaLink="false">https://hand-picked.io/?p=5931</guid>

					<description><![CDATA[After interviews and tests you took the step, and have just decided to hire a remote freelance developer. So, what&#8217;s next? Whether you are the company&#8217;s CEO, product manager or project leader, you will want to make sure your new hire will be productive from day 1. The following list, made after years of onboarding [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>After interviews and tests you took the step, and have just decided to hire a remote freelance developer. So, what&#8217;s next? Whether you are the company&#8217;s CEO, product manager or project leader, you will want to make sure your new hire will be productive from day 1. The following list, made after years of onboarding in remote teams, will help you check for any blind spots to get the most from your new developer.</p>



<h2>Accesses</h2>



<p>Let&#8217;s take advantage of your new hire from the start. We don&#8217;t want to waste hours in an initial setup when we have the chance to move with anticipation. So in this case, if you need to work with your infrastructure team to grant access to git, VPNs, JIRA, etc, you&#8217;ll need to create your preferred corporate secure email or in case that&#8217;s not available, use the developer&#8217;s email (With Hand-Picked, you can use their @hand-picked.io address for this purpose).</p>



<figure class="wp-block-image size-large"><img width="1024" height="576" src="https://hand-picked.io/wp-content/uploads/2021/06/blog-login-outline-1024x576.jpg" alt="Login example drawing" class="wp-image-5934" srcset="https://hand-picked.io/wp-content/uploads/2021/06/blog-login-outline-1024x576.jpg 1024w, https://hand-picked.io/wp-content/uploads/2021/06/blog-login-outline-300x169.jpg 300w, https://hand-picked.io/wp-content/uploads/2021/06/blog-login-outline.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Image by <a href="https://pixabay.com/users/geralt-9301/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3938430" target="_blank" rel="noopener">Gerd Altmann</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3938430" target="_blank" rel="noopener">Pixabay</a></figcaption></figure>



<p>With the email as a starting point, you can create all other dependant accounts, and just wait for those confirmation or verification clicks on day 1.</p>



<h2>Objectives</h2>



<p>There are always tasks in our backlogs that need to be done that are suitable for onboarding processes. Also there are new features or big changes to implement. It is very important to have both kinds of tasks ready for your new developer, so you can assign them right away.</p>



<h2>Suggest reading material</h2>



<p>Is there any heavy download that the developer may need to start? Is there a way to start doing it before day 1? Sharing a link before starting could make this ready for the project beginning. Also, every project has peculiarities that make it different than the previous one. Maybe you use a novel library, VM or architecture that would need some reading?</p>



<figure class="wp-block-image size-large"><img width="1024" height="682" src="https://hand-picked.io/wp-content/uploads/2021/06/blog-book-study-1024x682.jpg" alt="Studying with book" class="wp-image-5935" srcset="https://hand-picked.io/wp-content/uploads/2021/06/blog-book-study-1024x682.jpg 1024w, https://hand-picked.io/wp-content/uploads/2021/06/blog-book-study-300x200.jpg 300w, https://hand-picked.io/wp-content/uploads/2021/06/blog-book-study.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Studying, it never ends &#8211; Image by <a href="https://pixabay.com/users/lum3n-1066559/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1853677" target="_blank" rel="noopener">LUM3N</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1853677" target="_blank" rel="noopener">Pixabay</a></figcaption></figure>



<p>An enthusiast developer undoubtedly would go and check and study all this new info beforehand.</p>



<h2>Build Instructions</h2>



<p>With projects complexity increasing by the day, build processes also became lengthier and more complex. Be sure that in your company&#8217;s wiki or knowledge base the process is up to date, so that doesn&#8217;t become a problem during the first build for your new hire. Obviously, it could happen that there is no doc available, so anything will help, from an email to a quick chat telling about any quirks in the process. This also includes accesses to any Continuous Integration platforms you may use, at least in the development environment (if every commit or pull request trigger new builds where the developer may need to check for errors).</p>



<h2>Communication</h2>



<p>Development teams spend a substantial amount of time in communication platforms, less than with their IDEs, but a lot nonetheless. As with other accesses, this one is particularly important as generally different teams are in the same platform, which may help with the initial setup (or any greeting or welcome rite you may have).</p>



<h2>Project Tracking</h2>



<p>So you have your objectives, deadlines and user stories. How the new developer will check them out? Let&#8217;s make sure they have access to the tool you use for this purpose.</p>



<figure class="wp-block-image size-large"><img width="1024" height="508" src="https://hand-picked.io/wp-content/uploads/2021/06/blog-trello-everything-1024x508.jpg" alt="Trello everything" class="wp-image-5936" srcset="https://hand-picked.io/wp-content/uploads/2021/06/blog-trello-everything-1024x508.jpg 1024w, https://hand-picked.io/wp-content/uploads/2021/06/blog-trello-everything-300x149.jpg 300w, https://hand-picked.io/wp-content/uploads/2021/06/blog-trello-everything.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Photo by <a href="https://unsplash.com/@maguay?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noopener">Matthew Guay</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noopener">Unsplash</a></figcaption></figure>



<p>Is your project starting from scratch and are you creating a remote team? Start creating boards on <strong>Trello</strong> and analyze it later in case you need an upgrade to Jira or other platform.</p>



<h2>Introduce them to their peers</h2>



<p>Introducing the rest of the team is of key importance as the developer starts working on their assignments. Sooner than later they will interact with designers, QAs, other developers, etc. Be sure you introduced them or let them know those names so they can quickly jump into those needed conversations.</p>



<h2>Anything extra to sign?</h2>



<p>Legal stuff, always important to have them already done so we can let creativity flow. If you need any extra NDAs or contracts, be sure to sign those deals before day 1. If you hire through Hand-Picked, we&#8217;ll be sure to remind you about this.</p>



<h2>Company equipment</h2>



<p>In case your Company workflow involves providing a laptop or equipment that may have already solved many points previously mentioned (already installed VPN, emails accounts already setup, necessary software installed) be sure to ship it at least one week before the initial date with your new developer.</p>



<figure class="wp-block-image size-large"><img width="1024" height="683" src="https://hand-picked.io/wp-content/uploads/2021/06/blog-fedex-plane-1024x683.jpg" alt="FedEx planes" class="wp-image-5937" srcset="https://hand-picked.io/wp-content/uploads/2021/06/blog-fedex-plane-1024x683.jpg 1024w, https://hand-picked.io/wp-content/uploads/2021/06/blog-fedex-plane-300x200.jpg 300w, https://hand-picked.io/wp-content/uploads/2021/06/blog-fedex-plane.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Photo by <a href="https://unsplash.com/@sixty7pixels?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noopener">Nick Morales</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noopener">Unsplash</a></figcaption></figure>



<p>Different countries have different times for their customs processing and anticipating it for at least one week with express shipping carriers -like DHL or FedEx- will make this less of a problem.</p>



<h2>Final thoughts</h2>



<p>What do you think about these points? Many apply to both new in-house developers and contractors, so we hope this guide helped you.</p>



<h2>Hire your next Hand-Picked developer</h2>



<p><a href="https://hand-picked.io/hire-hand-picked-developers/" class="rank-math-link">Hand-Picked developers</a> are motivated from start, so you will find them actively looking to integrate into your team as soon as possible. They will be open to any suggestions even before the contract begins, so you are welcome to communicate even if there is some time left before the project starts.</p>



<p><em>Cover Photo by <a href="https://unsplash.com/@anniespratt?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noopener">Annie Spratt</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noopener">Unsplash</a></em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hand-picked.io/have-you-just-hired-a-freelance-developer-read-these-9-tips-first/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Why do we challenge our candidates with algorithms tests?</title>
		<link>https://hand-picked.io/why-challenge-our-candidates-with-algorithm-tests/</link>
					<comments>https://hand-picked.io/why-challenge-our-candidates-with-algorithm-tests/#respond</comments>
		
		<dc:creator><![CDATA[Julián Álvarez]]></dc:creator>
		<pubDate>Mon, 17 May 2021 20:57:23 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[candidates]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[experts]]></category>
		<category><![CDATA[project]]></category>
		<guid isPermaLink="false">https://hand-picked.io/?p=5899</guid>

					<description><![CDATA[“Why do you ask candidates to do algorithms challenges?” It’s a question that usually happens in our interviews. It may appear that most software development jobs are on a category that won’t require you to use advanced algorithms. Tasks like getting data from a&#160;REST API&#160;and showing them to the user in an accessible way, are [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>“Why do you ask candidates to do algorithms challenges?” It’s a question that usually happens in our interviews. It may appear that most software development jobs are on a category that won’t require you to use advanced algorithms. Tasks like getting data from a&nbsp;<strong>REST API</strong>&nbsp;and showing them to the user in an accessible way, are the most common.</p>



<figure class="wp-block-image size-large"><img width="1024" height="683" src="https://hand-picked.io/wp-content/uploads/2021/05/engineers-whiteboard-apis-1024x683.jpg" alt="Female software engineers in discussion in front of whiteboard" class="wp-image-5910" srcset="https://hand-picked.io/wp-content/uploads/2021/05/engineers-whiteboard-apis-1024x683.jpg 1024w, https://hand-picked.io/wp-content/uploads/2021/05/engineers-whiteboard-apis-300x200.jpg 300w, https://hand-picked.io/wp-content/uploads/2021/05/engineers-whiteboard-apis.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Photo by <a href="https://unsplash.com/@thisisengineering?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noopener">ThisisEngineering RAEng</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noopener">Unsplash</a></figcaption></figure>



<h2>Algorithms and Data Structures, why?</h2>



<p>So let’s approach this question describing when knowledge of algorithms and data structures kick in -in unexpected ways sometimes- into our jobs.</p>



<p>One of the clearest examples is the usage of indexes in databases. It happens that certain queries start being very slow in systems where load and size have increased. Even optimizing the query (tables order, using less data, etc) would not be enough and the need of creating an index arises. Why indexes? Well, basic understanding of data structures make it easy to understand how data access speed is influenced by the data structures enabling it. The most common index in databases are&nbsp;<strong>B-tree&nbsp;</strong>indexes, which enable searches, access, etc in logarithmmic time. So we have it, algorithms and data structures come along again.</p>



<figure class="wp-block-image size-large"><img width="1024" height="768" src="https://hand-picked.io/wp-content/uploads/2021/05/child-water-1024x768.jpg" alt="child playing with water" class="wp-image-5912" srcset="https://hand-picked.io/wp-content/uploads/2021/05/child-water-1024x768.jpg 1024w, https://hand-picked.io/wp-content/uploads/2021/05/child-water-300x225.jpg 300w, https://hand-picked.io/wp-content/uploads/2021/05/child-water.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Image by <a href="https://pixabay.com/users/igrow-335413/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=392971" target="_blank" rel="noopener">Mandy Klein</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=392971" target="_blank" rel="noopener">Pixabay</a></figcaption></figure>



<p>There is something called, “<a href="https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/" target="_blank" rel="noreferrer noopener">The Law of leaky abstractions</a>” or “leaky abstractions” as is. Simply said, we could trust that the database itself will take the query and run it in efficiently. As we said before, this happens to be wrong in the long run. Sooner than later, the developer (or DBA?) will have to get his hands dirty and make that query perform better, regardless of semantics.</p>



<p>How does this all DB&nbsp;<strong>SQL</strong>&nbsp;Query thing relates with algorithmic tests? Well, those tests will reveal if the developer is aware of performance impact on many decisions during development. Unnecessary loops, or extra storage used may show disregard on knowing how things work, or that some knowledge is missing.</p>



<p>In some interviews we could find that developers rely too much on a given language libraries (data structures, strings, etc), to the extent that they think the library does magic and they wouldn’t explain “how they would implement it if they had to”. This kind of shallow knowledge gives us developers that, for example, don’t know how sorting works or why allocating memory for arrays in each write access is not good.</p>



<p>Solutions made by aware developers will always have those performance concerns on the radar, which makes those kind of solutions desirable. Clients know that, and in their search for great developers, most of them will want to be sure that the candidate has what it takes.</p>



<figure class="wp-block-image size-large"><img width="640" height="422" src="https://hand-picked.io/wp-content/uploads/2021/05/eniac-programmers.gif" alt="" class="wp-image-5914"/><figcaption><em>ENIAC Programming</em></figcaption></figure>



<p>That’s the reason why at Hand-Picked we do both automated algorithm tests and live coding interviews. We are interested in knowing that our developers will make the cut and have low chances of obvious performance blunders.</p>



<p>I would like to mention some notes about performance in general, there is a saying</p>



<blockquote class="wp-block-quote"><p>Premature optimization is the root of all evil</p><cite>Credited to Donald Knuth, in a longer sentence</cite></blockquote>



<p>which basically states that acting on performance when it isn’t important, does more harm than good. Will you spend time trying out an idea for your customers to use, or rather seeing if you’ll need a Big Data database to store analytics? Above all, even though algorithmic knowledge is valuable, it is more valuable for the developer to have criteria when taking decisions. So there is also other phrase about priorities.</p>



<blockquote class="wp-block-quote"><p>Make it work, Make it nice, Make it fast</p><cite>This formulation of this statement has been attributed to Kent Beck</cite></blockquote>



<p>We can see that making it work (correct, do what it is intended) and ‘nice’ (which means, making maintainable code in some way) come first. What will you make fast if it doesn’t work at all? Rhetoric question, as it may happen that not making something fast enough, may make the thing NOT WORK AT ALL for a given volume, users quantity or data amount. So always pay attention, it may happen that performance could be of utter importance.</p>



<p>These two phrases and that counter-argument may look contradictory but they are put together here just to show how good criteria must always be on top.</p>



<h2>Conclusion</h2>



<p>As performance is an important point in Software Development, <a href="https://hand-picked.io" class="rank-math-link">Hand-Picked</a> verifies the algorithmic knowledge of its candidates through an Automated Coding Platform and a Live Coding interview. This way we know we are dealing with a candidate that has the proper tools to solve performance problems that may arise during their engagements. But we don’t exaggerate it, solving CS Olympics level problems isn’t a requirement to enter the Hand-Picked network, just a good level of criteria when coding.</p>



<p><em>Cover Photo by&nbsp;<a href="https://unsplash.com/@alvarordesign?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noreferrer noopener">Alvaro Reyes</a>&nbsp;on&nbsp;<a href="https://unsplash.com/s/photos/computer-rubik?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="noreferrer noopener">Unsplash</a></em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hand-picked.io/why-challenge-our-candidates-with-algorithm-tests/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Android Projects Like a Pro (Expert) – Part 2 &#8211; Business oriented</title>
		<link>https://hand-picked.io/android-projects-like-a-pro-part-2/</link>
					<comments>https://hand-picked.io/android-projects-like-a-pro-part-2/#respond</comments>
		
		<dc:creator><![CDATA[Cristian Duarte]]></dc:creator>
		<pubDate>Tue, 02 Mar 2021 19:36:49 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[project]]></category>
		<guid isPermaLink="false">https://hand-picked.io/?p=5668</guid>

					<description><![CDATA[In the first part of this series we saw some architectural aspects of implementing large scale Android projects. In this article, we&#8217;ll focus on the product and business aspects of them. Wireframing / Interface Design So you&#8217;ve come up with an idea. You create a new Activity or Fragment, a layout, some views &#8211;similar to [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>In the <a aria-label=" (opens in a new tab)" href="https://hand-picked.io/android-projects-like-a-pro-part-1/" target="_blank" rel="noreferrer noopener" class="rank-math-link">first part of this series</a> we saw some architectural aspects of implementing large scale Android projects. In this article, we&#8217;ll focus on the product and business aspects of them.</p>



<h2>Wireframing / Interface Design</h2>



<p>So you&#8217;ve come up with an idea. You create a new Activity or Fragment, a layout, some views &#8211;<em>similar to this other big App</em>-, so it shouldn&#8217;t be wrong, right? Soon you realize that this approach doesn&#8217;t scale well.</p>



<p>What if you needed to visualize different ideas without spending time compiling? What if a product manager intends to tell you an idea? Will he code? We wouldn&#8217;t expect that from the design team either.</p>



<p>Wireframing is the tool that comes in handy to represent visually your app (or website). Anyone may make a low-detail representation of the intended screen and the user flow. Some say wireframing is the skeletal outline of the app, which is very accurate: You may see that most wireframes are just black lines on a white canvas. Also, this helps in getting feedback about the interface before writing a single line of code.</p>



<figure class="wp-block-image size-large"><img src="https://balsamiq.com/assets/learn/articles/flow.png" alt="Balsamiq Mockups allows focusing on the business side of Android Projects with a simple low-res approach"/><figcaption><a href="https://balsamiq.com/wireframes/" target="_blank" aria-label="Balsamiq Wireframes (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">Balsamiq Wireframes</a> fast, handwritten-like approach</figcaption></figure>



<p>Most tools these days offer the collaboration feature, where interfaces can be shared across the team or also might be edited collaboratively in real time. Also these tools may vary in terms of features, some will look more like skeletons (or even like hand-written), others with high-resolution (such tools may offer also exporting resources to use right away in your project), some others may implement &#8220;click-like&#8221; features to navigate the flow as if it were an app, or maybe support large canvases to cover an entire app (navigation flow) in just one screen.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img src="https://images.ctfassets.net/1khq4uysbvty/1i7cGmXoeCnP1uhXjmQPyW/8acf2ac8e9bf468208592455ae10318c/Prototyping_01.gif?&amp;w=523" alt=""/><figcaption><a href="https://www.figma.com/prototyping/" target="_blank" aria-label="Figma&#039;s (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">Figma&#8217;s</a> prototyping, with interactions and animations</figcaption></figure></div>



<p>You may find some of these tools (and discipline) with different names, that may have a similar meaning: Wireframes, Mockups, Interface Design, Workflow design, UX Design or Screen Design to name a few.</p>



<figure class="wp-block-image size-large"><img src="https://images.ctfassets.net/w6r2i5d8q73s/7EisW4dm8ZlCLrgFN4Gcz/a0612e76550cec84b0f5da422e56f4cf/S_-_Wireframing.png" alt=""/><figcaption>Wireframing in <a href="https://miro.com/features/" target="_blank" aria-label="Miro (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">Miro</a></figcaption></figure>



<p>Last but not least, a very and simple tool is always drawing interfaces using just pencil and paper. Before remote came in as a norm (by the way Hand-Picked was already remote before it was cool), teams used to draw interfaces on paper or whiteboards. I guess it will return in some way in the future but you can already use it by yourself if you have that task. Sometimes it&#8217;s kind of refreshing and satisfactory to see how a screen we drew on paper ended up in a final working product.</p>



<figure class="wp-block-image size-large"><img width="1024" height="683" src="https://hand-picked.io/wp-content/uploads/2021/03/wireframe-hand-1024x683.jpg" alt="" class="wp-image-5690" srcset="https://hand-picked.io/wp-content/uploads/2021/03/wireframe-hand-1024x683.jpg 1024w, https://hand-picked.io/wp-content/uploads/2021/03/wireframe-hand-300x200.jpg 300w, https://hand-picked.io/wp-content/uploads/2021/03/wireframe-hand.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Wireframing by hand</figcaption></figure>



<p>Note: In many teams the figure of a Product Manager (or Product Owners, or a mixed collaboration with designers) will be in charge of delivering Wireframes as an input for developers. Developers with wireframes and designs (if such Wireframes are low-res) would then be in charge of following that documentation. This doesn&#8217;t make this practice something exclusive to Product Managers or Designers. Be it your initiative within an existing project or you creating your own app, you will benefit from wireframing ideas before jumping in to your preferred IDE.</p>



<p>Note 2: Always try to make screens that have one important objective for the user. This will end up with simple to use interfaces that even our grandmas will be able to use (tech-savvy grandmas).</p>



<h2>A/B Testing</h2>



<p>We start getting serious, we mean business. What am I talking about? For any project, we (plus the stakeholders) will have an objective. Name it, more users, more engagement, more sales, more usage, it won&#8217;t matter if the software is for an NGO or it&#8217;s profit driven, all the endeavour will have a target to reach.</p>



<p>So in this process, new ideas will come up, and we will decide how to implement them. But, what if the idea has some cons that may happen to hurt the objective? Maybe we need that extra field in the registration screen for marketing purposes (so, more revenue); but will that affect Sign Ups in general with this additional nuisance? (Let&#8217;s face it, in mobile each extra field is kind of an effort for the user). How much will it hurt?</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img width="638" height="359" src="https://hand-picked.io/wp-content/uploads/2021/03/hamburger-no.jpg" alt="" class="wp-image-5693" srcset="https://hand-picked.io/wp-content/uploads/2021/03/hamburger-no.jpg 638w, https://hand-picked.io/wp-content/uploads/2021/03/hamburger-no-300x169.jpg 300w" sizes="(max-width: 638px) 100vw, 638px" /><figcaption>Someone had to measure if changing the Hamburger Menu for a Tab Bar would work.</figcaption></figure></div>



<p>In most cases there will be no other chance to try it out (as you may have different public or business than some other studies, it won&#8217;t be enough to go and check some 3rd party stats). Here it comes, A/B Testing. This &#8216;technique&#8217; allows us to release features to a subset of users before applying it to all of them. So in case we see that the feature was successful, we would have a green light to rollout it to all users. To know if it was successful we&#8217;ll need to have implemented analytics in the app, something explained next in the article.</p>



<figure class="wp-block-image size-large"><img src="https://www.seobility.net/en/wiki/images/2/24/AB-Testing.png" alt=""/><figcaption>AB Testing &#8211; Author: Seobility &#8211; License:&nbsp;<a class="rank-math-link" href="https://www.seobility.net/en/wiki/Creative_Commons_License_BY-SA_4.0" target="_blank" rel="noopener">CC BY-SA 4.0</a></figcaption></figure>



<p>In Android A/B Testing could be as simple as toggling features by asking for remote configurations (per user maybe). The backend code may support this or we may use Android utilities like &#8220;Firebase Remote Config&#8221; and <a href="https://developer.android.com/distribute/best-practices/develop/in-app-a-b-testing" class="rank-math-link" target="_blank" rel="noopener">Google Analytics for Firebase</a>. The new <a href="https://firebase.google.com/docs/ab-testing" class="rank-math-link" target="_blank" rel="noopener">Firebase A/B Testing</a> service has it all integrated, so it is also a well suited alternative if our target phones will have all Google Apps.</p>



<p>There are also approaches to take in case of having a Clean Architecture, where we could switch Views the behaviour based on what we configure in <a href="https://firebase.google.com/docs/remote-config/" class="rank-math-link" target="_blank" rel="noopener">Firebase Remote Configuration</a>, which is retrieved from the <code>FirebaseRemoteConfig</code> class. There is a good tutorial about <a aria-label="AB Testing in a Clean Architecture project (opens in a new tab)" href="https://medium.com/@burkedamian/a-b-testing-on-android-with-a-clean-architecture-c66c6bfd2131" target="_blank" rel="noreferrer noopener" class="rank-math-link">AB Testing in a Clean Architecture project</a>.</p>



<h2>Analytics</h2>



<p>We&#8217;ve talked about A/B Testing as one of the tools to improve and make our app successful. In other cases, to have new ideas, it is precise to know where will those have the most impact. For example, knowing what are the screens or features users use more frequently. Or where users have navigation issues or slow downs.</p>



<p>Integrating an analytics system in the app is of utter importance to have visibility about our app performance (business-wise).</p>



<figure class="wp-block-image size-large"><img width="1024" height="576" src="https://hand-picked.io/wp-content/uploads/2021/03/GooglAnalytics-1024x576.png" alt="" class="wp-image-5674" srcset="https://hand-picked.io/wp-content/uploads/2021/03/GooglAnalytics-1024x576.png 1024w, https://hand-picked.io/wp-content/uploads/2021/03/GooglAnalytics-300x169.png 300w, https://hand-picked.io/wp-content/uploads/2021/03/GooglAnalytics.png 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Google Analytics for <a href="https://www.youtube.com/watch?v=8iZpH7O6zXo" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">Firebase</a> (promo)</figcaption></figure>



<p>In general, the process involved in most systems is as follows:</p>



<ul><li>Setup the library for the specific analytics service</li><li>Log events (or screens and information) in particular parts of the app that you need to measure</li><li>Debug events and see reports. Most platforms give flexibility for reporting, even with SQL-like filters.</li><li>Iterate with new events and continue measuring</li></ul>



<p>What services options are there? <a href="https://firebase.google.com/products/analytics" target="_blank" aria-label="Google Analytics for Firebase (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">Google Analytics for Firebase</a> might be the go-to option for Android, but as Google Analytics was first made for Web, it may be missing some points. It is also said that it&#8217;s a bit slow to update. Something interesting is that it can log events but also track screens, with integration with what are screens in Android, Activities. For the moment, Google Analytics for Firebase is free without quotas nor paid tiers. Time will tell in the future.</p>



<p>There are also two options that try to innovate in the analytics scene, <a aria-label="Amplitude (opens in a new tab)" href="https://amplitude.com/" target="_blank" rel="noreferrer noopener" class="rank-math-link">Amplitude</a> and <a aria-label="Mixpanel (opens in a new tab)" href="https://mixpanel.com/" target="_blank" rel="noreferrer noopener" class="rank-math-link">Mixpanel</a>. Among so many features, both provide incredible visualizations and charts, and advanced querying capabilities.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img src="https://amplitude.com/wp-content/uploads/2021/02/mersure-img2.png" alt=""/><figcaption><a href="https://amplitude.com/" target="_blank" aria-label="Amplitude (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">Amplitude</a> (promotional) Dashboard</figcaption></figure></div>



<p>I want to note something that is not an analytics service per se, but something to govern them all. You will find that if you need to use multiple services, you will have to have your own layer that logs events in those different services. Or at least, to be a bit agnostic of the service, you would prefer to have that layer. Additionally, it will happen that the Product team will have their requirements for analytics and from that point until having those reports in production (with your LogEvent calls in the middle) some mistakes will occur.</p>



<p>So there is where a tool like <a aria-label="Avo (opens in a new tab)" href="https://www.avo.app/" target="_blank" rel="noreferrer noopener" class="rank-math-link">Avo</a> comes forward. Avo allows Product Managers, Developers and Data Scientists to work together on the same analytics plan. Said simply, while a Product Manager may define what information they require for different events, Avo has the capability to manage &#8216;branches&#8217; and generate code. Imagine a PM creating a &#8220;CONFIRM_PURCHASE&#8221; event with some info required like &#8220;DATE&#8221;, &#8220;PRODUCTS&#8221;. Well, Avo will generate the method to call: <code>Avo.confirmPurchase(date, products)</code>, amazing uh?</p>



<figure class="wp-block-image size-large"><img src="https://assets.website-files.com/5ec440af4659932990a1020c/5ee0ca30419db01182c33bed_integrations-diagram.png" alt=""/><figcaption><a href="https://www.avo.app/how-it-works" target="_blank" aria-label="Avo integration  (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">Avo integration </a>at a glance</figcaption></figure>



<p>Avo might look like something advanced, but it has proven to make the analytics code development easier in large multidisciplinary teams.</p>



<h2>There is more…</h2>



<p>This second part focused more on the business side of the project. Far from being over, the next part will go back to the code side of things when making Professional Android Apps!</p>



<p><em>Cover photo: Photo by&nbsp;<a href="https://unsplash.com/@alvarordesign?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener nofollow" class="rank-math-link">Alvaro Reyes</a>&nbsp;on&nbsp;<a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener nofollow" class="rank-math-link">Unsplash</a></em></p>



<p><em>Wireframing by hand: Photo by <a href="https://unsplash.com/@kellysikkema?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener nofollow" class="rank-math-link">Kelly Sikkema</a> on <a href="https://unsplash.com/s/photos/wireframe-sketch?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener nofollow" class="rank-math-link">Unsplash</a></em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hand-picked.io/android-projects-like-a-pro-part-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Android Projects Like a Pro (Expert) &#8211; Part 1</title>
		<link>https://hand-picked.io/android-projects-like-a-pro-part-1/</link>
					<comments>https://hand-picked.io/android-projects-like-a-pro-part-1/#respond</comments>
		
		<dc:creator><![CDATA[Cristian Duarte]]></dc:creator>
		<pubDate>Tue, 02 Feb 2021 21:19:41 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[project]]></category>
		<guid isPermaLink="false">https://hand-picked.io/?p=5573</guid>

					<description><![CDATA[Having a working Android App is not enough. More users, revenue and traffic need an engineering approach. Have you recently managed to earn an Android Developer Certification? Or maybe just finished your first personal project? Being in charge of an Android app that has gained quite a market share? Or the team has just grown [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Having a working Android App is not enough. More users, revenue and traffic need an engineering approach.</p>



<p>Have you recently managed to earn an Android Developer Certification? Or maybe just finished your first personal project? Being in charge of an Android app that has gained quite a market share? Or the team has just grown due to upcoming new features to make?</p>



<p>The next decisions and steps to take will have to tackle scalability and make you and your team Android Pros.</p>



<p>This guide is a summary of some tools and aspects the project will have to cover besides Fragments and Views.</p>



<h2>Architecture</h2>



<p>When an app becomes increasingly complex, with more features and aspects, making changes starts being problematic. Code duplication, newly introduced bugs, difficulty to change parts become common occurrences that hinder progress.</p>



<p>One of the steps for preparing for it, is establishing a good architecture, that takes into account modularity prospects of how much of a scope the project will have.</p>



<p>Is it a card game? Will you have to add different games afterwards? Is it a delivery app? What about adding pharmacies to it? How will you attach prescriptions? Is it a chat app? What about adding payments to it?</p>



<p>We may not predict the future but with some idea of the scope we will be able to think about how to modularize the project.</p>



<figure class="wp-block-image size-large"><img width="1024" height="768" src="https://hand-picked.io/wp-content/uploads/2021/02/architecture-plane-1024x768.jpg" alt="" class="wp-image-5579" srcset="https://hand-picked.io/wp-content/uploads/2021/02/architecture-plane-1024x768.jpg 1024w, https://hand-picked.io/wp-content/uploads/2021/02/architecture-plane-300x225.jpg 300w, https://hand-picked.io/wp-content/uploads/2021/02/architecture-plane.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Also, architecture can take care of possible bugs and stability (for example, if we go the Google route, using their components that take care of configuration changes, stability issues, concurrency, etc), and make testing easier.</p>



<p>You can take a look at Google&#8217;s <a href="https://developer.android.com/jetpack/guide" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">recommendation for apps architecture</a>.</p>



<p>Not taking Google&#8217;s as a last word, you can also check out <a href="https://www.techyourchance.com/netflix-shows-the-future-of-android-architecture/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">concepts and approach about MVP (Model-View-Presenter) by Netflix</a>.</p>



<h3>Modules</h3>



<p>While &#8220;module&#8221; sounds like an abstract concept for separation of concerns or sub-units of code, in Android projects it can be the concrete concept of Modules. Those parts in which an Android Project can be composed of.</p>



<p>We may have one only module for the entire app (not bad if we are just starting and trying out an idea) but it will become more evident the need to divide the code.</p>



<p>Separation of concerns, from a functional or non-functional point of view can both work: We can separate layers (UI, Data, Network, etc), features (Auth, BigFeature1, BigFeature2, Commons, etc) or a mix.</p>



<p>In case of having multiple teams for different parts of the app (imagine a supermarket app where electronics appliances screens are totally different from the groceries ones), different modules may provide a natural separation among teams as well. This is useful as well in <a href="https://hand-picked.io/evaluating-remote-software-development-nearshore-outsourcing-is-the-answer-post/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">remote and distributed teams</a>.</p>



<p>Here a bit more conceptual in-depth presentation about modules.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Build a modular Android app architecture (Google I/O&#039;19)" width="780" height="439" src="https://www.youtube.com/embed/PZBg5DIzNww?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<h3>Demo Apps</h3>



<p>The bigger the app, the more it will take to build, it is kind of a fact.</p>



<p>What if we want to (manually) test a part of the app we are working on? What if building takes 15 minutes? This WILL happen, sadly. In this case, modularizing among features may help as you may add mini-apps, maybe called &#8220;demos&#8221; or feature &#8220;Activities&#8221;, which will make it possible to have fast cycles for your features development.</p>



<figure class="wp-block-embed is-type-video is-provider-vimeo wp-block-embed-vimeo wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Android at Scale @Square" src="https://player.vimeo.com/video/380843878?dnt=1&amp;app_id=122963" width="780" height="439" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<p><a href="https://www.droidcon.com/media-detail?video=380843878" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">In an Square talk they tell about one approach to have fast builds and development with this kind of architecture (video above)</a>.</p>



<h3>Dependencies</h3>



<p>It will become prevalent that different modules, will end up connecting, or said better, depending upon themselves.</p>



<p>Just imagine your &#8220;Auth&#8221; module being asked for sessions from multiple parts of the app. Dependency Injection will come to the rescue for this and for easier Testing as well.</p>



<p>You won&#8217;t see any big Android project without a kind of Dependency Injection applied to it. Currently on Android, Hint is taking the position from Dagger as the recommended standard to follow (pushed by Google).</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Hilt - Android Dependency Injection" width="780" height="439" src="https://www.youtube.com/embed/B56oV3IHMxg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<h2>Testing</h2>



<p>Putting the religion aspect aside, more automated Testing will help the project. At least, avoiding to have the same bug twice.</p>



<p>The battery of tests will go from testing code/behavior one class at a time up to end to end tests that follow user paths in the app (for example, from login until saving changes in the app).</p>



<p>There is a Testing Pyramid that graphically explains three testing categories.</p>



<figure class="wp-block-image size-large"><img src="https://developer.android.com/images/training/testing/pyramid.png" alt="Android Testing Pyramid"/></figure>



<p>Some things we&#8217;ll have to consider:</p>



<ul><li>The need of implementing Dependency Injection in the project is inevitable. (At least, it will help with mocking features that are not meant to be tested in certain Unit Tests. It will also have a performance impact on Testing as well. Let&#8217;s avoid accessing the database or network when running a logic test.)</li><li>Small tests should be fast and generally only test Kotlin/Java code. Large tests, may need to run on real devices or emulation. That&#8217;s why some companies have phone farms or use services like AWS Device Farm or Firebase Test Lab.</li></ul>



<p><a href="https://developer.android.com/training/testing/fundamentals" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">The Fundamentals of Testing (for Android) can be seen here in the Android Developer site</a>.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Test-driven development on Android with the Android Testing Support Library (Google I/O &#039;17)" width="780" height="439" src="https://www.youtube.com/embed/pK7W5npkhho?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<p>Another aspect of testing that appears is how much of our app we are testing. This can be reflected by Code Coverage. Nowadays Android Studio has a built-in feature that allows you to run code with code coverage. Use it at your own &#8216;risk&#8217;, do not try to reach 100% without a second thought. Some parts in the code will be much more critical than others, focus on them first.<br><a href="https://developer.android.com/studio/test#view_test_coverage" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">Android Studio: how to run tests with code coverage</a>.</p>



<h2>Continuous Integration</h2>



<p>How we can reduce the chances of delivering new bugs into production after making a new bunch of code (new features, fixes, etc)? What about having builds ready for QA? Or.. how will all those tests run when integrating code in our Master branch?</p>



<figure class="wp-block-image size-large"><img width="1024" height="683" src="https://hand-picked.io/wp-content/uploads/2021/02/blog-making-instrument-1024x683.jpg" alt="" class="wp-image-5582" srcset="https://hand-picked.io/wp-content/uploads/2021/02/blog-making-instrument-1024x683.jpg 1024w, https://hand-picked.io/wp-content/uploads/2021/02/blog-making-instrument-300x200.jpg 300w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Here is when Continuous Integration takes their role in the project. Basically (but not restricted to) at least all new commits in our main branch (Master? but it could also be made for every feature branch) will trigger a new build. That build will itself be tested, both automatically and manually by our QA team (if we have any, please have one). It may also deliver those builds, making them accessible to anyone interested (QA, ourselves, Product management, etc).</p>



<p>Nowadays Jenkins CI is one of the most used, but some other tools can be used as well, Bitrise, Github Actions or even Gitlab CI.</p>



<p>In general it will be duty of one of the developers (or maybe a delivery manager?) to configure the platform and project with the steps to execute when integrating. Obviously we will want to run tests and make the build. Additionally many actions in this article series will end up running from CI as we want every &#8220;health&#8221; check for our project to be run automatically.</p>



<p>Check out this <a href="https://www.raywenderlich.com/10562143-continuous-integration-for-android" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="rank-math-link">practical introduction to Android Continuous Integration</a>.</p>



<h2>There is more..</h2>



<p>That&#8217;s all for this first part of the series. I promise, there is a lot more to cover when making Scalable Professional Android apps!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hand-picked.io/android-projects-like-a-pro-part-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Evaluating remote software development? Nearshore outsourcing is the answer</title>
		<link>https://hand-picked.io/evaluating-remote-software-development-nearshore-outsourcing-is-the-answer-post/</link>
					<comments>https://hand-picked.io/evaluating-remote-software-development-nearshore-outsourcing-is-the-answer-post/#respond</comments>
		
		<dc:creator><![CDATA[Hernan Saldana]]></dc:creator>
		<pubDate>Wed, 17 Jul 2019 20:46:59 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[outsourcing]]></category>
		<category><![CDATA[software development]]></category>
		<guid isPermaLink="false">https://hand-picked.io/?p=4936</guid>

					<description><![CDATA[Perhaps you are considering pros and cons of software outsourcing. Maybe you are looking for local talent in your city and you cannot find them or wages are increasing too high because of big tech companies are aggressively hiring. Also if you think remote working is an upcoming trend or if you wonder the difference [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Perhaps you are considering pros and cons of software outsourcing. Maybe you are looking for local talent in your city and you cannot find them or wages are increasing too high because of big tech companies are aggressively hiring. Also if you think remote working is an upcoming trend or if you wonder the difference between outsourcing and nearshore outsourcing you should continue reading until the end of this article.</p>
<p><img class="aligncenter wp-image-4964 size-full" src="https://hand-picked.io/wp-content/uploads/2019/07/global-world.jpg" alt="" width="626" height="417" srcset="https://hand-picked.io/wp-content/uploads/2019/07/global-world.jpg 626w, https://hand-picked.io/wp-content/uploads/2019/07/global-world-300x200.jpg 300w" sizes="(max-width: 626px) 100vw, 626px" /></p>
<p>Nowadays it is becoming more and more common to find distributed software development teams &#8211; a.k.a. IT teams -. No matter the reasons, developers are scattered along a country, a continent or the whole world, constantly collaborating each other to deliver great products and experiences: this is a fact. But there is also a common set of concerns for those in charge of building distributed IT teams, for example</p>
<blockquote><p>Does developers in other countries have the skills my project needs?</p>
<p>How can I coordinate and control a remote team?</p>
<p>Will the members of the team be able to effectively communicate each others?</p>
<p>How can I protected my business&#8217; IP?</p></blockquote>
<p>Here are some key aspects that you should consider to build successful remote teams across different countries without sacrificing product quality nor compromising business deadlines.</p>
<h3>The right skills, ready to go</h3>
<p><figure id="attachment_4963" aria-describedby="caption-attachment-4963" style="width: 200px" class="wp-caption alignright"><img class="size-medium wp-image-4963" src="https://hand-picked.io/wp-content/uploads/2019/07/call-200x300.jpg" alt="Call" width="200" height="300" srcset="https://hand-picked.io/wp-content/uploads/2019/07/call-200x300.jpg 200w, https://hand-picked.io/wp-content/uploads/2019/07/call.jpg 626w" sizes="(max-width: 200px) 100vw, 200px" /><figcaption id="caption-attachment-4963" class="wp-caption-text">Save time interviewing only top-noch developers</figcaption></figure></p>
<p>Looking for the right developer among the universe of all freelance developers is a really hard and time-consuming task. You will probably have to discard dozens of candidates before you find out a few that fit your needs for a position or a project. Hand-Picked candidates are already tested in specific skills and fluid English so you will interview only the top-notch developers.</p>
<p>Check the background of each candidate, see what they have done, how long they have worked for a company and what that company says about them. It&#8217;s not enough that they are qualified but they also need to be experienced.</p>
<p>Make sure they will be available full time or part time as your project require. If part-time is the case be sure they work the half of the day that best matches your business time, according to the developer&#8217;s timezone.</p>
<p>Finally check that the developer is able to start in the date you need. Hi talented developers do not last available so much, that&#8217;s why if you are interested you must be clear and ask a period to make a good decision.</p>
<p>Hand-Picked have the resources to start new projects right away. Handling the same project in-house might involve weeks or months to hire the right people, train them, and provide the support they need. For most implementations Hand-Picked will bring years of experience from the beginning, saving time and money.</p>
<h3>Saving costs</h3>
<p><figure id="attachment_4958" aria-describedby="caption-attachment-4958" style="width: 300px" class="wp-caption alignright"><img class="wp-image-4958 size-medium" src="https://hand-picked.io/wp-content/uploads/2019/07/saving-costs-300x225.jpg" alt="saving costs" width="300" height="225" data-sitemapexclude="true" srcset="https://hand-picked.io/wp-content/uploads/2019/07/saving-costs-300x225.jpg 300w, https://hand-picked.io/wp-content/uploads/2019/07/saving-costs.jpg 626w" sizes="(max-width: 300px) 100vw, 300px" /><figcaption id="caption-attachment-4958" class="wp-caption-text">Saving cost is one of the reasons why many companies build distributed IT teams</figcaption></figure></p>
<p>Hiring IT freelancers may make you save a considerable part of the total cost of in-house IT staff which is a great news specially for small and mid-sized business. Let&#8217;s consider this saving:</p>
<ul>
<li>Reduction in costs related to searching for candidates, hiring and training them</li>
<li>No need of company-paid benefits like social security, medicare, unemployment insurance, medical insurance, paid leave and some other taxes</li>
<li>Reduction in indirect costs like cleaning supplies, office equipment, in addition to administrative costs</li>
<li>As you only pay for worked days you don&#8217;t pay vacations</li>
<li>Fixed costs become variable costs so you pay for them only when you need them</li>
</ul>
<div class="mceTemp"></div>
<p>You can have top-notch freelance developers between 50 and 100 US dollars per hour. With that in mind and depending on the source you ask, the cost of hiring a developer is around 50% of the cost for an in-house developer. To get the total amount just multiply the unit saving amount by the amount of positions you need to cover&#8230;</p>
<h3>Take advantage of timezone</h3>
<p><figure id="attachment_4962" aria-describedby="caption-attachment-4962" style="width: 300px" class="wp-caption alignleft"><img class="wp-image-4962 size-medium" src="https://hand-picked.io/wp-content/uploads/2019/07/world-clock-300x135.jpg" alt="World clocks" width="300" height="135" srcset="https://hand-picked.io/wp-content/uploads/2019/07/world-clock-300x135.jpg 300w, https://hand-picked.io/wp-content/uploads/2019/07/world-clock-1024x460.jpg 1024w, https://hand-picked.io/wp-content/uploads/2019/07/world-clock.jpg 1263w" sizes="(max-width: 300px) 100vw, 300px" /><figcaption id="caption-attachment-4962" class="wp-caption-text">The timezone of the developers is a key factor for successful communication</figcaption></figure></p>
<p>In my experience this is the key to make a project succeed: communication. Work in a near timezone means have at least 4 hours overlapping between the freelancer and the headquarters. This allows a daily meeting in which each developer may report progress, issues and receive requirements. Technical calls are also convenient &#8211; or needed &#8211; more or less frequently and working both parts in a convenient time makes this sustainable over time.</p>
<p>Here is were nearshore outsourcing takes advantage. Being in the same continent is important because of two reasons: Daily, because of the benefits of time overlapping described above. The second reason is that from time to time you may need that both parts of the team work physically together and traveling across continents involves extra costs and drawback like jet lag.</p>
<h3>IP &amp; contracts matter</h3>
<p>Legally protect your work may result as important as the invention itself. I&#8217;m sure you will consult a professional but just keep in mind a few tips before signing a contract with freelance contractors:</p>
<ul>
<li>Have a signed NDA before sharing any information you consider sensitive</li>
<li>State in the contract that the contractor transfers you all ownership and rights over the work done, including know-how, design, inventions, etc.</li>
<li>State in the contract that, after the termination of the relationship, the contractor MUST destroy everything you consider private or sensitive information for your business</li>
<li>State in the contract that the contractor cannot share or divulge in any way any private information given to him to do his work</li>
<li>State in the contract that the contractor cannot use any work product (i.e. source code) developed for your business in another project for another client or for himself</li>
</ul>
<h3>Conclusion</h3>
<p><img class="alignleft wp-image-4641 size-full" src="https://hand-picked.io/wp-content/uploads/2019/04/hand-picked-logo-dark.svg" alt="Hand-Picked" width="120" height="120"></p>
<p>Hand-Picked developers have more than 10 years helping US startups and mid-sized companies to achieve their IT goals. We offer ready-to-go, high-quality and trained talent with a similar culture, speaking fluent english at a near timezone and letting your business reduce costs without taking extra risks: Hand-Picked developers will work with the same commitment than anyone else in your team. This is the commitment we have assumed.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hand-picked.io/evaluating-remote-software-development-nearshore-outsourcing-is-the-answer-post/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
