* @param string $content The content to write * * @return bool TRUE on success, FALSE if path cannot be created, if path is not writable or an any other error. */ protected function writeFile($filename, $content) { $filepath = pathinfo($filename, PATHINFO_DIRNAME); if ( ! $this->createPathIfNeeded($filepath)) { return false; } if ( ! is_writable($filepath)) { return false; } $tmpFile = tempnam($filepath, 'swap'); @chmod($tmpFile, 0666 & (~$this->umask)); if (file_put_contents($tmpFile, $content) !== false) { if (@rename($tmpFile, $filename)) { return true; } @unlink($tmpFile); } return false; } /** * @return \Iterator */ private function getIterator() { return new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($this->directory, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST ); }
"file_put_contents(): Only 0 of 22262 bytes written, possibly out of free disk space"
* @param string $content The content to write * * @return bool TRUE on success, FALSE if path cannot be created, if path is not writable or an any other error. */ protected function writeFile($filename, $content) { $filepath = pathinfo($filename, PATHINFO_DIRNAME); if ( ! $this->createPathIfNeeded($filepath)) { return false; } if ( ! is_writable($filepath)) { return false; } $tmpFile = tempnam($filepath, 'swap'); @chmod($tmpFile, 0666 & (~$this->umask)); if (file_put_contents($tmpFile, $content) !== false) { if (@rename($tmpFile, $filename)) { return true; } @unlink($tmpFile); } return false; } /** * @return \Iterator */ private function getIterator() { return new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($this->directory, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST ); }
"/tmp/swaphZ3icW"
""" 1712245026\n a:5:{i:0;a:2:{s:49:"/var/www/chadwindnagle.com/public_html/user/pages";O:21:"Grav\Common\Page\Page":57:{s:7:"\x00*\x00name";N;s:9:"\x00*\x00folder";s:5:"pages";s:7:"\x00*\x00path";s:43:"/var/www/chadwindnagle.com/public_html/user";s:12:"\x00*\x00extension";s:3:".md";s:16:"\x00*\x00url_extension";N;s:5:"\x00*\x00id";s:33:"0701a28d17cb9209e5cc81a8851417fe4";s:9:"\x00*\x00parent";N;s:11:"\x00*\x00template";s:7:"default";s:10:"\x00*\x00expires";N;s:16:"\x00*\x00cache_control";N;s:10:"\x00*\x00visible";N;s:12:"\x00*\x00published";b:1;s:15:"\x00*\x00publish_date";N;s:17:"\x00*\x00unpublish_date";N;s:7:"\x00*\x00slug";N;s:8:"\x00*\x00route";N;s:12:"\x00*\x00raw_route";N;s:6:"\x00*\x00url";N;s:9:"\x00*\x00routes";N;s:11:"\x00*\x00routable";b:0;s:11:"\x00*\x00modified";i:0;s:11:"\x00*\x00redirect";N;s:15:"\x00*\x00external_url";N;s:8:"\x00*\x00items";N;s:9:"\x00*\x00header";N;s:14:"\x00*\x00frontmatter";N;s:11:"\x00*\x00language";N;s:10:"\x00*\x00content";N;s:15:"\x00*\x00content_meta";N;s:10:"\x00*\x00summary";N;s:14:"\x00*\x00raw_content";N;s:13:"\x00*\x00pagination";N;s:11:"\x00*\x00metadata";N;s:8:"\x00*\x00title";N;s:12:"\x00*\x00max_count";N;s:7:"\x00*\x00menu";N;s:7:"\x00*\x00date";N;s:13:"\x00*\x00dateformat";N;s:11:"\x00*\x00taxonomy";a:0:{}s:11:"\x00*\x00order_by";s:7:"default";s:12:"\x00*\x00order_dir";s:3:"asc";s:15:"\x00*\x00order_manual";N;s:10:"\x00*\x00modular";N;s:15:"\x00*\x00modular_twig";N;s:10:"\x00*\x00process";a:2:{s:8:"markdown";b:1;s:4:"twig";b:0;}s:15:"\x00*\x00summary_size";N;s:17:"\x00*\x00markdown_extra";N;s:7:"\x00*\x00etag";N;s:16:"\x00*\x00last_modified";N;s:13:"\x00*\x00home_route";N;s:18:"\x00*\x00hide_home_route";N;s:6:"\x00*\x00ssl";N;s:18:"\x00*\x00template_format";N;s:11:"\x00*\x00debugger";N;s:32:"\x00Grav\Common\Page\Page\x00_original";N;s:30:"\x00Grav\Common\Page\Page\x00_action";N;s:8:"\x00*\x00media";N;}s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";O:21:"Grav\Common\Page\Page":57:{s:7:"\x00*\x00name";s:10:"default.md";s:9:"\x00*\x00folder";s:7:"01.home";s:7:"\x00*\x00path";s:49:"/var/www/chadwindnagle.com/public_html/user/pages";s:12:"\x00*\x00extension";s:3:".md";s:16:"\x00*\x00url_extension";N;s:5:"\x00*\x00id";s:42:"153662551408f87a0bf1738ba13f0f31dfb4a58d42";s:9:"\x00*\x00parent";s:49:"/var/www/chadwindnagle.com/public_html/user/pages";s:11:"\x00*\x00template";s:7:"default";s:10:"\x00*\x00expires";N;s:16:"\x00*\x00cache_control";N;s:10:"\x00*\x00visible";b:1;s:12:"\x00*\x00published";b:1;s:15:"\x00*\x00publish_date";N;s:17:"\x00*\x00unpublish_date";N;s:7:"\x00*\x00slug";s:4:"home";s:8:"\x00*\x00route";s:1:"/";s:12:"\x00*\x00raw_route";s:5:"/home";s:6:"\x00*\x00url";N;s:9:"\x00*\x00routes";N;s:11:"\x00*\x00routable";b:1;s:11:"\x00*\x00modified";i:1536625514;s:11:"\x00*\x00redirect";N;s:15:"\x00*\x00external_url";N;s:8:"\x00*\x00items";N;s:9:"\x00*\x00header";O:8:"stdClass":2:{s:5:"title";s:4:"Home";s:6:"resume";a:10:{s:7:"general";a:6:{s:7:"bgcolor";s:7:"#332A08";s:14:"secondarycolor";s:7:"#A99D71";s:6:"github";s:1:"0";s:11:"github_link";s:30:"http://www.github.com/drmmr763";s:11:"github_text";s:6:"Github";s:6:"styles";s:66:".profile-pic {\r\n margin-bottom: -5em;\r\n margin-top: -2em;\r\n }";}s:7:"sidebar";a:5:{s:4:"name";s:2:"CW";s:8:"subtitle";s:17:"Software Engineer";s:3:"nav";a:3:{s:4:"home";s:4:"Home";s:5:"about";s:5:"About";s:6:"resume";s:6:"Resume";}s:6:"social";a:3:{s:7:"twitter";s:31:"http://www.twitter.com/drmmr763";s:8:"linkedin";s:42:"https://www.linkedin.com/in/chadwindnagle/";s:6:"github";s:30:"http://www.github.com/drmmr763";}s:11:"profile_img";a:1:{s:58:"user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png";a:4:{s:4:"name";s:39:"chadwindnagle-pic-cropped-updated-3.png";s:4:"type";s:9:"image/png";s:4:"size";i:660748;s:4:"path";s:58:"user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png";}}}s:4:"home";a:3:{s:8:"fullname";s:14:"Chad Windnagle";s:11:"typedtitles";s:119:"PHP Developer, Laravel Expert, AWS Expert, Software Engineer, Static Code Analysis, Code Reviews, Jenkins Pipeline, Git";s:5:"email";s:18:"drmmr763@gmail.com";}s:5:"about";a:4:{s:11:"customtitle";s:8:"About Me";s:8:"subtitle";s:26:"Software Engineer, Dev Ops";s:14:"general_header";s:281:"I'm dedicated software developer who has maintained legacy code bases and created new ones from scratch. I enjoy writing readable, reusable, and reliable code, working with great teams who have great taste, problem solving, and innovating while shipping tested, high quality code. ";s:12:"general_info";s:1002:"As a teenager I've loved to learn and work with computers. I taught myself to program as a way to break the boredom. I soon realized that the world of programming was endless and this had a life changing impact on me. I went on to become an open source contributor from my parent's basement. I attended college to become a web developer. All the while I worked for a web design agency and continued to hone my skills and build my experience. \r\n \r\n Since my humble beginnings I've had the opportunity to share my passion with others and engage with companies in fields such as travel, health, automobile producers, the nuclear energy industry, and even some clients I can't even tell you about ;)\r\n \r\n I've been given the opportunity to speak to small and large audiences at software conferences about contributing to open source, self taught programming, and improving one's skill as an engineer. I've been passionate about code for over 10 years now, and I don't see that passion going away any time soon.";}s:6:"skills";a:2:{i:0;a:2:{s:5:"title";s:21:"Programming Languages";s:10:"skillslist";a:3:{i:0;a:3:{s:4:"name";s:3:"PHP";s:11:"description";s:28:"php7, unit testing, composer";s:10:"percentage";s:2:"99";}i:1;a:3:{s:4:"name";s:10:"Javascript";s:11:"description";s:18:"React, Vue, jQuery";s:10:"percentage";s:2:"80";}i:2;a:3:{s:4:"name";s:4:"Perl";s:11:"description";s:21:"PMs, CGI, PL, Testing";s:10:"percentage";s:2:"90";}}}i:1;a:2:{s:5:"title";s:7:"Dev Ops";s:10:"skillslist";a:3:{i:0;a:3:{s:4:"name";s:7:"CI / CD";s:11:"description";s:38:"Jenkins, Atlassian Pipelines, TeamCity";s:10:"percentage";s:2:"90";}i:1;a:3:{s:4:"name";s:10:"Monitoring";s:11:"description";s:30:"CloudWatch Monitoring & Alerts";s:10:"percentage";s:2:"70";}i:2;a:3:{s:4:"name";s:6:"Docker";s:11:"description";s:42:"Custom Dockerfile, Docker Compose, AWS ECS";s:10:"percentage";s:2:"80";}}}}s:5:"tools";a:1:{s:5:"title";s:17:"Tools & Platforms";}s:4:"tool";a:8:{i:0;a:3:{s:8:"logo_alt";s:6:"Github";s:9:"logo_link";s:30:"http://www.github.com/drmmr763";s:4:"logo";a:1:{s:30:"user/pages/01.home/Octocat.png";a:4:{s:4:"name";s:11:"Octocat.png";s:4:"type";s:9:"image/png";s:4:"size";i:2131769;s:4:"path";s:30:"user/pages/01.home/Octocat.png";}}}i:1;a:3:{s:8:"logo_alt";s:7:"Jenkins";s:9:"logo_link";s:19:"https://jenkins.io/";s:4:"logo";a:1:{s:35:"user/pages/01.home/jenkins logo.png";a:4:{s:4:"name";s:16:"jenkins logo.png";s:4:"type";s:9:"image/png";s:4:"size";i:39088;s:4:"path";s:35:"user/pages/01.home/jenkins logo.png";}}}i:2;a:3:{s:8:"logo_alt";s:6:"Docker";s:9:"logo_link";s:17:"http://docker.com";s:4:"logo";a:1:{s:47:"user/pages/01.home/docker_twitter_share_new.png";a:4:{s:4:"name";s:28:"docker_twitter_share_new.png";s:4:"type";s:9:"image/png";s:4:"size";i:17530;s:4:"path";s:47:"user/pages/01.home/docker_twitter_share_new.png";}}}i:3;a:3:{s:8:"logo_alt";s:7:"Laravel";s:9:"logo_link";s:20:"https://laravel.com/";s:4:"logo";a:1:{s:35:"user/pages/01.home/laravel-logo.png";a:4:{s:4:"name";s:16:"laravel-logo.png";s:4:"type";s:9:"image/png";s:4:"size";i:7652;s:4:"path";s:35:"user/pages/01.home/laravel-logo.png";}}}i:4;a:3:{s:8:"logo_alt";s:7:"Symfony";s:9:"logo_link";s:20:"https://symfony.com/";s:4:"logo";a:1:{s:39:"user/pages/01.home/symfony_black_02.png";a:4:{s:4:"name";s:20:"symfony_black_02.png";s:4:"type";s:9:"image/png";s:4:"size";i:12005;s:4:"path";s:39:"user/pages/01.home/symfony_black_02.png";}}}i:5;a:3:{s:8:"logo_alt";s:6:"Joomla";s:9:"logo_link";s:21:"http://www.joomla.org";s:4:"logo";a:1:{s:42:"user/pages/01.home/joomla-logo-300x205.png";a:4:{s:4:"name";s:23:"joomla-logo-300x205.png";s:4:"type";s:9:"image/png";s:4:"size";i:18961;s:4:"path";s:42:"user/pages/01.home/joomla-logo-300x205.png";}}}i:6;a:3:{s:8:"logo_alt";s:3:"aws";s:9:"logo_link";s:23:"https://aws.amazon.com/";s:4:"logo";a:1:{s:37:"user/pages/01.home/icon-cloud-aws.png";a:4:{s:4:"name";s:18:"icon-cloud-aws.png";s:4:"type";s:9:"image/png";s:4:"size";i:68456;s:4:"path";s:37:"user/pages/01.home/icon-cloud-aws.png";}}}i:7;a:3:{s:8:"logo_alt";s:8:"composer";s:9:"logo_link";s:24:"https://getcomposer.org/";s:4:"logo";a:1:{s:26:"user/pages/01.home/php.png";a:4:{s:4:"name";s:7:"php.png";s:4:"type";s:9:"image/png";s:4:"size";i:23547;s:4:"path";s:26:"user/pages/01.home/php.png";}}}}s:7:"section";a:3:{s:11:"customtitle";s:6:"Resume";s:11:"downloadbtn";s:11:"View Resume";s:8:"download";s:96:"https://docs.google.com/document/d/1pq5M-yYZo-kMkpwJQMOXDFD3eKjbGQgXDosdYkRzAW0/edit?usp=sharing";}s:3:"job";a:5:{i:0;a:4:{s:4:"date";s:24:"September 2015 - Present";s:7:"company";s:16:"Advanced Medical";s:5:"title";s:17:"Software Engineer";s:11:"description";s:596:"Worked on maintaining a large perl based code base which is a legacy application. The application is used by all internal employees of around 200 active daily users. I've also been responsible for creating next generation applications in PHP. These applications relied heavily on Laravel and featured RESTful APIs. Techniques employed in development was composer based library development, unit testing, load testing and deployment pipelines. Other development projects have had me as a team lead working with contractors to create a laravel API backend with a React based front end application. ";}i:1;a:4:{s:4:"date";s:30:"February 2015 - September 2015";s:7:"company";s:12:"WebSpark Inc";s:5:"title";s:13:"PHP Developer";s:11:"description";s:407:"Worked on a major marketing automation platform called Mautic (mautic.org). Product was heavily built upon Symfony. My role was to write, test, and release new features on the platform. Also worked on symfony based php projects as a project manager and lead developer. Lead a team of developers, designed wireframes, write specifications, held client meetings, and set timelines and goals for deliverables. ";}i:2;a:4:{s:4:"date";s:30:"February 2015 - September 2015";s:7:"company";s:40:"Cohesive Websites, Servant Holdings, LLC";s:5:"title";s:25:"PHP Developer, Contractor";s:11:"description";s:137:"Consulted on projects that I had developed as a full time employee. Updated staff,\r\n assisted during emergencies and guided transitioning.";}i:3;a:4:{s:4:"date";s:29:"February 2013 - February 2015";s:7:"company";s:40:"Cohesive Websites, Servant Holdings, LLC";s:5:"title";s:14:"Lead Developer";s:11:"description";s:203:"Managed many projects as lead developer, putting into place coding style practices, decision making on project resources and allocations, and actively developing applications with modern best practices. ";}i:4;a:3:{s:4:"date";s:25:"June 2006 - February 2013";s:7:"company";s:20:"s-go Consulting, LLC";s:5:"title";s:9:"Developer";}}s:7:"schools";a:2:{i:0;a:3:{s:4:"date";s:11:"Spring 2008";s:4:"name";s:10:"SUNY Delhi";s:6:"degree";s:35:"Bachelor of Business Administration";}i:1;a:3:{s:4:"date";s:11:"Spring 2006";s:4:"name";s:35:"Tompkins Cortland Community College";s:6:"degree";s:10:"Web Design";}}}}s:14:"\x00*\x00frontmatter";s:9071:"title: Home\n resume:\n general:\n bgcolor: '#332A08'\n secondarycolor: '#A99D71'\n github: '0'\n github_link: 'http://www.github.com/drmmr763'\n github_text: Github\n styles: ".profile-pic {\r\n margin-bottom: -5em;\r\n margin-top: -2em;\r\n}"\n sidebar:\n name: CW\n subtitle: 'Software Engineer'\n nav:\n home: Home\n about: About\n resume: Resume\n social:\n twitter: 'http://www.twitter.com/drmmr763'\n linkedin: 'https://www.linkedin.com/in/chadwindnagle/'\n github: 'http://www.github.com/drmmr763'\n profile_img:\n user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png:\n name: chadwindnagle-pic-cropped-updated-3.png\n type: image/png\n size: 660748\n path: user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png\n home:\n fullname: 'Chad Windnagle'\n typedtitles: 'PHP Developer, Laravel Expert, AWS Expert, Software Engineer, Static Code Analysis, Code Reviews, Jenkins Pipeline, Git'\n email: drmmr763@gmail.com\n about:\n customtitle: 'About Me'\n subtitle: 'Software Engineer, Dev Ops'\n general_header: 'I''m dedicated software developer who has maintained legacy code bases and created new ones from scratch. I enjoy writing readable, reusable, and reliable code, working with great teams who have great taste, problem solving, and innovating while shipping tested, high quality code. '\n general_info: "As a teenager I've loved to learn and work with computers. I taught myself to program as a way to break the boredom. I soon realized that the world of programming was endless and this had a life changing impact on me. I went on to become an open source contributor from my parent's basement. I attended college to become a web developer. All the while I worked for a web design agency and continued to hone my skills and build my experience. \r\n\r\nSince my humble beginnings I've had the opportunity to share my passion with others and engage with companies in fields such as travel, health, automobile producers, the nuclear energy industry, and even some clients I can't even tell you about ;)\r\n\r\nI've been given the opportunity to speak to small and large audiences at software conferences about contributing to open source, self taught programming, and improving one's skill as an engineer. I've been passionate about code for over 10 years now, and I don't see that passion going away any time soon."\n skills:\n -\n title: 'Programming Languages'\n skillslist:\n -\n name: PHP\n description: 'php7, unit testing, composer'\n percentage: '99'\n -\n name: Javascript\n description: 'React, Vue, jQuery'\n percentage: '80'\n -\n name: Perl\n description: 'PMs, CGI, PL, Testing'\n percentage: '90'\n -\n title: 'Dev Ops'\n skillslist:\n -\n name: 'CI / CD'\n description: 'Jenkins, Atlassian Pipelines, TeamCity'\n percentage: '90'\n -\n name: Monitoring\n description: 'CloudWatch Monitoring & Alerts'\n percentage: '70'\n -\n name: Docker\n description: 'Custom Dockerfile, Docker Compose, AWS ECS'\n percentage: '80'\n tools:\n title: 'Tools & Platforms'\n tool:\n -\n logo_alt: Github\n logo_link: 'http://www.github.com/drmmr763'\n logo:\n user/pages/01.home/Octocat.png:\n name: Octocat.png\n type: image/png\n size: 2131769\n path: user/pages/01.home/Octocat.png\n -\n logo_alt: Jenkins\n logo_link: 'https://jenkins.io/'\n logo:\n 'user/pages/01.home/jenkins logo.png':\n name: 'jenkins logo.png'\n type: image/png\n size: 39088\n path: 'user/pages/01.home/jenkins logo.png'\n -\n logo_alt: Docker\n logo_link: 'http://docker.com'\n logo:\n user/pages/01.home/docker_twitter_share_new.png:\n name: docker_twitter_share_new.png\n type: image/png\n size: 17530\n path: user/pages/01.home/docker_twitter_share_new.png\n -\n logo_alt: Laravel\n logo_link: 'https://laravel.com/'\n logo:\n user/pages/01.home/laravel-logo.png:\n name: laravel-logo.png\n type: image/png\n size: 7652\n path: user/pages/01.home/laravel-logo.png\n -\n logo_alt: Symfony\n logo_link: 'https://symfony.com/'\n logo:\n user/pages/01.home/symfony_black_02.png:\n name: symfony_black_02.png\n type: image/png\n size: 12005\n path: user/pages/01.home/symfony_black_02.png\n -\n logo_alt: Joomla\n logo_link: 'http://www.joomla.org'\n logo:\n user/pages/01.home/joomla-logo-300x205.png:\n name: joomla-logo-300x205.png\n type: image/png\n size: 18961\n path: user/pages/01.home/joomla-logo-300x205.png\n -\n logo_alt: aws\n logo_link: 'https://aws.amazon.com/'\n logo:\n user/pages/01.home/icon-cloud-aws.png:\n name: icon-cloud-aws.png\n type: image/png\n size: 68456\n path: user/pages/01.home/icon-cloud-aws.png\n -\n logo_alt: composer\n logo_link: 'https://getcomposer.org/'\n logo:\n user/pages/01.home/php.png:\n name: php.png\n type: image/png\n size: 23547\n path: user/pages/01.home/php.png\n section:\n customtitle: Resume\n downloadbtn: 'View Resume'\n download: 'https://docs.google.com/document/d/1pq5M-yYZo-kMkpwJQMOXDFD3eKjbGQgXDosdYkRzAW0/edit?usp=sharing'\n job:\n -\n date: 'September 2015 - Present'\n company: 'Advanced Medical'\n title: 'Software Engineer'\n description: 'Worked on maintaining a large perl based code base which is a legacy application. The application is used by all internal employees of around 200 active daily users. I''ve also been responsible for creating next generation applications in PHP. These applications relied heavily on Laravel and featured RESTful APIs. Techniques employed in development was composer based library development, unit testing, load testing and deployment pipelines. Other development projects have had me as a team lead working with contractors to create a laravel API backend with a React based front end application. '\n -\n date: 'February 2015 - September 2015'\n company: 'WebSpark Inc'\n title: 'PHP Developer'\n description: 'Worked on a major marketing automation platform called Mautic (mautic.org). Product was heavily built upon Symfony. My role was to write, test, and release new features on the platform. Also worked on symfony based php projects as a project manager and lead developer. Lead a team of developers, designed wireframes, write specifications, held client meetings, and set timelines and goals for deliverables. '\n -\n date: 'February 2015 - September 2015'\n company: 'Cohesive Websites, Servant Holdings, LLC'\n title: 'PHP Developer, Contractor'\n description: "Consulted on projects that I had developed as a full time employee. Updated staff,\r\nassisted during emergencies and guided transitioning."\n -\n date: 'February 2013 - February 2015'\n company: 'Cohesive Websites, Servant Holdings, LLC'\n title: 'Lead Developer'\n description: 'Managed many projects as lead developer, putting into place coding style practices, decision making on project resources and allocations, and actively developing applications with modern best practices. '\n -\n date: 'June 2006 - February 2013'\n company: 's-go Consulting, LLC'\n title: Developer\n schools:\n -\n date: 'Spring 2008'\n name: 'SUNY Delhi'\n degree: 'Bachelor of Business Administration'\n -\n date: 'Spring 2006'\n name: 'Tompkins Cortland Community College'\n degree: 'Web Design'";s:11:"\x00*\x00language";N;s:10:"\x00*\x00content";N;s:15:"\x00*\x00content_meta";N;s:10:"\x00*\x00summary";N;s:14:"\x00*\x00raw_content";s:551:"# Hi, I'm Chad\n \n <div class="row">\n <div>\n <a href="/">\n <img src="/assets/chad-profile-pic.jpeg" />\n </a>\n </div>\n <div>\n <p>\n I’m known as an influencer in using open source technologies for solving real world problems. I’m a published developer who specializes in developing scalable, world-class applications. I use a number of programming languages and paradigms, and I enjoy leading teams who pursue excellence everyday as professional developers. Read More.\n </p>\n </div>\n </div>\n ";s:13:"\x00*\x00pagination";N;s:11:"\x00*\x00metadata";a:2:{s:9:"generator";a:2:{s:7:"content";s:7:"GravCMS";s:4:"name";s:9:"generator";}s:11:"description";a:2:{s:7:"content";s:97:"Chad Windnagle is a leading talent in software engineering, blogger and open source technologist.";s:4:"name";s:11:"description";}}s:8:"\x00*\x00title";s:4:"Home";s:12:"\x00*\x00max_count";N;s:7:"\x00*\x00menu";N;s:7:"\x00*\x00date";i:1536625514;s:13:"\x00*\x00dateformat";N;s:11:"\x00*\x00taxonomy";a:0:{}s:11:"\x00*\x00order_by";s:7:"default";s:12:"\x00*\x00order_dir";s:3:"asc";s:15:"\x00*\x00order_manual";N;s:10:"\x00*\x00modular";N;s:15:"\x00*\x00modular_twig";b:0;s:10:"\x00*\x00process";a:2:{s:8:"markdown";b:1;s:4:"twig";b:0;}s:15:"\x00*\x00summary_size";N;s:17:"\x00*\x00markdown_extra";N;s:7:"\x00*\x00etag";N;s:16:"\x00*\x00last_modified";N;s:13:"\x00*\x00home_route";s:5:"/home";s:18:"\x00*\x00hide_home_route";b:0;s:6:"\x00*\x00ssl";N;s:18:"\x00*\x00template_format";N;s:11:"\x00*\x00debugger";N;s:32:"\x00Grav\Common\Page\Page\x00_original";N;s:30:"\x00Grav\Common\Page\Page\x00_action";N;s:8:"\x00*\x00media";N;}}i:1;a:2:{s:5:"/home";s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";s:1:"/";s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";}i:2;a:2:{s:49:"/var/www/chadwindnagle.com/public_html/user/pages";a:1:{s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";a:1:{s:4:"slug";s:4:"home";}}s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";a:0:{}}i:3;a:0:{}i:4;a:1:{s:49:"/var/www/chadwindnagle.com/public_html/user/pages";a:1:{s:7:"default";a:1:{s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";a:1:{s:4:"slug";s:4:"home";}}}}} """
} fclose($resource); return $lifetime === 0 || $lifetime > time(); } /** * {@inheritdoc} */ protected function doSave($id, $data, $lifeTime = 0) { if ($lifeTime > 0) { $lifeTime = time() + $lifeTime; } $data = serialize($data); $filename = $this->getFilename($id); return $this->writeFile($filename, $lifeTime . PHP_EOL . $data); } }
"/var/www/chadwindnagle.com/public_html/cache/doctrine/53/672d32626563613863335b34643438353034393761623336366464666261643435303837626638643165625d5b315d.doctrinecache.data"
""" 1712245026\n a:5:{i:0;a:2:{s:49:"/var/www/chadwindnagle.com/public_html/user/pages";O:21:"Grav\Common\Page\Page":57:{s:7:"\x00*\x00name";N;s:9:"\x00*\x00folder";s:5:"pages";s:7:"\x00*\x00path";s:43:"/var/www/chadwindnagle.com/public_html/user";s:12:"\x00*\x00extension";s:3:".md";s:16:"\x00*\x00url_extension";N;s:5:"\x00*\x00id";s:33:"0701a28d17cb9209e5cc81a8851417fe4";s:9:"\x00*\x00parent";N;s:11:"\x00*\x00template";s:7:"default";s:10:"\x00*\x00expires";N;s:16:"\x00*\x00cache_control";N;s:10:"\x00*\x00visible";N;s:12:"\x00*\x00published";b:1;s:15:"\x00*\x00publish_date";N;s:17:"\x00*\x00unpublish_date";N;s:7:"\x00*\x00slug";N;s:8:"\x00*\x00route";N;s:12:"\x00*\x00raw_route";N;s:6:"\x00*\x00url";N;s:9:"\x00*\x00routes";N;s:11:"\x00*\x00routable";b:0;s:11:"\x00*\x00modified";i:0;s:11:"\x00*\x00redirect";N;s:15:"\x00*\x00external_url";N;s:8:"\x00*\x00items";N;s:9:"\x00*\x00header";N;s:14:"\x00*\x00frontmatter";N;s:11:"\x00*\x00language";N;s:10:"\x00*\x00content";N;s:15:"\x00*\x00content_meta";N;s:10:"\x00*\x00summary";N;s:14:"\x00*\x00raw_content";N;s:13:"\x00*\x00pagination";N;s:11:"\x00*\x00metadata";N;s:8:"\x00*\x00title";N;s:12:"\x00*\x00max_count";N;s:7:"\x00*\x00menu";N;s:7:"\x00*\x00date";N;s:13:"\x00*\x00dateformat";N;s:11:"\x00*\x00taxonomy";a:0:{}s:11:"\x00*\x00order_by";s:7:"default";s:12:"\x00*\x00order_dir";s:3:"asc";s:15:"\x00*\x00order_manual";N;s:10:"\x00*\x00modular";N;s:15:"\x00*\x00modular_twig";N;s:10:"\x00*\x00process";a:2:{s:8:"markdown";b:1;s:4:"twig";b:0;}s:15:"\x00*\x00summary_size";N;s:17:"\x00*\x00markdown_extra";N;s:7:"\x00*\x00etag";N;s:16:"\x00*\x00last_modified";N;s:13:"\x00*\x00home_route";N;s:18:"\x00*\x00hide_home_route";N;s:6:"\x00*\x00ssl";N;s:18:"\x00*\x00template_format";N;s:11:"\x00*\x00debugger";N;s:32:"\x00Grav\Common\Page\Page\x00_original";N;s:30:"\x00Grav\Common\Page\Page\x00_action";N;s:8:"\x00*\x00media";N;}s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";O:21:"Grav\Common\Page\Page":57:{s:7:"\x00*\x00name";s:10:"default.md";s:9:"\x00*\x00folder";s:7:"01.home";s:7:"\x00*\x00path";s:49:"/var/www/chadwindnagle.com/public_html/user/pages";s:12:"\x00*\x00extension";s:3:".md";s:16:"\x00*\x00url_extension";N;s:5:"\x00*\x00id";s:42:"153662551408f87a0bf1738ba13f0f31dfb4a58d42";s:9:"\x00*\x00parent";s:49:"/var/www/chadwindnagle.com/public_html/user/pages";s:11:"\x00*\x00template";s:7:"default";s:10:"\x00*\x00expires";N;s:16:"\x00*\x00cache_control";N;s:10:"\x00*\x00visible";b:1;s:12:"\x00*\x00published";b:1;s:15:"\x00*\x00publish_date";N;s:17:"\x00*\x00unpublish_date";N;s:7:"\x00*\x00slug";s:4:"home";s:8:"\x00*\x00route";s:1:"/";s:12:"\x00*\x00raw_route";s:5:"/home";s:6:"\x00*\x00url";N;s:9:"\x00*\x00routes";N;s:11:"\x00*\x00routable";b:1;s:11:"\x00*\x00modified";i:1536625514;s:11:"\x00*\x00redirect";N;s:15:"\x00*\x00external_url";N;s:8:"\x00*\x00items";N;s:9:"\x00*\x00header";O:8:"stdClass":2:{s:5:"title";s:4:"Home";s:6:"resume";a:10:{s:7:"general";a:6:{s:7:"bgcolor";s:7:"#332A08";s:14:"secondarycolor";s:7:"#A99D71";s:6:"github";s:1:"0";s:11:"github_link";s:30:"http://www.github.com/drmmr763";s:11:"github_text";s:6:"Github";s:6:"styles";s:66:".profile-pic {\r\n margin-bottom: -5em;\r\n margin-top: -2em;\r\n }";}s:7:"sidebar";a:5:{s:4:"name";s:2:"CW";s:8:"subtitle";s:17:"Software Engineer";s:3:"nav";a:3:{s:4:"home";s:4:"Home";s:5:"about";s:5:"About";s:6:"resume";s:6:"Resume";}s:6:"social";a:3:{s:7:"twitter";s:31:"http://www.twitter.com/drmmr763";s:8:"linkedin";s:42:"https://www.linkedin.com/in/chadwindnagle/";s:6:"github";s:30:"http://www.github.com/drmmr763";}s:11:"profile_img";a:1:{s:58:"user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png";a:4:{s:4:"name";s:39:"chadwindnagle-pic-cropped-updated-3.png";s:4:"type";s:9:"image/png";s:4:"size";i:660748;s:4:"path";s:58:"user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png";}}}s:4:"home";a:3:{s:8:"fullname";s:14:"Chad Windnagle";s:11:"typedtitles";s:119:"PHP Developer, Laravel Expert, AWS Expert, Software Engineer, Static Code Analysis, Code Reviews, Jenkins Pipeline, Git";s:5:"email";s:18:"drmmr763@gmail.com";}s:5:"about";a:4:{s:11:"customtitle";s:8:"About Me";s:8:"subtitle";s:26:"Software Engineer, Dev Ops";s:14:"general_header";s:281:"I'm dedicated software developer who has maintained legacy code bases and created new ones from scratch. I enjoy writing readable, reusable, and reliable code, working with great teams who have great taste, problem solving, and innovating while shipping tested, high quality code. ";s:12:"general_info";s:1002:"As a teenager I've loved to learn and work with computers. I taught myself to program as a way to break the boredom. I soon realized that the world of programming was endless and this had a life changing impact on me. I went on to become an open source contributor from my parent's basement. I attended college to become a web developer. All the while I worked for a web design agency and continued to hone my skills and build my experience. \r\n \r\n Since my humble beginnings I've had the opportunity to share my passion with others and engage with companies in fields such as travel, health, automobile producers, the nuclear energy industry, and even some clients I can't even tell you about ;)\r\n \r\n I've been given the opportunity to speak to small and large audiences at software conferences about contributing to open source, self taught programming, and improving one's skill as an engineer. I've been passionate about code for over 10 years now, and I don't see that passion going away any time soon.";}s:6:"skills";a:2:{i:0;a:2:{s:5:"title";s:21:"Programming Languages";s:10:"skillslist";a:3:{i:0;a:3:{s:4:"name";s:3:"PHP";s:11:"description";s:28:"php7, unit testing, composer";s:10:"percentage";s:2:"99";}i:1;a:3:{s:4:"name";s:10:"Javascript";s:11:"description";s:18:"React, Vue, jQuery";s:10:"percentage";s:2:"80";}i:2;a:3:{s:4:"name";s:4:"Perl";s:11:"description";s:21:"PMs, CGI, PL, Testing";s:10:"percentage";s:2:"90";}}}i:1;a:2:{s:5:"title";s:7:"Dev Ops";s:10:"skillslist";a:3:{i:0;a:3:{s:4:"name";s:7:"CI / CD";s:11:"description";s:38:"Jenkins, Atlassian Pipelines, TeamCity";s:10:"percentage";s:2:"90";}i:1;a:3:{s:4:"name";s:10:"Monitoring";s:11:"description";s:30:"CloudWatch Monitoring & Alerts";s:10:"percentage";s:2:"70";}i:2;a:3:{s:4:"name";s:6:"Docker";s:11:"description";s:42:"Custom Dockerfile, Docker Compose, AWS ECS";s:10:"percentage";s:2:"80";}}}}s:5:"tools";a:1:{s:5:"title";s:17:"Tools & Platforms";}s:4:"tool";a:8:{i:0;a:3:{s:8:"logo_alt";s:6:"Github";s:9:"logo_link";s:30:"http://www.github.com/drmmr763";s:4:"logo";a:1:{s:30:"user/pages/01.home/Octocat.png";a:4:{s:4:"name";s:11:"Octocat.png";s:4:"type";s:9:"image/png";s:4:"size";i:2131769;s:4:"path";s:30:"user/pages/01.home/Octocat.png";}}}i:1;a:3:{s:8:"logo_alt";s:7:"Jenkins";s:9:"logo_link";s:19:"https://jenkins.io/";s:4:"logo";a:1:{s:35:"user/pages/01.home/jenkins logo.png";a:4:{s:4:"name";s:16:"jenkins logo.png";s:4:"type";s:9:"image/png";s:4:"size";i:39088;s:4:"path";s:35:"user/pages/01.home/jenkins logo.png";}}}i:2;a:3:{s:8:"logo_alt";s:6:"Docker";s:9:"logo_link";s:17:"http://docker.com";s:4:"logo";a:1:{s:47:"user/pages/01.home/docker_twitter_share_new.png";a:4:{s:4:"name";s:28:"docker_twitter_share_new.png";s:4:"type";s:9:"image/png";s:4:"size";i:17530;s:4:"path";s:47:"user/pages/01.home/docker_twitter_share_new.png";}}}i:3;a:3:{s:8:"logo_alt";s:7:"Laravel";s:9:"logo_link";s:20:"https://laravel.com/";s:4:"logo";a:1:{s:35:"user/pages/01.home/laravel-logo.png";a:4:{s:4:"name";s:16:"laravel-logo.png";s:4:"type";s:9:"image/png";s:4:"size";i:7652;s:4:"path";s:35:"user/pages/01.home/laravel-logo.png";}}}i:4;a:3:{s:8:"logo_alt";s:7:"Symfony";s:9:"logo_link";s:20:"https://symfony.com/";s:4:"logo";a:1:{s:39:"user/pages/01.home/symfony_black_02.png";a:4:{s:4:"name";s:20:"symfony_black_02.png";s:4:"type";s:9:"image/png";s:4:"size";i:12005;s:4:"path";s:39:"user/pages/01.home/symfony_black_02.png";}}}i:5;a:3:{s:8:"logo_alt";s:6:"Joomla";s:9:"logo_link";s:21:"http://www.joomla.org";s:4:"logo";a:1:{s:42:"user/pages/01.home/joomla-logo-300x205.png";a:4:{s:4:"name";s:23:"joomla-logo-300x205.png";s:4:"type";s:9:"image/png";s:4:"size";i:18961;s:4:"path";s:42:"user/pages/01.home/joomla-logo-300x205.png";}}}i:6;a:3:{s:8:"logo_alt";s:3:"aws";s:9:"logo_link";s:23:"https://aws.amazon.com/";s:4:"logo";a:1:{s:37:"user/pages/01.home/icon-cloud-aws.png";a:4:{s:4:"name";s:18:"icon-cloud-aws.png";s:4:"type";s:9:"image/png";s:4:"size";i:68456;s:4:"path";s:37:"user/pages/01.home/icon-cloud-aws.png";}}}i:7;a:3:{s:8:"logo_alt";s:8:"composer";s:9:"logo_link";s:24:"https://getcomposer.org/";s:4:"logo";a:1:{s:26:"user/pages/01.home/php.png";a:4:{s:4:"name";s:7:"php.png";s:4:"type";s:9:"image/png";s:4:"size";i:23547;s:4:"path";s:26:"user/pages/01.home/php.png";}}}}s:7:"section";a:3:{s:11:"customtitle";s:6:"Resume";s:11:"downloadbtn";s:11:"View Resume";s:8:"download";s:96:"https://docs.google.com/document/d/1pq5M-yYZo-kMkpwJQMOXDFD3eKjbGQgXDosdYkRzAW0/edit?usp=sharing";}s:3:"job";a:5:{i:0;a:4:{s:4:"date";s:24:"September 2015 - Present";s:7:"company";s:16:"Advanced Medical";s:5:"title";s:17:"Software Engineer";s:11:"description";s:596:"Worked on maintaining a large perl based code base which is a legacy application. The application is used by all internal employees of around 200 active daily users. I've also been responsible for creating next generation applications in PHP. These applications relied heavily on Laravel and featured RESTful APIs. Techniques employed in development was composer based library development, unit testing, load testing and deployment pipelines. Other development projects have had me as a team lead working with contractors to create a laravel API backend with a React based front end application. ";}i:1;a:4:{s:4:"date";s:30:"February 2015 - September 2015";s:7:"company";s:12:"WebSpark Inc";s:5:"title";s:13:"PHP Developer";s:11:"description";s:407:"Worked on a major marketing automation platform called Mautic (mautic.org). Product was heavily built upon Symfony. My role was to write, test, and release new features on the platform. Also worked on symfony based php projects as a project manager and lead developer. Lead a team of developers, designed wireframes, write specifications, held client meetings, and set timelines and goals for deliverables. ";}i:2;a:4:{s:4:"date";s:30:"February 2015 - September 2015";s:7:"company";s:40:"Cohesive Websites, Servant Holdings, LLC";s:5:"title";s:25:"PHP Developer, Contractor";s:11:"description";s:137:"Consulted on projects that I had developed as a full time employee. Updated staff,\r\n assisted during emergencies and guided transitioning.";}i:3;a:4:{s:4:"date";s:29:"February 2013 - February 2015";s:7:"company";s:40:"Cohesive Websites, Servant Holdings, LLC";s:5:"title";s:14:"Lead Developer";s:11:"description";s:203:"Managed many projects as lead developer, putting into place coding style practices, decision making on project resources and allocations, and actively developing applications with modern best practices. ";}i:4;a:3:{s:4:"date";s:25:"June 2006 - February 2013";s:7:"company";s:20:"s-go Consulting, LLC";s:5:"title";s:9:"Developer";}}s:7:"schools";a:2:{i:0;a:3:{s:4:"date";s:11:"Spring 2008";s:4:"name";s:10:"SUNY Delhi";s:6:"degree";s:35:"Bachelor of Business Administration";}i:1;a:3:{s:4:"date";s:11:"Spring 2006";s:4:"name";s:35:"Tompkins Cortland Community College";s:6:"degree";s:10:"Web Design";}}}}s:14:"\x00*\x00frontmatter";s:9071:"title: Home\n resume:\n general:\n bgcolor: '#332A08'\n secondarycolor: '#A99D71'\n github: '0'\n github_link: 'http://www.github.com/drmmr763'\n github_text: Github\n styles: ".profile-pic {\r\n margin-bottom: -5em;\r\n margin-top: -2em;\r\n}"\n sidebar:\n name: CW\n subtitle: 'Software Engineer'\n nav:\n home: Home\n about: About\n resume: Resume\n social:\n twitter: 'http://www.twitter.com/drmmr763'\n linkedin: 'https://www.linkedin.com/in/chadwindnagle/'\n github: 'http://www.github.com/drmmr763'\n profile_img:\n user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png:\n name: chadwindnagle-pic-cropped-updated-3.png\n type: image/png\n size: 660748\n path: user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png\n home:\n fullname: 'Chad Windnagle'\n typedtitles: 'PHP Developer, Laravel Expert, AWS Expert, Software Engineer, Static Code Analysis, Code Reviews, Jenkins Pipeline, Git'\n email: drmmr763@gmail.com\n about:\n customtitle: 'About Me'\n subtitle: 'Software Engineer, Dev Ops'\n general_header: 'I''m dedicated software developer who has maintained legacy code bases and created new ones from scratch. I enjoy writing readable, reusable, and reliable code, working with great teams who have great taste, problem solving, and innovating while shipping tested, high quality code. '\n general_info: "As a teenager I've loved to learn and work with computers. I taught myself to program as a way to break the boredom. I soon realized that the world of programming was endless and this had a life changing impact on me. I went on to become an open source contributor from my parent's basement. I attended college to become a web developer. All the while I worked for a web design agency and continued to hone my skills and build my experience. \r\n\r\nSince my humble beginnings I've had the opportunity to share my passion with others and engage with companies in fields such as travel, health, automobile producers, the nuclear energy industry, and even some clients I can't even tell you about ;)\r\n\r\nI've been given the opportunity to speak to small and large audiences at software conferences about contributing to open source, self taught programming, and improving one's skill as an engineer. I've been passionate about code for over 10 years now, and I don't see that passion going away any time soon."\n skills:\n -\n title: 'Programming Languages'\n skillslist:\n -\n name: PHP\n description: 'php7, unit testing, composer'\n percentage: '99'\n -\n name: Javascript\n description: 'React, Vue, jQuery'\n percentage: '80'\n -\n name: Perl\n description: 'PMs, CGI, PL, Testing'\n percentage: '90'\n -\n title: 'Dev Ops'\n skillslist:\n -\n name: 'CI / CD'\n description: 'Jenkins, Atlassian Pipelines, TeamCity'\n percentage: '90'\n -\n name: Monitoring\n description: 'CloudWatch Monitoring & Alerts'\n percentage: '70'\n -\n name: Docker\n description: 'Custom Dockerfile, Docker Compose, AWS ECS'\n percentage: '80'\n tools:\n title: 'Tools & Platforms'\n tool:\n -\n logo_alt: Github\n logo_link: 'http://www.github.com/drmmr763'\n logo:\n user/pages/01.home/Octocat.png:\n name: Octocat.png\n type: image/png\n size: 2131769\n path: user/pages/01.home/Octocat.png\n -\n logo_alt: Jenkins\n logo_link: 'https://jenkins.io/'\n logo:\n 'user/pages/01.home/jenkins logo.png':\n name: 'jenkins logo.png'\n type: image/png\n size: 39088\n path: 'user/pages/01.home/jenkins logo.png'\n -\n logo_alt: Docker\n logo_link: 'http://docker.com'\n logo:\n user/pages/01.home/docker_twitter_share_new.png:\n name: docker_twitter_share_new.png\n type: image/png\n size: 17530\n path: user/pages/01.home/docker_twitter_share_new.png\n -\n logo_alt: Laravel\n logo_link: 'https://laravel.com/'\n logo:\n user/pages/01.home/laravel-logo.png:\n name: laravel-logo.png\n type: image/png\n size: 7652\n path: user/pages/01.home/laravel-logo.png\n -\n logo_alt: Symfony\n logo_link: 'https://symfony.com/'\n logo:\n user/pages/01.home/symfony_black_02.png:\n name: symfony_black_02.png\n type: image/png\n size: 12005\n path: user/pages/01.home/symfony_black_02.png\n -\n logo_alt: Joomla\n logo_link: 'http://www.joomla.org'\n logo:\n user/pages/01.home/joomla-logo-300x205.png:\n name: joomla-logo-300x205.png\n type: image/png\n size: 18961\n path: user/pages/01.home/joomla-logo-300x205.png\n -\n logo_alt: aws\n logo_link: 'https://aws.amazon.com/'\n logo:\n user/pages/01.home/icon-cloud-aws.png:\n name: icon-cloud-aws.png\n type: image/png\n size: 68456\n path: user/pages/01.home/icon-cloud-aws.png\n -\n logo_alt: composer\n logo_link: 'https://getcomposer.org/'\n logo:\n user/pages/01.home/php.png:\n name: php.png\n type: image/png\n size: 23547\n path: user/pages/01.home/php.png\n section:\n customtitle: Resume\n downloadbtn: 'View Resume'\n download: 'https://docs.google.com/document/d/1pq5M-yYZo-kMkpwJQMOXDFD3eKjbGQgXDosdYkRzAW0/edit?usp=sharing'\n job:\n -\n date: 'September 2015 - Present'\n company: 'Advanced Medical'\n title: 'Software Engineer'\n description: 'Worked on maintaining a large perl based code base which is a legacy application. The application is used by all internal employees of around 200 active daily users. I''ve also been responsible for creating next generation applications in PHP. These applications relied heavily on Laravel and featured RESTful APIs. Techniques employed in development was composer based library development, unit testing, load testing and deployment pipelines. Other development projects have had me as a team lead working with contractors to create a laravel API backend with a React based front end application. '\n -\n date: 'February 2015 - September 2015'\n company: 'WebSpark Inc'\n title: 'PHP Developer'\n description: 'Worked on a major marketing automation platform called Mautic (mautic.org). Product was heavily built upon Symfony. My role was to write, test, and release new features on the platform. Also worked on symfony based php projects as a project manager and lead developer. Lead a team of developers, designed wireframes, write specifications, held client meetings, and set timelines and goals for deliverables. '\n -\n date: 'February 2015 - September 2015'\n company: 'Cohesive Websites, Servant Holdings, LLC'\n title: 'PHP Developer, Contractor'\n description: "Consulted on projects that I had developed as a full time employee. Updated staff,\r\nassisted during emergencies and guided transitioning."\n -\n date: 'February 2013 - February 2015'\n company: 'Cohesive Websites, Servant Holdings, LLC'\n title: 'Lead Developer'\n description: 'Managed many projects as lead developer, putting into place coding style practices, decision making on project resources and allocations, and actively developing applications with modern best practices. '\n -\n date: 'June 2006 - February 2013'\n company: 's-go Consulting, LLC'\n title: Developer\n schools:\n -\n date: 'Spring 2008'\n name: 'SUNY Delhi'\n degree: 'Bachelor of Business Administration'\n -\n date: 'Spring 2006'\n name: 'Tompkins Cortland Community College'\n degree: 'Web Design'";s:11:"\x00*\x00language";N;s:10:"\x00*\x00content";N;s:15:"\x00*\x00content_meta";N;s:10:"\x00*\x00summary";N;s:14:"\x00*\x00raw_content";s:551:"# Hi, I'm Chad\n \n <div class="row">\n <div>\n <a href="/">\n <img src="/assets/chad-profile-pic.jpeg" />\n </a>\n </div>\n <div>\n <p>\n I’m known as an influencer in using open source technologies for solving real world problems. I’m a published developer who specializes in developing scalable, world-class applications. I use a number of programming languages and paradigms, and I enjoy leading teams who pursue excellence everyday as professional developers. Read More.\n </p>\n </div>\n </div>\n ";s:13:"\x00*\x00pagination";N;s:11:"\x00*\x00metadata";a:2:{s:9:"generator";a:2:{s:7:"content";s:7:"GravCMS";s:4:"name";s:9:"generator";}s:11:"description";a:2:{s:7:"content";s:97:"Chad Windnagle is a leading talent in software engineering, blogger and open source technologist.";s:4:"name";s:11:"description";}}s:8:"\x00*\x00title";s:4:"Home";s:12:"\x00*\x00max_count";N;s:7:"\x00*\x00menu";N;s:7:"\x00*\x00date";i:1536625514;s:13:"\x00*\x00dateformat";N;s:11:"\x00*\x00taxonomy";a:0:{}s:11:"\x00*\x00order_by";s:7:"default";s:12:"\x00*\x00order_dir";s:3:"asc";s:15:"\x00*\x00order_manual";N;s:10:"\x00*\x00modular";N;s:15:"\x00*\x00modular_twig";b:0;s:10:"\x00*\x00process";a:2:{s:8:"markdown";b:1;s:4:"twig";b:0;}s:15:"\x00*\x00summary_size";N;s:17:"\x00*\x00markdown_extra";N;s:7:"\x00*\x00etag";N;s:16:"\x00*\x00last_modified";N;s:13:"\x00*\x00home_route";s:5:"/home";s:18:"\x00*\x00hide_home_route";b:0;s:6:"\x00*\x00ssl";N;s:18:"\x00*\x00template_format";N;s:11:"\x00*\x00debugger";N;s:32:"\x00Grav\Common\Page\Page\x00_original";N;s:30:"\x00Grav\Common\Page\Page\x00_action";N;s:8:"\x00*\x00media";N;}}i:1;a:2:{s:5:"/home";s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";s:1:"/";s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";}i:2;a:2:{s:49:"/var/www/chadwindnagle.com/public_html/user/pages";a:1:{s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";a:1:{s:4:"slug";s:4:"home";}}s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";a:0:{}}i:3;a:0:{}i:4;a:1:{s:49:"/var/www/chadwindnagle.com/public_html/user/pages";a:1:{s:7:"default";a:1:{s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";a:1:{s:4:"slug";s:4:"home";}}}}} """
$namespacedKeysAndValues[$this->getNamespacedId($key)] = $value; } return $this->doSaveMultiple($namespacedKeysAndValues, $lifetime); } /** * {@inheritdoc} */ public function contains($id) { return $this->doContains($this->getNamespacedId($id)); } /** * {@inheritdoc} */ public function save($id, $data, $lifeTime = 0) { return $this->doSave($this->getNamespacedId($id), $data, $lifeTime); } /** * {@inheritdoc} */ public function delete($id) { return $this->doDelete($this->getNamespacedId($id)); } /** * {@inheritdoc} */ public function getStats() { return $this->doGetStats(); } /** * {@inheritDoc}
"g-2beca8c3[4d4850497ab366ddfbad45087bf8d1eb][1]"
""" a:5:{i:0;a:2:{s:49:"/var/www/chadwindnagle.com/public_html/user/pages";O:21:"Grav\Common\Page\Page":57:{s:7:"\x00*\x00name";N;s:9:"\x00*\x00folder";s:5:"pages";s:7:"\x00*\x00path";s:43:"/var/www/chadwindnagle.com/public_html/user";s:12:"\x00*\x00extension";s:3:".md";s:16:"\x00*\x00url_extension";N;s:5:"\x00*\x00id";s:33:"0701a28d17cb9209e5cc81a8851417fe4";s:9:"\x00*\x00parent";N;s:11:"\x00*\x00template";s:7:"default";s:10:"\x00*\x00expires";N;s:16:"\x00*\x00cache_control";N;s:10:"\x00*\x00visible";N;s:12:"\x00*\x00published";b:1;s:15:"\x00*\x00publish_date";N;s:17:"\x00*\x00unpublish_date";N;s:7:"\x00*\x00slug";N;s:8:"\x00*\x00route";N;s:12:"\x00*\x00raw_route";N;s:6:"\x00*\x00url";N;s:9:"\x00*\x00routes";N;s:11:"\x00*\x00routable";b:0;s:11:"\x00*\x00modified";i:0;s:11:"\x00*\x00redirect";N;s:15:"\x00*\x00external_url";N;s:8:"\x00*\x00items";N;s:9:"\x00*\x00header";N;s:14:"\x00*\x00frontmatter";N;s:11:"\x00*\x00language";N;s:10:"\x00*\x00content";N;s:15:"\x00*\x00content_meta";N;s:10:"\x00*\x00summary";N;s:14:"\x00*\x00raw_content";N;s:13:"\x00*\x00pagination";N;s:11:"\x00*\x00metadata";N;s:8:"\x00*\x00title";N;s:12:"\x00*\x00max_count";N;s:7:"\x00*\x00menu";N;s:7:"\x00*\x00date";N;s:13:"\x00*\x00dateformat";N;s:11:"\x00*\x00taxonomy";a:0:{}s:11:"\x00*\x00order_by";s:7:"default";s:12:"\x00*\x00order_dir";s:3:"asc";s:15:"\x00*\x00order_manual";N;s:10:"\x00*\x00modular";N;s:15:"\x00*\x00modular_twig";N;s:10:"\x00*\x00process";a:2:{s:8:"markdown";b:1;s:4:"twig";b:0;}s:15:"\x00*\x00summary_size";N;s:17:"\x00*\x00markdown_extra";N;s:7:"\x00*\x00etag";N;s:16:"\x00*\x00last_modified";N;s:13:"\x00*\x00home_route";N;s:18:"\x00*\x00hide_home_route";N;s:6:"\x00*\x00ssl";N;s:18:"\x00*\x00template_format";N;s:11:"\x00*\x00debugger";N;s:32:"\x00Grav\Common\Page\Page\x00_original";N;s:30:"\x00Grav\Common\Page\Page\x00_action";N;s:8:"\x00*\x00media";N;}s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";O:21:"Grav\Common\Page\Page":57:{s:7:"\x00*\x00name";s:10:"default.md";s:9:"\x00*\x00folder";s:7:"01.home";s:7:"\x00*\x00path";s:49:"/var/www/chadwindnagle.com/public_html/user/pages";s:12:"\x00*\x00extension";s:3:".md";s:16:"\x00*\x00url_extension";N;s:5:"\x00*\x00id";s:42:"153662551408f87a0bf1738ba13f0f31dfb4a58d42";s:9:"\x00*\x00parent";s:49:"/var/www/chadwindnagle.com/public_html/user/pages";s:11:"\x00*\x00template";s:7:"default";s:10:"\x00*\x00expires";N;s:16:"\x00*\x00cache_control";N;s:10:"\x00*\x00visible";b:1;s:12:"\x00*\x00published";b:1;s:15:"\x00*\x00publish_date";N;s:17:"\x00*\x00unpublish_date";N;s:7:"\x00*\x00slug";s:4:"home";s:8:"\x00*\x00route";s:1:"/";s:12:"\x00*\x00raw_route";s:5:"/home";s:6:"\x00*\x00url";N;s:9:"\x00*\x00routes";N;s:11:"\x00*\x00routable";b:1;s:11:"\x00*\x00modified";i:1536625514;s:11:"\x00*\x00redirect";N;s:15:"\x00*\x00external_url";N;s:8:"\x00*\x00items";N;s:9:"\x00*\x00header";O:8:"stdClass":2:{s:5:"title";s:4:"Home";s:6:"resume";a:10:{s:7:"general";a:6:{s:7:"bgcolor";s:7:"#332A08";s:14:"secondarycolor";s:7:"#A99D71";s:6:"github";s:1:"0";s:11:"github_link";s:30:"http://www.github.com/drmmr763";s:11:"github_text";s:6:"Github";s:6:"styles";s:66:".profile-pic {\r\n margin-bottom: -5em;\r\n margin-top: -2em;\r\n }";}s:7:"sidebar";a:5:{s:4:"name";s:2:"CW";s:8:"subtitle";s:17:"Software Engineer";s:3:"nav";a:3:{s:4:"home";s:4:"Home";s:5:"about";s:5:"About";s:6:"resume";s:6:"Resume";}s:6:"social";a:3:{s:7:"twitter";s:31:"http://www.twitter.com/drmmr763";s:8:"linkedin";s:42:"https://www.linkedin.com/in/chadwindnagle/";s:6:"github";s:30:"http://www.github.com/drmmr763";}s:11:"profile_img";a:1:{s:58:"user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png";a:4:{s:4:"name";s:39:"chadwindnagle-pic-cropped-updated-3.png";s:4:"type";s:9:"image/png";s:4:"size";i:660748;s:4:"path";s:58:"user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png";}}}s:4:"home";a:3:{s:8:"fullname";s:14:"Chad Windnagle";s:11:"typedtitles";s:119:"PHP Developer, Laravel Expert, AWS Expert, Software Engineer, Static Code Analysis, Code Reviews, Jenkins Pipeline, Git";s:5:"email";s:18:"drmmr763@gmail.com";}s:5:"about";a:4:{s:11:"customtitle";s:8:"About Me";s:8:"subtitle";s:26:"Software Engineer, Dev Ops";s:14:"general_header";s:281:"I'm dedicated software developer who has maintained legacy code bases and created new ones from scratch. I enjoy writing readable, reusable, and reliable code, working with great teams who have great taste, problem solving, and innovating while shipping tested, high quality code. ";s:12:"general_info";s:1002:"As a teenager I've loved to learn and work with computers. I taught myself to program as a way to break the boredom. I soon realized that the world of programming was endless and this had a life changing impact on me. I went on to become an open source contributor from my parent's basement. I attended college to become a web developer. All the while I worked for a web design agency and continued to hone my skills and build my experience. \r\n \r\n Since my humble beginnings I've had the opportunity to share my passion with others and engage with companies in fields such as travel, health, automobile producers, the nuclear energy industry, and even some clients I can't even tell you about ;)\r\n \r\n I've been given the opportunity to speak to small and large audiences at software conferences about contributing to open source, self taught programming, and improving one's skill as an engineer. I've been passionate about code for over 10 years now, and I don't see that passion going away any time soon.";}s:6:"skills";a:2:{i:0;a:2:{s:5:"title";s:21:"Programming Languages";s:10:"skillslist";a:3:{i:0;a:3:{s:4:"name";s:3:"PHP";s:11:"description";s:28:"php7, unit testing, composer";s:10:"percentage";s:2:"99";}i:1;a:3:{s:4:"name";s:10:"Javascript";s:11:"description";s:18:"React, Vue, jQuery";s:10:"percentage";s:2:"80";}i:2;a:3:{s:4:"name";s:4:"Perl";s:11:"description";s:21:"PMs, CGI, PL, Testing";s:10:"percentage";s:2:"90";}}}i:1;a:2:{s:5:"title";s:7:"Dev Ops";s:10:"skillslist";a:3:{i:0;a:3:{s:4:"name";s:7:"CI / CD";s:11:"description";s:38:"Jenkins, Atlassian Pipelines, TeamCity";s:10:"percentage";s:2:"90";}i:1;a:3:{s:4:"name";s:10:"Monitoring";s:11:"description";s:30:"CloudWatch Monitoring & Alerts";s:10:"percentage";s:2:"70";}i:2;a:3:{s:4:"name";s:6:"Docker";s:11:"description";s:42:"Custom Dockerfile, Docker Compose, AWS ECS";s:10:"percentage";s:2:"80";}}}}s:5:"tools";a:1:{s:5:"title";s:17:"Tools & Platforms";}s:4:"tool";a:8:{i:0;a:3:{s:8:"logo_alt";s:6:"Github";s:9:"logo_link";s:30:"http://www.github.com/drmmr763";s:4:"logo";a:1:{s:30:"user/pages/01.home/Octocat.png";a:4:{s:4:"name";s:11:"Octocat.png";s:4:"type";s:9:"image/png";s:4:"size";i:2131769;s:4:"path";s:30:"user/pages/01.home/Octocat.png";}}}i:1;a:3:{s:8:"logo_alt";s:7:"Jenkins";s:9:"logo_link";s:19:"https://jenkins.io/";s:4:"logo";a:1:{s:35:"user/pages/01.home/jenkins logo.png";a:4:{s:4:"name";s:16:"jenkins logo.png";s:4:"type";s:9:"image/png";s:4:"size";i:39088;s:4:"path";s:35:"user/pages/01.home/jenkins logo.png";}}}i:2;a:3:{s:8:"logo_alt";s:6:"Docker";s:9:"logo_link";s:17:"http://docker.com";s:4:"logo";a:1:{s:47:"user/pages/01.home/docker_twitter_share_new.png";a:4:{s:4:"name";s:28:"docker_twitter_share_new.png";s:4:"type";s:9:"image/png";s:4:"size";i:17530;s:4:"path";s:47:"user/pages/01.home/docker_twitter_share_new.png";}}}i:3;a:3:{s:8:"logo_alt";s:7:"Laravel";s:9:"logo_link";s:20:"https://laravel.com/";s:4:"logo";a:1:{s:35:"user/pages/01.home/laravel-logo.png";a:4:{s:4:"name";s:16:"laravel-logo.png";s:4:"type";s:9:"image/png";s:4:"size";i:7652;s:4:"path";s:35:"user/pages/01.home/laravel-logo.png";}}}i:4;a:3:{s:8:"logo_alt";s:7:"Symfony";s:9:"logo_link";s:20:"https://symfony.com/";s:4:"logo";a:1:{s:39:"user/pages/01.home/symfony_black_02.png";a:4:{s:4:"name";s:20:"symfony_black_02.png";s:4:"type";s:9:"image/png";s:4:"size";i:12005;s:4:"path";s:39:"user/pages/01.home/symfony_black_02.png";}}}i:5;a:3:{s:8:"logo_alt";s:6:"Joomla";s:9:"logo_link";s:21:"http://www.joomla.org";s:4:"logo";a:1:{s:42:"user/pages/01.home/joomla-logo-300x205.png";a:4:{s:4:"name";s:23:"joomla-logo-300x205.png";s:4:"type";s:9:"image/png";s:4:"size";i:18961;s:4:"path";s:42:"user/pages/01.home/joomla-logo-300x205.png";}}}i:6;a:3:{s:8:"logo_alt";s:3:"aws";s:9:"logo_link";s:23:"https://aws.amazon.com/";s:4:"logo";a:1:{s:37:"user/pages/01.home/icon-cloud-aws.png";a:4:{s:4:"name";s:18:"icon-cloud-aws.png";s:4:"type";s:9:"image/png";s:4:"size";i:68456;s:4:"path";s:37:"user/pages/01.home/icon-cloud-aws.png";}}}i:7;a:3:{s:8:"logo_alt";s:8:"composer";s:9:"logo_link";s:24:"https://getcomposer.org/";s:4:"logo";a:1:{s:26:"user/pages/01.home/php.png";a:4:{s:4:"name";s:7:"php.png";s:4:"type";s:9:"image/png";s:4:"size";i:23547;s:4:"path";s:26:"user/pages/01.home/php.png";}}}}s:7:"section";a:3:{s:11:"customtitle";s:6:"Resume";s:11:"downloadbtn";s:11:"View Resume";s:8:"download";s:96:"https://docs.google.com/document/d/1pq5M-yYZo-kMkpwJQMOXDFD3eKjbGQgXDosdYkRzAW0/edit?usp=sharing";}s:3:"job";a:5:{i:0;a:4:{s:4:"date";s:24:"September 2015 - Present";s:7:"company";s:16:"Advanced Medical";s:5:"title";s:17:"Software Engineer";s:11:"description";s:596:"Worked on maintaining a large perl based code base which is a legacy application. The application is used by all internal employees of around 200 active daily users. I've also been responsible for creating next generation applications in PHP. These applications relied heavily on Laravel and featured RESTful APIs. Techniques employed in development was composer based library development, unit testing, load testing and deployment pipelines. Other development projects have had me as a team lead working with contractors to create a laravel API backend with a React based front end application. ";}i:1;a:4:{s:4:"date";s:30:"February 2015 - September 2015";s:7:"company";s:12:"WebSpark Inc";s:5:"title";s:13:"PHP Developer";s:11:"description";s:407:"Worked on a major marketing automation platform called Mautic (mautic.org). Product was heavily built upon Symfony. My role was to write, test, and release new features on the platform. Also worked on symfony based php projects as a project manager and lead developer. Lead a team of developers, designed wireframes, write specifications, held client meetings, and set timelines and goals for deliverables. ";}i:2;a:4:{s:4:"date";s:30:"February 2015 - September 2015";s:7:"company";s:40:"Cohesive Websites, Servant Holdings, LLC";s:5:"title";s:25:"PHP Developer, Contractor";s:11:"description";s:137:"Consulted on projects that I had developed as a full time employee. Updated staff,\r\n assisted during emergencies and guided transitioning.";}i:3;a:4:{s:4:"date";s:29:"February 2013 - February 2015";s:7:"company";s:40:"Cohesive Websites, Servant Holdings, LLC";s:5:"title";s:14:"Lead Developer";s:11:"description";s:203:"Managed many projects as lead developer, putting into place coding style practices, decision making on project resources and allocations, and actively developing applications with modern best practices. ";}i:4;a:3:{s:4:"date";s:25:"June 2006 - February 2013";s:7:"company";s:20:"s-go Consulting, LLC";s:5:"title";s:9:"Developer";}}s:7:"schools";a:2:{i:0;a:3:{s:4:"date";s:11:"Spring 2008";s:4:"name";s:10:"SUNY Delhi";s:6:"degree";s:35:"Bachelor of Business Administration";}i:1;a:3:{s:4:"date";s:11:"Spring 2006";s:4:"name";s:35:"Tompkins Cortland Community College";s:6:"degree";s:10:"Web Design";}}}}s:14:"\x00*\x00frontmatter";s:9071:"title: Home\n resume:\n general:\n bgcolor: '#332A08'\n secondarycolor: '#A99D71'\n github: '0'\n github_link: 'http://www.github.com/drmmr763'\n github_text: Github\n styles: ".profile-pic {\r\n margin-bottom: -5em;\r\n margin-top: -2em;\r\n}"\n sidebar:\n name: CW\n subtitle: 'Software Engineer'\n nav:\n home: Home\n about: About\n resume: Resume\n social:\n twitter: 'http://www.twitter.com/drmmr763'\n linkedin: 'https://www.linkedin.com/in/chadwindnagle/'\n github: 'http://www.github.com/drmmr763'\n profile_img:\n user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png:\n name: chadwindnagle-pic-cropped-updated-3.png\n type: image/png\n size: 660748\n path: user/pages/01.home/chadwindnagle-pic-cropped-updated-3.png\n home:\n fullname: 'Chad Windnagle'\n typedtitles: 'PHP Developer, Laravel Expert, AWS Expert, Software Engineer, Static Code Analysis, Code Reviews, Jenkins Pipeline, Git'\n email: drmmr763@gmail.com\n about:\n customtitle: 'About Me'\n subtitle: 'Software Engineer, Dev Ops'\n general_header: 'I''m dedicated software developer who has maintained legacy code bases and created new ones from scratch. I enjoy writing readable, reusable, and reliable code, working with great teams who have great taste, problem solving, and innovating while shipping tested, high quality code. '\n general_info: "As a teenager I've loved to learn and work with computers. I taught myself to program as a way to break the boredom. I soon realized that the world of programming was endless and this had a life changing impact on me. I went on to become an open source contributor from my parent's basement. I attended college to become a web developer. All the while I worked for a web design agency and continued to hone my skills and build my experience. \r\n\r\nSince my humble beginnings I've had the opportunity to share my passion with others and engage with companies in fields such as travel, health, automobile producers, the nuclear energy industry, and even some clients I can't even tell you about ;)\r\n\r\nI've been given the opportunity to speak to small and large audiences at software conferences about contributing to open source, self taught programming, and improving one's skill as an engineer. I've been passionate about code for over 10 years now, and I don't see that passion going away any time soon."\n skills:\n -\n title: 'Programming Languages'\n skillslist:\n -\n name: PHP\n description: 'php7, unit testing, composer'\n percentage: '99'\n -\n name: Javascript\n description: 'React, Vue, jQuery'\n percentage: '80'\n -\n name: Perl\n description: 'PMs, CGI, PL, Testing'\n percentage: '90'\n -\n title: 'Dev Ops'\n skillslist:\n -\n name: 'CI / CD'\n description: 'Jenkins, Atlassian Pipelines, TeamCity'\n percentage: '90'\n -\n name: Monitoring\n description: 'CloudWatch Monitoring & Alerts'\n percentage: '70'\n -\n name: Docker\n description: 'Custom Dockerfile, Docker Compose, AWS ECS'\n percentage: '80'\n tools:\n title: 'Tools & Platforms'\n tool:\n -\n logo_alt: Github\n logo_link: 'http://www.github.com/drmmr763'\n logo:\n user/pages/01.home/Octocat.png:\n name: Octocat.png\n type: image/png\n size: 2131769\n path: user/pages/01.home/Octocat.png\n -\n logo_alt: Jenkins\n logo_link: 'https://jenkins.io/'\n logo:\n 'user/pages/01.home/jenkins logo.png':\n name: 'jenkins logo.png'\n type: image/png\n size: 39088\n path: 'user/pages/01.home/jenkins logo.png'\n -\n logo_alt: Docker\n logo_link: 'http://docker.com'\n logo:\n user/pages/01.home/docker_twitter_share_new.png:\n name: docker_twitter_share_new.png\n type: image/png\n size: 17530\n path: user/pages/01.home/docker_twitter_share_new.png\n -\n logo_alt: Laravel\n logo_link: 'https://laravel.com/'\n logo:\n user/pages/01.home/laravel-logo.png:\n name: laravel-logo.png\n type: image/png\n size: 7652\n path: user/pages/01.home/laravel-logo.png\n -\n logo_alt: Symfony\n logo_link: 'https://symfony.com/'\n logo:\n user/pages/01.home/symfony_black_02.png:\n name: symfony_black_02.png\n type: image/png\n size: 12005\n path: user/pages/01.home/symfony_black_02.png\n -\n logo_alt: Joomla\n logo_link: 'http://www.joomla.org'\n logo:\n user/pages/01.home/joomla-logo-300x205.png:\n name: joomla-logo-300x205.png\n type: image/png\n size: 18961\n path: user/pages/01.home/joomla-logo-300x205.png\n -\n logo_alt: aws\n logo_link: 'https://aws.amazon.com/'\n logo:\n user/pages/01.home/icon-cloud-aws.png:\n name: icon-cloud-aws.png\n type: image/png\n size: 68456\n path: user/pages/01.home/icon-cloud-aws.png\n -\n logo_alt: composer\n logo_link: 'https://getcomposer.org/'\n logo:\n user/pages/01.home/php.png:\n name: php.png\n type: image/png\n size: 23547\n path: user/pages/01.home/php.png\n section:\n customtitle: Resume\n downloadbtn: 'View Resume'\n download: 'https://docs.google.com/document/d/1pq5M-yYZo-kMkpwJQMOXDFD3eKjbGQgXDosdYkRzAW0/edit?usp=sharing'\n job:\n -\n date: 'September 2015 - Present'\n company: 'Advanced Medical'\n title: 'Software Engineer'\n description: 'Worked on maintaining a large perl based code base which is a legacy application. The application is used by all internal employees of around 200 active daily users. I''ve also been responsible for creating next generation applications in PHP. These applications relied heavily on Laravel and featured RESTful APIs. Techniques employed in development was composer based library development, unit testing, load testing and deployment pipelines. Other development projects have had me as a team lead working with contractors to create a laravel API backend with a React based front end application. '\n -\n date: 'February 2015 - September 2015'\n company: 'WebSpark Inc'\n title: 'PHP Developer'\n description: 'Worked on a major marketing automation platform called Mautic (mautic.org). Product was heavily built upon Symfony. My role was to write, test, and release new features on the platform. Also worked on symfony based php projects as a project manager and lead developer. Lead a team of developers, designed wireframes, write specifications, held client meetings, and set timelines and goals for deliverables. '\n -\n date: 'February 2015 - September 2015'\n company: 'Cohesive Websites, Servant Holdings, LLC'\n title: 'PHP Developer, Contractor'\n description: "Consulted on projects that I had developed as a full time employee. Updated staff,\r\nassisted during emergencies and guided transitioning."\n -\n date: 'February 2013 - February 2015'\n company: 'Cohesive Websites, Servant Holdings, LLC'\n title: 'Lead Developer'\n description: 'Managed many projects as lead developer, putting into place coding style practices, decision making on project resources and allocations, and actively developing applications with modern best practices. '\n -\n date: 'June 2006 - February 2013'\n company: 's-go Consulting, LLC'\n title: Developer\n schools:\n -\n date: 'Spring 2008'\n name: 'SUNY Delhi'\n degree: 'Bachelor of Business Administration'\n -\n date: 'Spring 2006'\n name: 'Tompkins Cortland Community College'\n degree: 'Web Design'";s:11:"\x00*\x00language";N;s:10:"\x00*\x00content";N;s:15:"\x00*\x00content_meta";N;s:10:"\x00*\x00summary";N;s:14:"\x00*\x00raw_content";s:551:"# Hi, I'm Chad\n \n <div class="row">\n <div>\n <a href="/">\n <img src="/assets/chad-profile-pic.jpeg" />\n </a>\n </div>\n <div>\n <p>\n I’m known as an influencer in using open source technologies for solving real world problems. I’m a published developer who specializes in developing scalable, world-class applications. I use a number of programming languages and paradigms, and I enjoy leading teams who pursue excellence everyday as professional developers. Read More.\n </p>\n </div>\n </div>\n ";s:13:"\x00*\x00pagination";N;s:11:"\x00*\x00metadata";a:2:{s:9:"generator";a:2:{s:7:"content";s:7:"GravCMS";s:4:"name";s:9:"generator";}s:11:"description";a:2:{s:7:"content";s:97:"Chad Windnagle is a leading talent in software engineering, blogger and open source technologist.";s:4:"name";s:11:"description";}}s:8:"\x00*\x00title";s:4:"Home";s:12:"\x00*\x00max_count";N;s:7:"\x00*\x00menu";N;s:7:"\x00*\x00date";i:1536625514;s:13:"\x00*\x00dateformat";N;s:11:"\x00*\x00taxonomy";a:0:{}s:11:"\x00*\x00order_by";s:7:"default";s:12:"\x00*\x00order_dir";s:3:"asc";s:15:"\x00*\x00order_manual";N;s:10:"\x00*\x00modular";N;s:15:"\x00*\x00modular_twig";b:0;s:10:"\x00*\x00process";a:2:{s:8:"markdown";b:1;s:4:"twig";b:0;}s:15:"\x00*\x00summary_size";N;s:17:"\x00*\x00markdown_extra";N;s:7:"\x00*\x00etag";N;s:16:"\x00*\x00last_modified";N;s:13:"\x00*\x00home_route";s:5:"/home";s:18:"\x00*\x00hide_home_route";b:0;s:6:"\x00*\x00ssl";N;s:18:"\x00*\x00template_format";N;s:11:"\x00*\x00debugger";N;s:32:"\x00Grav\Common\Page\Page\x00_original";N;s:30:"\x00Grav\Common\Page\Page\x00_action";N;s:8:"\x00*\x00media";N;}}i:1;a:2:{s:5:"/home";s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";s:1:"/";s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";}i:2;a:2:{s:49:"/var/www/chadwindnagle.com/public_html/user/pages";a:1:{s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";a:1:{s:4:"slug";s:4:"home";}}s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";a:0:{}}i:3;a:0:{}i:4;a:1:{s:49:"/var/www/chadwindnagle.com/public_html/user/pages";a:1:{s:7:"default";a:1:{s:57:"/var/www/chadwindnagle.com/public_html/user/pages/01.home";a:1:{s:4:"slug";s:4:"home";}}}}} """
1712245026
return $this->driver->fetch($id); } else { return false; } } /** * Stores a new cached entry. * * @param string $id the id of the cached entry * @param array|object $data the data for the cached entry to store * @param int $lifetime the lifetime to store the entry in seconds */ public function save($id, $data, $lifetime = null) { if ($this->enabled) { if ($lifetime === null) { $lifetime = $this->getLifetime(); } $this->driver->save($id, $data, $lifetime); } } /** * Deletes an item in the cache based on the id * * @param string $id the id of the cached data entry * @return bool true if the item was deleted successfully */ public function delete($id) { if ($this->enabled) { return $this->driver->delete($id); } return false; } /** * Returns a boolean state of whether or not the item exists in the cache based on id key *
"4d4850497ab366ddfbad45087bf8d1eb"
array:5 [ 0 => array:2 [ "/var/www/chadwindnagle.com/public_html/user/pages" => Page {} "/var/www/chadwindnagle.com/public_html/user/pages/01.home" => Page {} ] 1 => array:2 [ "/home" => "/var/www/chadwindnagle.com/public_html/user/pages/01.home" "/" => "/var/www/chadwindnagle.com/public_html/user/pages/01.home" ] 2 => array:2 [ "/var/www/chadwindnagle.com/public_html/user/pages" => array:1 [ "/var/www/chadwindnagle.com/public_html/user/pages/01.home" => array:1 [ "slug" => "home" ] ] "/var/www/chadwindnagle.com/public_html/user/pages/01.home" => [] ] 3 => [] 4 => array:1 [ "/var/www/chadwindnagle.com/public_html/user/pages" => array:1 [ "default" => array:1 [ "/var/www/chadwindnagle.com/public_html/user/pages/01.home" => array:1 [ "slug" => "home" ] ] ] ] ]
604800
/** * Accessible method to manually reset the pages cache * * @param $pages_dir */ public function resetPages($pages_dir) { $this->recurse($pages_dir); $this->buildRoutes(); // cache if needed if ($this->grav['config']->get('system.cache.enabled')) { /** @var Cache $cache */ $cache = $this->grav['cache']; /** @var Taxonomy $taxonomy */ $taxonomy = $this->grav['taxonomy']; // save pages, routes, taxonomy, and sort to cache $cache->save($this->pages_cache_id, [$this->instances, $this->routes, $this->children, $taxonomy->taxonomy(), $this->sort]); } } /** * Recursive function to load & build page relationships. * * @param string $directory * @param Page|null $parent * * @return Page * @throws \RuntimeException * @internal */ protected function recurse($directory, Page $parent = null) { $directory = rtrim($directory, DS); $page = new Page; /** @var Config $config */ $config = $this->grav['config'];
"4d4850497ab366ddfbad45087bf8d1eb"
array:5 [ 0 => array:2 [ "/var/www/chadwindnagle.com/public_html/user/pages" => Page {} "/var/www/chadwindnagle.com/public_html/user/pages/01.home" => Page {} ] 1 => array:2 [ "/home" => "/var/www/chadwindnagle.com/public_html/user/pages/01.home" "/" => "/var/www/chadwindnagle.com/public_html/user/pages/01.home" ] 2 => array:2 [ "/var/www/chadwindnagle.com/public_html/user/pages" => array:1 [ "/var/www/chadwindnagle.com/public_html/user/pages/01.home" => array:1 [ "slug" => "home" ] ] "/var/www/chadwindnagle.com/public_html/user/pages/01.home" => [] ] 3 => [] 4 => array:1 [ "/var/www/chadwindnagle.com/public_html/user/pages" => array:1 [ "default" => array:1 [ "/var/www/chadwindnagle.com/public_html/user/pages/01.home" => array:1 [ "slug" => "home" ] ] ] ] ]
$hash = 0; break; case 'folder': $hash = Folder::lastModifiedFolder($pages_dir); break; case 'hash': $hash = Folder::hashAllFiles($pages_dir); break; default: $hash = Folder::lastModifiedFile($pages_dir); } $this->pages_cache_id = md5($pages_dir . $hash . $language->getActive() . $config->checksum()); list($this->instances, $this->routes, $this->children, $taxonomy_map, $this->sort) = $cache->fetch($this->pages_cache_id); if (!$this->instances) { $this->grav['debugger']->addMessage('Page cache missed, rebuilding pages..'); // recurse pages and cache result $this->resetPages($pages_dir, $this->pages_cache_id); } else { // If pages was found in cache, set the taxonomy $this->grav['debugger']->addMessage('Page cache hit.'); $taxonomy->taxonomy($taxonomy_map); } } else { $this->recurse($pages_dir); $this->buildRoutes(); } } /** * Accessible method to manually reset the pages cache * * @param $pages_dir */ public function resetPages($pages_dir) { $this->recurse($pages_dir);
"/var/www/chadwindnagle.com/public_html/user/pages"
"4d4850497ab366ddfbad45087bf8d1eb"
} return $this->baseUrl($lang, $absolute) . Uri::filterPath($route); } /** * Class initialization. Must be called before using this class. */ public function init() { $config = $this->grav['config']; $this->ignore_files = $config->get('system.pages.ignore_files'); $this->ignore_folders = $config->get('system.pages.ignore_folders'); $this->ignore_hidden = $config->get('system.pages.ignore_hidden'); $this->instances = []; $this->children = []; $this->routes = []; $this->buildPages(); } /** * Get or set last modification time. * * @param int $modified * * @return int|null */ public function lastModified($modified = null) { if ($modified && $modified > $this->last_modified) { $this->last_modified = $modified; } return $this->last_modified; } /** * Returns a list of all pages.
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ namespace Grav\Common\Processors; use Grav\Common\Page\Page; use RocketTheme\Toolbox\Event\Event; class PagesProcessor extends ProcessorBase implements ProcessorInterface { public $id = 'pages'; public $title = 'Pages'; public function process() { // Dump Cache state $this->container['debugger']->addMessage($this->container['cache']->getCacheStatus()); $this->container['pages']->init(); $this->container->fireEvent('onPagesInitialized', new Event(['pages' => $this->container['pages']])); $this->container->fireEvent('onPageInitialized', new Event(['page' => $this->container['page']])); /** @var Page $page */ $page = $this->container['page']; if (!$page->routable()) { // If no page found, fire event $event = $this->container->fireEvent('onPageNotFound', new Event(['page' => $page])); if (isset($event->page)) { unset ($this->container['page']); $this->container['page'] = $event->page; } else { throw new \RuntimeException('Page Not Found', 404); } } } }
} elseif ($values) { $instance = self::$instance; foreach ($values as $key => $value) { $instance->offsetSet($key, $value); } } return self::$instance; } /** * Process a request */ public function process() { // process all processors (e.g. config, initialize, assets, ..., render) foreach ($this->processors as $processor) { $processor = $this[$processor]; $this->measureTime($processor->id, $processor->title, function () use ($processor) { $processor->process(); }); } /** @var Debugger $debugger */ $debugger = $this['debugger']; $debugger->render(); register_shutdown_function([$this, 'shutdown']); } /** * Set the system locale based on the language and configuration */ public function setLocale() { // Initialize Locale if set and configured. if ($this['language']->enabled() && $this['config']->get('system.languages.override_locale')) { $language = $this['language']->getLanguage(); setlocale(LC_ALL, strlen($language) < 3 ? ($language . '_' . strtoupper($language)) : $language); } elseif ($this['config']->get('system.default_locale')) {
* * @param array $values * * @return static */ protected static function load(array $values) { $container = new static($values); $container['grav'] = $container; $container['debugger'] = new Debugger(); $debugger = $container['debugger']; // closure that measures time by wrapping a function into startTimer and stopTimer // The debugger can be passed to the closure. Should be more performant // then to get it from the container all time. $container->measureTime = function ($timerId, $timerTitle, $callback) use ($debugger) { $debugger->startTimer($timerId, $timerTitle); $callback(); $debugger->stopTimer($timerId); }; $container->measureTime('_services', 'Services', function () use ($container) { $container->registerServices($container); }); return $container; } /** * Register all services * Services are defined in the diMap. They can either only the class * of a Service Provider or a pair of serviceKey => serviceClass that * gets directly mapped into the container. * * @return void */ protected function registerServices() {
ob_end_flush(); @ob_flush(); flush(); } } // Run any time consuming tasks. $this->fireEvent('onShutdown'); } /** * Magic Catch All Function * Used to call closures like measureTime on the instance. * Source: http://stackoverflow.com/questions/419804/closures-as-class-members */ public function __call($method, $args) { $closure = $this->$method; call_user_func_array($closure, $args); } /** * Initialize and return a Grav instance * * @param array $values * * @return static */ protected static function load(array $values) { $container = new static($values); $container['grav'] = $container; $container['debugger'] = new Debugger(); $debugger = $container['debugger']; // closure that measures time by wrapping a function into startTimer and stopTimer // The debugger can be passed to the closure. Should be more performant
"pages"
"Pages"
Closure { : "Grav\Common\Grav" : Grav { …} : { : PagesProcessor { …} } }
ob_end_flush(); @ob_flush(); flush(); } } // Run any time consuming tasks. $this->fireEvent('onShutdown'); } /** * Magic Catch All Function * Used to call closures like measureTime on the instance. * Source: http://stackoverflow.com/questions/419804/closures-as-class-members */ public function __call($method, $args) { $closure = $this->$method; call_user_func_array($closure, $args); } /** * Initialize and return a Grav instance * * @param array $values * * @return static */ protected static function load(array $values) { $container = new static($values); $container['grav'] = $container; $container['debugger'] = new Debugger(); $debugger = $container['debugger']; // closure that measures time by wrapping a function into startTimer and stopTimer // The debugger can be passed to the closure. Should be more performant
Closure { : "Grav\Common\Grav" : { : {} : {} : {} } : { : Debugger { …} } }
array:3 [ 0 => "pages" 1 => "Pages" 2 => Closure { : "Grav\Common\Grav" : Grav { …} : { : PagesProcessor { …} } } ]
$instance = self::$instance; foreach ($values as $key => $value) { $instance->offsetSet($key, $value); } } return self::$instance; } /** * Process a request */ public function process() { // process all processors (e.g. config, initialize, assets, ..., render) foreach ($this->processors as $processor) { $processor = $this[$processor]; $this->measureTime($processor->id, $processor->title, function () use ($processor) { $processor->process(); }); } /** @var Debugger $debugger */ $debugger = $this['debugger']; $debugger->render(); register_shutdown_function([$this, 'shutdown']); } /** * Set the system locale based on the language and configuration */ public function setLocale() { // Initialize Locale if set and configured. if ($this['language']->enabled() && $this['config']->get('system.languages.override_locale')) { $language = $this['language']->getLanguage(); setlocale(LC_ALL, strlen($language) < 3 ? ($language . '_' . strtoupper($language)) : $language); } elseif ($this['config']->get('system.default_locale')) { setlocale(LC_ALL, $this['config']->get('system.default_locale'));
"measureTime"
array:3 [ 0 => "pages" 1 => "Pages" 2 => Closure { : "Grav\Common\Grav" : Grav { …} : { : PagesProcessor { …} } } ]
// Set timezone to default, falls back to system if php.ini not set date_default_timezone_set(@date_default_timezone_get()); // Set internal encoding if mbstring loaded if (!extension_loaded('mbstring')) { die("'mbstring' extension is not loaded. This is required for Grav to run correctly"); } mb_internal_encoding('UTF-8'); // Get the Grav instance $grav = Grav::instance( array( 'loader' => $loader ) ); // Process the page try { $grav->process(); } catch (\Exception $e) { $grav->fireEvent('onFatalException', new Event(array('exception' => $e))); throw $e; }
Key | Value |
HTTPS | "on"
|
SSL_TLS_SNI | "chadwindnagle.com"
|
HTTP_ACCEPT | "*/*"
|
HTTP_USER_AGENT | "claudebot"
|
HTTP_REFERER | "http://chadwindnagle.com/"
|
HTTP_HOST | "chadwindnagle.com"
|
PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
SERVER_SIGNATURE | "<address>Apache/2.4.18 (Ubuntu) Server at chadwindnagle.com Port 443</address>\n"
|
SERVER_SOFTWARE | "Apache/2.4.18 (Ubuntu)"
|
SERVER_NAME | "chadwindnagle.com"
|
SERVER_ADDR | "45.55.152.216"
|
SERVER_PORT | "443"
|
REMOTE_ADDR | "54.166.170.195"
|
DOCUMENT_ROOT | "/var/www/chadwindnagle.com/public_html"
|
REQUEST_SCHEME | "https"
|
CONTEXT_PREFIX | "" |
CONTEXT_DOCUMENT_ROOT | "/var/www/chadwindnagle.com/public_html"
|
SERVER_ADMIN | "drmmr763@gmail.com"
|
SCRIPT_FILENAME | "/var/www/chadwindnagle.com/public_html/index.php"
|
REMOTE_PORT | "53944"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
SERVER_PROTOCOL | "HTTP/1.1"
|
REQUEST_METHOD | "GET"
|
QUERY_STRING | "" |
REQUEST_URI | "/"
|
SCRIPT_NAME | "/index.php"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1711640226.45
|
REQUEST_TIME | 1711640226
|