Mark "Monty" Montague *** PRELIMINARY VERSION OF EXPANDED RESUME: THIS NEEDS TO BE TRIMMED DOWN -- FEEDBACK IS WELCOME! *** Contact Information: monty.mark@gmail.com http://www.gg.caltech.edu/~monty/monty.shtml (Home)626-798-1692 (Cell)626-695-1280 (bad reception at home) 3263 Alegre Lane, Altadena, CA 91001 Major Skill Areas: * Computer Graphics Programming, Simulation, and Research * Linux and Unix System Administration and Programming * Innovation and Problem Solving, particularly for Math, Science, and Engineering Overall Description: * Geek of All Trades, Master of Some * Specialist at knowing or finding the right tools for a job * Particularly experienced in Linux/Unix/Debian systems * Able to communicate with experts in other fields (science, engineering, etc) to find solutions for their needs * Broad knowledge and skills in programming languages, libraries, and software and how to choose or implement solutions * Broad knowledge in math, engineering, biology, and physical sciences leading to rapid learning in most technical areas * Particularly strong at keeping track of large systems and interdependencies while investigating specific details Seeking: A dynamic position involving technical innovation and problem-solving where team collaboration, creative synergy, mutual support, and knowledge sharing are emphasized. Software design and development, high-end computer graphics and animations, advanced user tools, systems and IT management and support, early project design, and project support are areas that are the best fits. Preferred Roles: * innovation * breadth * recognizing patterns * knowing, using, and creating tools * systems engineering * systems and technology "handyman" * "glue" communicator facilitating synergistic interactions between project workers * solution visualization and strategy * trained scientist sufficient to work with experts in scientific fields * debugging and investigating by asking the right questions * multi-language-- "mode shifting" in that I can switch mindsets on the timescale of a few days to use the right language or programming style for a task * able to discuss requirements with non-computer-expert users and provide for their needs while suggesting optimizations they may not have considered Education: * B.S. 1993 California Institute of Technology, Engineering and Applied Science with emphasis on Computer Science * Completed Graduate Course-work toward M.S. Computer Science personality: I enjoy problem solving and creativity, and can be very productive in work that's challenging and interesting. I can spot possible issues in a design or plan and be effective at finding ways to address them early on so that the whole project can proceed. I prefer to work in situations where honesty and respectful questioning are encouraged. I very closely fit most descriptions of the INTP Meyers-Briggs personality type. best team styles: * flexible/dynamic hierarchy * team members stepping into leadership roles as needed rather than a rigid structure * supporting others through collaboration * environments where discussion and honesty are encouraged * proportionally shared ownership, responsibility, and vision skills and interests not directly relevant to software work (to illustrated breadth and depth): * emergency medicine (former trained Emergency Medical Technician EMT-1a) * biology ** neurobiology ** cephalopods (octopus and squid) *** on staff at http://www.tonmo.com web site ** evolutionary and developmental biology, particularly body plan evolution * spaceflight dynamics * medical imaging * engineering failure analysis * biomorphic engineering * origins of life and early animal forms * exotic or novel machines and technology * mathematical and technological "archaeology" * general mechanical and construction skills: ** automobile mechanics ** home construction, wiring, and repair ** electronics ** sailboats * outdoor activities: ** hiking ** kayaking ** skiing ** sailing ** SCUBA * forensic science Cross-disciplinary areas: * neurobiology and neuromorphic engineering * genetifcs & development simulations * artificial life * physical simulation of animals * medical imaging * natural-vision inspired image acquisition * marine and space vehicles for robotic exploration Programming: * languages ** Perl ** C ** C++ ** Java ** LISP *** CL/CLOS *** Scheme ** Mathematica ** MATLAB ** Python ** Assembly ** Pascal ** FORTRAN ** BASIC ** shell scripting *** sh *** csh ** Prolog ** PostScript and Forth * code samples at http://www.gg.caltech.edu/~monty/code.html Higher Math: * Differential Geometry * Algebraic Geometry * Topology * Linear and Nonlinear systems * Computability Theory * Linear Algebra and Group Theory * Real and Complex Analysis * Graph Theory and similar Discrete Math Programming skills: * numerics: ** software: LAPACK, Numerical Recipes, IMSL, NAG ** numerical algorithms: ODE solution (Runge-Kutta, Inverse Eulers), SVD, optimization (linear/quadratic programming, gradient descent, simulated annealing), some ODE/PDE trajectory techniques, Monte Carlo integration, ergodic integrals, Fourier and Laplace transforms, linear filtering, convolutions, deconvolution, * simulation * IU ** toolkits: Xlib, gtk/gnome, qt, Tk, Motif, Athena Widgets, some XFree86 server hacking; 3D libs: GL(SGI and OpenGL), HP Starbfase, Chromatics CX3D, PHIGS), ancient: GKS, graphics terminals (TekTronix 4107, Chromatics CGC7900, DISSPLA, Apple QuickDraw, PC and Apple2 graphics) * 3D Graphics ** rendering *** teaching assistant for Caltech Computer Graphics classes for several years, which included full software implementation of graphics pipeline: polygon tiling, texture mapping, transformations, display list management, etc. Some years also covered image processing and ray tracing. *** Many display list variants *** Several raytracers (mostly custom) *** some use of radiosity, BSP trees * Theory ** numerics and mathematical roots of 3d transformations: quaternions, dual quaternions, articulated bodies, forward and inverse kinematics, interpolation (even in non-Euclidean spaces) ** geometric modeling *** Splines (cubic, NURBS/B/Beta/Bezier) Chebychev Polynomials, subdivision surfaces & multires representations, implicit models including algebraic surfaces and patches and level sets, fractals, volumetric modeling, generalized cylinders and similar procedural models, sweeps and other generative surfaces, constructive solid geometry ** physically-based modeling *** rigid body dynamics *** flexible body dynamics *** Newtonian (force-based) and LaGrangian (energy-based) formulations *** more modeling details at http://www.gg.caltech.edu/~monty/modeling-resume.text ** texture mapping ** implicit surfaces, algorithmic surfaces, level sets, point sets, particle systems, etc. * general programming ** porting between Unix variants: Linux, HPUX, OSF1, SunOS/Solaris, AIX, OSX, IRIX ** Able to use Object Oriented Programming and Structured Programming but skeptical about the buzzwords, enough knowledge of Design Patterns, UML, and eXtreme Programming to know I could learn them quickly. General understandings of Functional and Logic Programming. * IT and Systems Programming specific skills ** networking ** Unix/Linux server software *** NFS *** DNS *** NIS/YP *** mail **** qmail **** sendmail *** unix printing (lp/lpr/CUPS) *** Apache 1 & 2 *** Tomcat *** Firewalls, security, ssh **** iptables **** load balancing with pen **** vrrpd **** VPNs, masquerading, tunneling, advanced routing (e.g. quagga) ** Heterogeneous cluster experience *** Linux (Debian, Fedora/RHEL) *** Unix *** MacOS OSX and pre-OSX *** Windows (from DOS to XP, no Vista yet.) **** SAMBA *** VMS ** further IT details at http://www.gg.caltech.edu/~monty/sysadmin-resume.text * other computer skills ** hardware repair ** video editing and distribution systems ** A/V ** film recorders (Solitaire, Matrix, Dunn) ** web authoring, design, and administration, including CGIs, shtml, xml, CSS, AJAX, etc. Started to learn Ruby on Rails, but haven't done a real project yet. ** parallel programming and debugging (IPC, mutithreaded, message-passing, chared memory) ** image editing software (GIMP/PhotoShop) ** nonlinear video editing (e.g. Adobe Premiere) ** typesetting with Tex/LaTex ** device driver implementation and debugging ** source control systems and collaboration tools (CVS, SCCS, RCS, SVN) ** debugging and tuning tools for applications, OS, and network levels, primarily on Linux/Unix systems employment history: 2005-2007: Evryx, Inc: image recognition, custom web services, IT infrastructure support, systems programming, mobile applications 2004-2005: NASA Jet Propulsion Laboratory consulting for Dr. Martin Lo implementing visualization and numerical simulation systems space mission navigation planning for low-energy interplanetary transfers and orbit optimization for special satellite requirements 2005: Microcosm, Inc, produced animations to illustrate Mars mission transfer orbit cost analysis and tradeoffs 1988-2004: Caltech Computer Graphics Group under Prof. Al Barr: teaching assistant, research assistant, graduate student, support programmer, system administrator, continuing involvement to present in limited capacity 1992: built ecological housing at Findhorn Foundation in Scotland (construction, framing, roofing, stonework) 1986-1987: Scientific Programming Assistant, Lockheed Missiles and Space, Sunnyvale, CA: simulation and animation programming noteworthy projects: * computer animation projects (for SIGGRAPH electronic theater and adjoint to research) (Caltech) * physically-based modeling system (Caltech) * digital video editing system (Caltech) * data acquisition for MRI microscope (Caltech) * IT team for heterogeneous Unix cluster with custom software development environment (Caltech) * primarly Debian Linux IT and Systems Programmer, including all network administration to support 24/7 servers for computationally high loads with custom high-availability network failover system (Evryx) * OpenInventor visualization of numerical simulation output results and interactive trajectory choice and simulation controls (NASA JPL) misc: * references available on request * willing to consider relocating, telecomuting, and contract work