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();

Saturday, 27 March 2021

Jeff Bezos’ investment fund is backing a startup hoping to be the AWS for SMB accounting

One of the biggest pain points for startups and small businesses is keeping up with back office tasks such as bookkeeping and managing taxes.

QuickBooks, it seems, just doesn’t always cut it.

Three-time co-founders Waseem Daher, Jeff Arnold, and Jessica McKellar formed Pilot with the mission of affordably providing back office services to startups and SMBs. With over 1,000 customers, it has gained serious traction over the years. And Pilot has now also received validation from some big-name investors. On Friday, the company announced a $100 million Series C that doubles the company’s valuation to $1.2 billion.

Bezos Expeditions — Amazon founder Jeff Bezos’ personal investment fund — and Whale Rock Capital (a $10 billion hedge fund) co-led the round, which also included participation from Sequoia Capital, Index Ventures, Authentic Ventures and others. 

Stripe and Index Ventures co-led Pilot’s $40 million Series B in April 2019. The latest financing brings the company’s total funding raised to over $158 million since its 2017 inception.

The founding team certainly has an impressive track record, having founded and sold two previous companies: Ksplice  (to Oracle) and Zupli (to Dropbox).

Pilot’s pitch is about more than just software. The company combines its software with accountants to do things such as provide “CFO Services” to SMBs without a full-stack finance team. It also provides monthly variance analysis for all its bookkeeping customers, essentially serving as a controller for those companies, so they can make better budgeting and spending decisions.

It also helps companies access small business tax credits they may not have otherwise known about. 

Last year, Pilot completed more than $3 billion in bookkeeping transactions for its customers, which range from pre-revenue startups to larger companies with more than $30M of revenue a year. Customers include Bolt, r2c and Pathrise, among others.

Pilot has also inked a number of co-marketing partnerships with companies such as American Express, Bill.com, Brex, Carta, Gusto, Rippling, Stripe, SVB, and Techstars.

Ironically, Pilot says it aspires to the “AWS of SMB backoffice.” (In fact, co-founder Waseem Daher started his career as an intern at Amazon). Put simply, Pilot wants to take care of all those back office tasks so companies can focus more on growth and winning business.

Pilot strives to offer an “exceptional customer experience,” which is reflected in the fact that over 80% of the company’s business is driven by customer referrals and organic interest, according to Daher.

Whale Rock Partner Kristov Paulus said that white-glove customer service experience and Pilot’s “carefully-engineered” software make a powerful combination.

“We look forward to supporting Pilot in their vision to make back office services as easy-to-use, scalable, and ubiquitous as AWS has with the cloud,” he said.

Pilot’s model reminds me a lot of that of ScaleFactor’s, an Austin-based startup that raised $100 million in a year before it crashed and burned. But the difference in this case is that Pilot seems to have satisfied customers.



from TechCrunch https://ift.tt/31otCNJ
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support