%!PS % https://dacvs.neocities.org/home.html % This document is made in the style of David Smith. % Please feel free to copy and modify it, but I ask % that you (a) retain this header in the source file, % and (b) tell people when appropriate that you borrowed from me. % Best wishes, % David Smith % For information on PostScript, see: % (1) The PostScript Language Tutorial and Cookbook % (2) The PostScript Language Reference /year-now 2021 def /year-beg 1992 def % year you began your career (bottom of spine) /year-bot 1990 def % year at the very bottom of the page /font-small 10.0 def /font-med 22.3 def /font-large 9 72 mul year-now year-beg sub div def /x-left -240 def /x-right 75 def /eps 2 def /early { 0.9 sub 12 div add } def % year (integral) month -- year (rational) /mid { 0.5 sub 12 div add } def /late { 0.1 sub 12 div add } def /ad { year-bot sub font-large mul } def % year -- y 8.5 72 mul 2 div 0 translate % put y-axis in middle of page % The output document (a resume) is designed so that each event has % (1) descriptive text and (2) line art connecting the text to a timeline. % Text should be printed on top of line art. % (The other way, line art over text, looks worse.) % % The order of commands in a PostScript file is important. % Later drawings are made on top of earlier ones. % % In my design, the line art of an event may cross the text of another % event (or its own). In order to keep the output looking good, we wish % to draw each event's line art before all the text it crosses. % % As life goes on (and our resume grows), we edit the content of the % PostScript file, adding events (school or work) as they occur. % Editing should be easy and carefree. % Line art should be generated automatically (under the text). % % Suppose we have a function that takes as input an event's text. % When the function is called, it draws the line art and prints the text. % If it were to do both right away, it might draw the line art of an event % over the text of an event from earlier in the PostScript file. % % My solution is to postpone all printing of event text until all line art is drawn. % As each event is processed, line art is drawn right away. % But the strings and their locations and fonts are pushed onto the stack. % After the last event is processed, the strings are popped and printed. /s 0 def % number of string groups on the stack % SPINE OF YEARS 0.5 setgray /Helvetica-Bold findfont font-large scalefont setfont /x-pos { (0) stringwidth pop neg } def % -- x-pos /y-pos { ad font-large 0.1 mul add } def % y -- y-pos /show-ones { 10 mod 1 string cvs show } def % y -- year-beg 1 year-now { dup x-pos exch y-pos moveto 10 idiv show-ones } for % tens year-beg 1 year-now { dup 0 exch y-pos moveto show-ones } for % ones /Bfont /Helvetica-Bold findfont font-med scalefont def /bfont /Helvetica-Bold findfont font-small scalefont def /ifont /Helvetica-Oblique findfont font-small scalefont def /nfont /Helvetica findfont font-small scalefont def /myfonts [Bfont bfont ifont nfont] def /incs { /s s 1 add def } def % -- /crlf { /y y font-small 1.35 mul sub def } def % -- /B { x y crlf incs 0 } def % str -- strgroup /b { x y crlf incs 1 } def % str -- strgroup /i { x y crlf incs 2 } def % str -- strgroup /n { x y crlf incs 3 } def % str -- strgroup bfont setfont % used to determine string right ends during line art drawing %/bullet { (-) x y incs 1 } def % -- strgroup /bullet { % -- gsave 0 setgray newpath x y font-small 0.35 mul add font-small 0.15 mul 0 360 arc closepath fill grestore } def /degree { % y -- gsave 0.5 setgray 0.5 setlinewidth newpath 0.7 font-large mul exch 2.4 0 360 arc closepath stroke grestore } def /bracket { % x0 y0 dx dy done -- /done exch def % 1 if done, else 0 (done -> end-tick on bracket) /dy exch def % >0 /dx exch def % <0 if left, >0 if right gsave 0.9 setlinewidth 0 setgray newpath moveto dx dx abs rlineto 0 dy dx abs 2 mul sub rlineto dx neg done mul dx abs rlineto stroke grestore } def /tie { % x0 y0 x1 y1 -- gsave 1.2 setlinewidth 0.7 setgray newpath moveto lineto stroke grestore } def /bided { % str y-lo y-hi done sgn (-1 left, +1 right) -- str /sgn exch def /done exch def /y-hi exch def /y-lo exch def /x-spine font-large sgn mul 0.9 mul def dup stringwidth pop 0.5 -0.5 sgn mul add mul % word offset x add eps -1.5 mul sgn mul add % x0 y font-small 0.4 mul add % y0 x-spine eps sgn mul add % x1 y-lo y-hi add 0.5 mul % y1 tie x-spine % x0 y-lo % y0 eps sgn mul % dx y-hi y-lo sub % dy done bracket } def /worked { 1 -1 bided } def /work { 0 -1 bided } def /schooled { 1 1 bided } def /school { 0 1 bided } def /from {} def /to {} def %%%%%%%%%%%%%%%%% BEGIN DATA %%%%%%%%%%%%%%%%%%%%%%% % RIGHT COL /x x-right def /y year-now ad def (David A. Smith) B %(http://www.ugcs.caltech.edu/~dav) n %(dav@ugcs.caltech.edu) n (https://dacvs.neocities.org/) n (dsmith@alumni.caltech.edu) n %(dsmith@mathpost.asu.edu) n (406-203-8553) n crlf 2018 9 late ad degree (Passed actuarial exam P) b crlf (Instructor) from 2016 9 mid ad to 2016 12 mid ad schooled b (California State University, East Bay) i bullet ( Taught Math 2150, an introduction) n (to Discrete Mathematics for students) n (of Computer Science) n crlf (Visiting Assistant Professor) from 2012 8 early ad to 2013 4 late ad schooled b (Grand Valley State University) i bullet ( Taught linear algebra, differential) n (equations, and calculus) n bullet ( Developed weekly computational) n (exercises for calculus students) n crlf 2010 12 late ad degree (Ph.D. Mathematics) from 2004 8 early ad to 2010 8 late ad schooled b (Teaching & Research Assistant) b (Arizona State University) i bullet ( Dissertation: The first-fit algorithm) n (uses many colors on some interval) n (graphs) n bullet ( Used GLPK, Matlab, Maple, Sage,) n (Python, Tk, Haskell, and C) n bullet ( Taught Discrete Mathematical Struc-) n (tures to computer science students) n bullet ( Supervised an undergraduate honors) n (project involving Java programming) n crlf 2001 12 late ad degree (M.S. Mathematics) from 2000 8 early ad to 2002 5 late ad schooled b (Lecturer, Teaching Associate) b (California State University, Long Beach) i bullet ( Graduate Dean's List of Scholars) n (and Artists) n % gpa 4.0 bullet ( Taught Calculus 2 and 3 to) n (computer science students) n crlf 1996 6 mid ad degree (B.S. Mathematics) from 1992 9 mid ad to 1996 6 mid ad schooled b (California Institute of Technology) i % gpa 3.3 bullet ( Studied manipulation in voting with) n (computer programs in C) n bullet ( Assisted in developing a novel) n (application of optical fibers for) n (the Mars 94 Oxidant Experiment) n % LEFT COL /x x-left def /y year-now 2.5 add ad def /crlf { /y y font-small 1.25 mul sub def } def % -- (Programmer and videographer) from 2021 3 late ad to 2021 7 early ad work b bullet ( I make videos on programming) n (in x86 machine language) n crlf (Virtual Construction Application Developer) from 2019 6 early ad to 2021 3 late ad worked b % started june 10, but did some work before official start date (Sundt Construction, Tempe AZ) i %bullet ( Wrote and implemented algorithms) n %(to automatically design certain cost-) n %(optimal temporary wooden structures) n bullet ( Wrote and implemented algorithms) n (to design cost-optimal structures) n bullet ( Wrote basic productivity applications) n crlf (Programmer) from 2017 5 early ad to 2019 5 late ad worked b bullet ( Wrote system software and) n (mathematical applications in Forth) n % bullet ( Wrote and implemented numerical) n % (algorithms using methods from) n % (computational geometry in Forth) n crlf (Data Scientist) from 2014 7 mid ad to 2016 1 late ad worked b (Quid Inc., San Francisco CA) i bullet ( Wrote fast C-code variations on known) n (methods of partitioning the vertex set of) n (a weighted similarity graph) n bullet ( Created Python tools with NetworkX and) n (heuristic algorithms to compare partitions;) n (and with SciPy to compare search result lists) n bullet ( Visualized both kinds of comparison with) n (PostScript plots made automatically) n bullet ( Developed a method to infer associations) n (between vertex labels in graphs) n (described in US patent 9710544) n bullet ( Wrote technical evaluations of free and) n (commercial natural language proc. software) n crlf (Software Engineer) from 2013 10 early ad to 2014 2 mid ad worked b (Newfield Wireless, Berkeley CA) i bullet ( Wrote C++ server software) n crlf (Programmer) from 2011 8 early ad to 2012 3 late ad worked b (Semel Institute for Neuroscience at UCLA) i bullet ( Processed large genomic data sets) n (on the Hoffman2 cluster (Unix)) n %(on the Hoffman2 cluster using Bash,) n %(Awk, and Unix-style tools) n bullet ( Implemented graph algorithms in Python) n % and Sage crlf (Lead Software Engineer) from 2003 2 early ad to 2003 12 late ad worked b (Mitretek Systems, Falls Church VA) i bullet ( Wrote public key infrastructure software) n (in C++ for federal agencies) n %bullet ( Added to a PKI middleware component) n %(using OpenSSL and the DigitalNet) n %(Certificate Management Library) n bullet ( Built an LDAP spider for X.509 cross-) n (certificate webs using the Boost Graph Lib.) n crlf (Software Engineer) from 1999 1 mid ad to 2000 3 late ad worked b (Leverage Information Systems, SF CA) i %bullet ( Wrote Java server software for) n %(high-volume web sites with) n %(Linux, Apache, and MySQL) n bullet ( Wrote Java server software for high-volume) n (web sites with Linux, Apache, and MySQL) n bullet ( Contributed to the open-source) n (Locomotive Application Server) n crlf (Software Designer) from 1997 2 early ad to 1999 1 mid ad worked b (Tandem Computers, Cupertino CA) i bullet ( Developed an intraweb document) n (management application in Perl and C) n %crlf % (Junior Localization Engineer) from 1996 11 early ad to 1997 1 late ad worked b % (SimulTrans, L.L.C., Mountain View CA) n %%%%%%%%%%%%%%%%% END DATA %%%%%%%%%%%%%%%%%%%%%%% 0 setgray 1 1 s { pop myfonts exch get setfont moveto show } for showpage