Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Wednesday 28 April 2021

Arc opens its remote career platform to all software developers

The COVID-19 pandemic threw remote work into the spotlight, but tech companies have hired in other locations for years to deal with talent shortages. Arc announced today it is opening its remote hiring platform to all software developers. Previously, Arc was open only to developers who passed its verification process. Developers can still get verified to stand out from other applicants, but Arc’s job database and search engine is now available to everyone.

Arc was launched two years ago by the team behind Codementor, an online education platform for software developers. Since then, Arc has been used by companies like Spotify, Hims, Hubspot and FiveStars for hiring. Its investors include TechStars, 500 Startups, WI Harper and Y Combinator.

“As proud as we are of impact we have made for developers, we really want to scale that impact, and that’s why we decided to create a much more open product experience,” founder and chief executive officer Weiting Liu told TechCrunch.

The new version of Arc centers around two features: its smart remote job search engine and developer community. Arc crawls job boards and other sites for its database and has so far aggregated 54,000 developer openings from 13,000 companies. Then its search engine removes some of the challenges associated with searching for remote work.

“For example, one common complaint is that a lot of jobs are remote, but U.S. only. Or it’s only remote until the end of the pandemic,” Liu said. “Our algorithm will do its best based on your circumstances. For example, if you are a developer based in Asia or in Eastern Europe, there are certain job opportunities that are unfortunately not applicable to you based on the time zones. So we filter all of those things, and also based on your experience and tech stacks, to recommend the most relevant jobs.”

Arc Community is a resource for software developers who are new to remote work or want to learn about work practices in other countries. For example, “they might have questions like, should my resume be in this format for a U.S.-based employer, or what are the types of tools used and cultural norms?” Liu said. “If someone is looking for a position with an American company, we will talk about common interview practices or even basic work practices like how many companies use Slack. That’s where the community comes in and we want to enable developers who have already been working remotely to share their experiences.”

Even though it is now optional, Arc still recommends its verification process. It typically takes about a week, and includes a coding challenge and behavioral and technical interviews with an Arc team member. Even if someone doesn’t pass, they get feedback about where they can improve and can reapply in six months. Verification and job searches are free, and Arc monetizes by charging employers for hires through its platform.

A screenshot showing steps from Arc's developer verification process

Steps from Arc’s developer verification process

In addition to its community, Arc recently launched a program called Elevate. Inspired by Liu’s experiences in Y Combinator and TechStars, Elevate is meant to be a “short-term talent accelerator” for developers who want to transition into remote work. Its first program included 13 developers from Latin America and future cohorts will range in size from 10 to 20 people. The program includes career preparation workshops, interview practice and live mentorship sessions with developers who work at GitLab, Zapier and Dialpad.

Arc is currently running a crowdfunding campaign, started after the SEC implemented its new equity crowdfunding regulations, and has raised about $950,000 so far.

“This is aligned with our vision, which is about democratizing access, so if we can make Arc a partially community-owned remote job platform, it will be extremely interesting because we aspire to become the world’s largest remote job site and if we can turn our community members into investors-slash-owners of the platform, it can help us realize our mission faster,” said Liu.



from TechCrunch https://ift.tt/3tZZe96
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support