Skip to content

Instantly share code, notes, and snippets.

@nathanlippi
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nathanlippi/ae307e341b886fab6648 to your computer and use it in GitHub Desktop.
Save nathanlippi/ae307e341b886fab6648 to your computer and use it in GitHub Desktop.
Resume
<?php
/**
* Resume in PHP
*
* @author: Nathan Lippi <nathan.lippi@gmail.com>
*
*/
class ResumeConcrete extends AbstractResume
{
public function getMyObjective() {
$objective = "To bring my abilities which enable me to engineer " .
"creative, pragmatic and maintainable solutions into an " .
"environment where they can flourish, while honing my " .
"craft alongside intelligent, energetic co-workers.";
return $objective;
}
}
abstract class AbstractResume
{
public function getWorkExperience() {
$ret = array();
$ret[] = array(
"place" => "Aego",
"url" => "BitSplit.it",
"time" => "2014-Present",
"desc" => "Conceived of, implemented, and scaled a dynamic " .
"bitcoin lottery in which playing well involves " .
"skill.",
"exp" => "Learned, more in depth, the pros and cons of both " .
"relational and non-relational databases. Experienced " .
"the power and frustration of async environments.",
"tech" => array("NodeJS", "MongoDB", "Redis", "PostgreSQL",
"Linux", "AWS", "CSS", "HTML")
);
$ret[] = array(
"place" => "ITKinfo",
"url" => "ReportMule.com",
"time" => "2010-Present",
"desc" => "Conceived of, programmed, designed, and maintained " .
"an in-production web app that helps a Los Angeles " .
"company build large reports for media-monitoring " .
"departments of large companies such as Dreamworks, " .
"Facebook, Zynga.",
"exp" => "My first in-production code. Learned (the hard way) " .
"about creating software that works well.",
"tech" => array("PHP", "javascript", "Python", "MySQL", "AWS",
"CSS", "HTML")
);
$ret[] = array(
"place" => "Lemonfree.com",
"url" => "private",
"time" => "2012-2014",
"desc" => "Designed and maintained a specialized and *scalable* " .
"scraper that can be managed from a web-ui using only " .
"CSS-style selectors.",
"exp" => "Learned about working at scale, refactoring, and " .
"creating readable, testable code.",
"tech" => array("PHP", "MySQL", "Ruby", "Bash", "AWS", "Linux")
);
$ret[] = array(
"place" => "AegoBooks",
"url" => "NA",
"time" => "2009-Present",
"desc" => "Hired and worked with programmers to successfully " .
"create and run software that automated arbitrage " .
"between book markets on Amazon and Ebay.",
"tech" => array("Java", "Windows")
);
return $ret;
}
public function getEducationFormal() {
$ret = array();
$ret[] = array(
"place" => "Andrews University",
"time" => "2004-2008",
"desc" => "Learned how to get inside people's heads while " .
"running harmlessly subversive and informal " .
"swing-dance and poker groups.",
"tech" => array("IPod")
);
$ret[] = array(
"place" => "Berrien Springs High School",
"time" => "1999-2003",
"desc" => "Spent half my day at an accelerated Math and Science " .
"Center, honing my mad math skills and taking some CS " .
"classes, scoring 5/5 on the C++ AP test along the " .
"way. Wrote 2 note-worthy TI-83 programs: one to" .
"calculate the square root of a number to more digits " .
"than the calculator itself, another much-loved " .
" (by yours truly) game appropriately-named " .
"\"Fishin'\"",
"tech" => array("C++", "TI-83 Basic", "Lego Mindstorms Basic")
);
return $ret;
}
}
// Generate the resume
function displaySeparator($level = 6) {
echo str_repeat("=", pow(2, $level)), PHP_EOL;
}
function displaySubtitle($text, $level = 6) {
echo PHP_EOL, PHP_EOL;
displaySeparator($level);
echo "=== ", $text, PHP_EOL;
displaySeparator($level);
}
function displayExpArr($expArr) {
foreach($expArr as $job) {
displaySubtitle($job["place"], 4);
echo "Time Period: ", $job["time"], PHP_EOL;
if(isset($job["tech"])) {
echo "Tech: ", implode($job["tech"], ", "), PHP_EOL; }
echo "Description: ", wordwrap($job["desc"]), PHP_EOL;
if(isset($job["exp"])) {
echo "Experience: ", wordwrap($job["exp"]), PHP_EOL; }
}
}
$asciiTitle = <<< ASCII
____
| _ \ ___ ___ _ _ _ __ ___ ___
| |_) / _ \/ __| | | | '_ ` _ \ / _ \
| _ < __/\__ \ |_| | | | | | | __/
|_| \_\___||___/\__,_|_| |_| |_|\___|
ASCII;
echo $asciiTitle;
$resume = new ResumeConcrete();
displaySubtitle("Objective");
echo wordwrap($resume->getMyObjective());
displaySubtitle("Work Experience");
displayExpArr($resume->getWorkExperience());
displaySubtitle("Formal Education");
displayExpArr($resume->getEducationFormal());
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment