Mike Kramlich – Software Engineer – Colorado – 2014 November... Goals
Transcription
Mike Kramlich – Software Engineer – Colorado – 2014 November... Goals
Mike Kramlich – Software Engineer – Colorado – 2014 November 19 Goals to solve business or social problems via computer software, and to design, code, document, support, troubleshoot and optimize software systems interacting with good, smart, fun people with whom I can learn from, teach and mutually invest in a long-term career-helpful relationship in exchange for upper market USD/USA compensation for my time (senior/elite) General Overview strong on computer programming and software engineering fundamentals with a variety of technology solution and problem/industry domain experience but my current favorite tech mix/stack/ecosystem and areas include any/all of: Linux, Python, Java, Postgres, MySQL, sqlite3, Redis, 0MQ, nginx, web apps, web services, HTTP/HTML/JS, git, CLI’s, tooling, scripting, automation, backends, performance, scalability, prototyping, architecture, technical leadership, mentoring, and both using and contributing to the ecosystem of free and open source software. programming since childhood. learning continuously. mixture of self-taught from books, hands-on trial-and-error, original “homebrew” hobby sofware projects and finally professional on-the-job experience live in Colorado. can work remotely/off-site (M-F, fixed hours or asynch/flex) for anyone/anywhere, or, do F2F/on-site meetings/sprints in Colorado, or, do limited infrequent paid travel out-of-state/country. however, for me to ever consider moving outside Colorado – especially if you’d like me to go direct/FT/salary for you – I’d want to first reality test the relationship by doing a remote/off-site paid work project or trial period Experience and Accomplishments 2007 to present: Principal Software Enginer at Synrotek independent contractor doing software development and consulting for variety of clients across the world, mostly remote/offsite or local in-person in Colorado 2014 early: NemesisBit conception, research, design and prototyping of a new system to help Bitcoin with attack/disaster/scale risk mitigation via an original testing/simulation sandbox and service. Python, Linux. 2013 late to 2014 early: fixed several legacy bugs and optimized the performance and scalability of a Bitcoin gambling website, also added new automation scripts and improved docs. Python, MySQL, Linux. 2013 to present: Software Performance & Scalability started writing a new technical book on the topic of software performance and scalability; still in the research and outline phase and only iterating low-priority in free time my patterns cheatsheet (which the book outline grew from): http://synisma.neocities.org/comp_writing_perfscal.html 2013 late: Electrum accepted code contributor to the Electrum Bitcoin wallet software project by delivering several fixes to the legacy codebase; my Python code changes made it into the globally public released distro: https://github.com/spesmilo/electrum/commits?author=mkramlich 2013 (?): Aviron 7 Python, PyGame, Mac details & screenshots: http://synisma.neocities.org/aviron7.html 1 2012 late to 2013 mid: The Dread Space Pirate Richard published author of sci-fi comedy novella e-book whose reviews on Amazon are averaging 4.5 (out of 5). after successfully finishing and shipping (publishing via Amazon and SmashWords) the 1st book in June 2013, began working incrementally on the draft for a planned sequel, The Man in Black, which is both bigger and evolving slower (since only in my “free” time), but might be finished & published sometime in 2015. 1st book on Amazon: http://www.amazon.com/dp/B00DIAYCLW 2nd book previews on Reddit: http://www.reddit.com/r/DSPR 2012 (?): Postcast video dev, GUI, prototyping, Objective-C, QuickTime, Cocoa, XCode, Mac 2012 (?): Manning Publications This major publisher of technical books formally offered me the job of co-authoring their planned book titled “Hello! Python” designed to target novice programmers and utilize the (somewhat) famous web comic strip User Friendly for thematic branding and illustrations. I was offered a 5% royalty on the cover price and would be doing about half the work. I declined the opportunity both because my perceived work-to-return ratio didn’t look good enough, plus I had more important and draining things going on in my life at the time. Ultimately the other planned co-author (Anthony Briggs of Melbourne) did take the contract and write and publish the entire thing solo, and is currently published. I believe I was picked for the initial offer due to my mix of long-time programming knowledge and experience, passion for Python, writing skills and creativity. 2011 late to 2012 early: CTO of failed startup provided the top technical leadership and all hands-on software design/development for an original multi-component embedded system in the form of a personal kiosk intended for placement in health clubs and gyms. voting board member, considered a co-founder. I created, iterated upon and demonstrated repeatedly a successful end-to-end system prototype with interactive GUI, website and backend services, but then left after losing major faith & trust in some of the key team members while simultaneously I was doing the lion’s share of difficult work and for little equity and no pay. Python, Linux, BeagleBoard, iPad, PyGame, HTTP, HTML, with integrated program-controlled COTS digital cameras and weight scales 2012 (?): Warconomy conceived, designed and coded a simple turn-based strategy game with a text CLI. client/server, sockets, Twisted, Python code: https://github.com/mkramlich/warconomy 2012 (?): designed and coded a “Hello World” type of app for Arduino in which a Python serial client on Mac communicated with and controlled a C (well, Arduino’s C-like language) firmware piece running on the board to orchestrate the timing of on-board LED lighting state based on a (possibly) complex pattern microformat which was provided as an argument to the Python client’s CLI. . . ie. blinkin’ lights! 2011 (?): Ganymede conceived, designed and coded an original sci-fi adventure game with spaceships with a real-time event-driven engine in a topdown-POV 2D GUI desktop app. Python, PyGame, Mac. screenshot: http://synisma.neocities.org/ganymede_pic5.png 2010 to 2012: EduGamon conception, entrepreneurship, leadership and all software design and development of an original system for web-based, text-oriented educational software which taught lessons through interacting with a story-like world engine. Achieved working prototype system, demonstrated to users, pitched to target market both in person and via blogs and eventually accumulated about 30 people total (mostly teachers or parents) signed up to learn more and try it, but ultimately decided to mothball the project because it was not monetizing yet in order to free up time and focus on higher-priority income & career stuff as well as deal with a close family member with a major health crisis. All code/design/notes are saved. Python, HTTP, HTML, sqlite3, Linux. 2011 (?): ZiroZelle aka DDP conceived, designed and coded an original browser-based game/engine in Python for Linux. modular split between core 2 engine and game-specific content. UI was text-only via HTML with all logic server-side. adult theme with focus on player-NPC interaction and situational/inventory-based choices. 2011 (?): Dante’s Dunk Tank fixed legacy bugs and added remaining features in a web-based game owned by a contract client. Flash, ActionScript 3.0, Linux 2010 (?): Shattered Stars aka Galactic War conceived, designed and coded an original turn-based strategy computer game in Java for Windows and Linux. graphics, sound, multi-threaded, events. Was demonstrated to Greg Costikyan and Johnny Wilson of Manifesto Games, and accepted for publication by their indie game distribtion startup, and Mr. Wilson wrote and published online a play review of the pre-publication build of it. Costikyan and Wilson also gave me design feedback and encouragement. details & screenshots: http://synisma.neocities.org/sstars.html 2009 to 2010 (?): Dead By Zombie successful design, coding and marketing of an original 14,000 lines-of-code Python commercial Rogue-like game with simple creature AI, FSM-structured UI code, and an event engine; I eventually withdrew it from sale and instead created a public code repo for career portfolio promotion. It made its public meatspace debut at the Genghis Con 2009 game convention in Denver where I rented a vendor booth and personally promoted it there while in costume as a Mad Scientist. I contacted and paid the (famous) artist Richard Pace for the rights to use 2 of his existing zombie illustrations to promote and include in DBZ. Python, curses. downloadable standalone desktop distros for Windows (originally then dropped support), Mac and Linux. marketting & photos: http://synisma.neocities.org/deadbyzombie.html code: https://github.com/mkramlich/Dead_By_Zombie 2009 (?): Once Upon Orion and Pythulhu conceived, designed and code an original game and game engine with a terminal text UI. Python (TODO was this CLI or REPL?) 2009 (?): Cursed Mansion and LittleAdventures conceived, designed and coded an original game and game engine with a web UI. Python. (TODO desc structure) 2008 to 2011: PencilBot ESL for Double Encore FilaPet for Luke Feldman The Adventures of Khaki Pants Pete for Unilever (Klondike Bar) via Blockdot Postabon (renamed since to Signpost) lots of iPhone development as remote contractor for clients around the world, as either the sole developer, or, as the also-coding team lead & architect. every project shipped succesfully to the App Store as required and designed. (TODO add details for each project w/links). iOS SDK/API, Objective-C, CocoaTouch, XCode, Gimp, Audacity, bash, XML, JSON, HTTP, Mac. PencilBot ESL site: http://www.pencilbot.com/esl/esl/PencilBot.html PencilBot ESL screenshot: http://synisma.neocities.org/pencilbot_green_menu.png FilaPet site: http://filapet2.blogspot.com/ FilaPet screenshot: http://synisma.neocities.org/filapet_main.png Luke Feldman (FilaPet): http://skaffs.com/ KPP on GameSpot: http://www.gamespot.com/the-adventures-of-khaki-pants-pete/ KPP screenshot: http://synisma.neocities.org/klondike_mancave_start.png Signpost (Postabon): http://www.signpost.com/ Postabon screenshot: http://synisma.neocities.org/postabon_nearby_in_map_mode.png 2008: Apocalypse Dawn conceived, designed and coded an original computer adventure/strategy game set in a post-apocalyptic USA, in C for Linux, Mac and Windows (via CygWin). Loosely inspired by an 80’s 8-bit era game named Road War 2000, crossed with elements of the original Wasteland. code: https://github.com/mkramlich/miscpub/tree/master/ApocalypseDawn screenshot: http://synisma.neocities.org/apocdawn_sshot01.png 3 2008 (?): Grio conceived, designed and coded a Java AWT widget class which provides a Terminal/REPL-like GUI element within your app with features including: toggleable visibility/liveness, toggleable debug/superuser mode, registered sets of commands, built-in ‘meta’ commands like help listings & repeat-last, command handler API for apps, built-in command input format enforcement & parsing, scrollable output/history separate from the input field, optional slide-in/out animation effect, customizable fonts & colors. Scratched my own itch because I wanted something like this in several of my Java GUI app projects (like AB and SS.) Java, AWT, Swing, OO 2008 (?): American Barons conceived, designed and coded an original turn-based strategy/role-playing game about modern US life as a desktop GUI app. Java for Mac and Windows 2007 to 2008: ZodLogic Games conceived, created and ran an online games website using a freemium subscription model and featuring at launch 5 original browser-based games (Adventureland, Flash War Command, GGGG, Stratenism and a browser-based stripped-down prototype of DBZ ). abandoned and then closed the site eventually as a failed experiment as it never made enough money to justify the upfront R&D. Python, Flash, ActionScript 3.0, Apache, Django, MySQL, Linux, Gimp, Audacity, GraphViz, CygWin. (TODO add detail on each game) 2007 (?): Empyreal designed and coded a small game with a subset of Empire’s features. Python, curses code: https://github.com/mkramlich/empyreal 2006 (?): Tactihack2 unfinshed spike which recreates a subset of my previous game Tacti-Hack’s features, but this time with a GUI and client/server arch (with multiple client types included to prove it, including CLI). Python, PyGame, 0MQ code: https://github.com/mkramlich/Tactihack2 2005 (?): Tacti-Hack conceived, designed and coded an original hotseat-multiplayer turn-based computer game about team-of-individuals/missiondriven/level-based combat with an engine-vs-scenario modular architecture, and play mechanics modelled after a mix of the classic game X-COM: UFO Defense with a G.I. Joe-like theme/setting and a Rogue-like UI. C, curses, gcc/CygWin 2005 (?): StarSea conceived, designed and coded an original turn-based strategy wargame with a hexagon-based map set in space with fleets of warships controlled by multiple player empires. 2D graphics, desktop GUI, Java, AWT, Swing 2003 March to 2007 June: Senior Software Engineer at Orbitz/Cheaptickets/Trip/Travelport/Cendant in Denver & Chicago heavy Java/Linux shop, distributed architecture. I did a wide variety of things there over the years, including solving difficult long-standing bugs related to threading, memory management, and performance, along with occasional user-facing product feature work. Java, Spring, Ant, XML, XSL, StreamBase, AccuRev, Eclipse, Linux, JBoss, Bugzilla, JIRA, Confluence, LaTeX, JUnit, CVS, JMX, SNMP, Tangosol Coherence, DataPower XA35, Ethereal, Tomcat, ClearCase, LoadRunner, JMeter 2004 (?): StarFront conceived, designed and coded a game/simulation of real-time w/physics spaceship/station travel & combat game. scaled, zoomable 2D topdown vector graphics & audio, desktop GUI, mouse. Java, AWT 2004 (?): Ekonomy conceived, designed and coded an original strategy computer game in Java 2003 (?): Ryamon 4 conceived and designed all the rules and play piece material for an original simple board game modelling multiple playercontrolled societies competing for survival in a shared world, with an emphasis on economics and warfare. (TODO add link to the free PDF) 2002 (?): SpaceWrath conceived, designed and coded an original strategy computer game in C for Linux and Windows 2001 (?): Legacy Java, AWT, Swing 2000 April to October: Java Developer for Gilbarco aka Marconi Commerce Systems in Greensboro, NC contract fixed-scope Java development project helping to create the outdoor customer-facing GUI for a next-generation gas pump model. I wrote the bridge and implementation for the Keypad GUI, a mock Keypad simulator and a test harness, and on my own initiative also created miscellaneous internal tools for the team including a JavaPOS diagnostics & compliance tool, and a JVM/JRE diagnostic GUI widget called SysInfo (imagine a JMX explorer client before/without JMX existing.) Our project was featured in a year 2000 issue of Scientific American magazine (not sure which month, but it had a two-page spread with a big illustration of the pump.) Java, Linux, JavaPOS, RMI, CORBA, OO, UML, Swing, Rational Rose, ClearCase, Kawa, VisualCafe, the Ice Java browser. pump model series: http://www.gilbarco.com/us/products/fuel-dispensers/encore-s 2000 (?): War Command conceived, designed and coded an original real-time strategy computer game in C using OpenGL and GLUT for Linux and Windows. The core game mechanics were picked to emulate a classic game I loved named Command HQ by Dan Bunten at Microprose. 1999 July to October: Software Testing Support for AT&T @Home as fixed-scope contractor I installed, configured and supported their software during Y2K mitigation activities and compliance testing. patching of Solaris boxes. remote administration of Windows NT servers via SMS. wrote SQL queries and Oracle PL/SQL scripts. some Oracle database configuration. supporting AT&T’s Y2K testers with my knowledge of the Interplex GUI application, xBOI and CCS. (see my preceding contract gig for an explanation of these terms and context.) 1998 October to 1999 July: C++/Java Developer for TCI Cable / TCI.NET / AT&T @Home in Englewood, Colorado contractor fixed-scope project doing Java GUI application and C++ service backend development for the Interplex GUI call center application. distributed RPC middleware/bridge development and integration – the layer that sat between the Interplex GUI app and the CCS mainframe system provided by CSG Systems, via their API named xBOI. Looking back, I appeared to be one of very few people who ever got code working and running successfully on top of CSG’s xBOI API. Therefore after my contract ended and I left TCI I was soon thereafter contacted by several other people asking me to work on their systems which also needed to integrate with CSG’s mainframe. TCI management also begged me to come back to help with Y2K mitigation and testing support, in part due to my domain knowledge, and I obliged. C++, Java, CORBA, DCOM, 3270, xBOI, Visual C++ 5.0, UML, Toad, Java AWT & Swing, Solaris 1998 (?): Imperium conceived, designed and coded a turn-based strategy computer game in C using OpenGL and GLUT for Linux. The core game mechanics and design elements were picked to emulate a classic game I loved named Empire by Mark Baldwin and Walter Bright. I added additional unit and terrain types, modes and effects, and tweaked unit stats to taste. I created all graphics by hand and used off-the-shelf sound effects. 1997 September to 1998 September: Senior Web Developer at Digital Creators in Colorado contributed to the creation of web sites, web applications and multi-media CD-ROM’s as a web developer and programmer. designed & created a small Sybase SQL Anywhere database. HTTP, HTML, JavaScript, DynaScript, CGI, Perl (for most server-side logic and batch jobs), Java (only small simple browser-side applets), UNIX shell scripting, a little Flash, a little Photoshop, ERWin, Sybase, MS IE, Netscape Navigator. 1996 July to November: Tech Support Specialist at TeleTech in Thornton, Colorado 5 provided call center-based inbound technical support for the AT&T WorldNet dial-up/cable ISP, applying my knowledge of Windows 95 configuration, architecture, networking and the Internet 1991 (?): won a major Diplomacy tournament championship held in Colorado. It is a board game modeling a pre-WWI historical situation with players serving as national leaders, and requires a balance between chess-like logical thinking skills plus careful, clever interpersonal diplomacy, negotiation, charisma and group leadership skills. 1990: Organism conceived, designed and coded an original strategy desktop GUI computer game in C/C++ for 16-bit Windows using Borland Turbo C++. 1989: Valkyrie conceived, designed and coded an original strategy desktop GUI computer game in C for 16-bit Windows using Borland Turbo C. 1987: Centurion conceived, designed and coded an original wargame loosely based on Roman Empire era conquest in BASIC for the Apple II. 1986: Millenia designed and coded an original homebrew variant of Avalon Hill’s 80’s 8-bit era game Galaxy, first in BASIC (in the built-in Bill Gates era Microsoft/Applesoft interpreter shell, and then stored on 5-inch floppy disks) for the 8-bit/6502 Steve Wozniak era Apple II, then in Borland’s Turbo BASIC IDE for 16-bit MS-DOS PC’s, then rewritten/reinvented again from scratch in C using Turbo C and lastly also (IIRC) with djgpp. Personal and Hobbies my personality could be described as a 50/50 hybrid balance between being very logical/engineering/scientific/maker/problemsolver oriented, and, a creative and fun side that loves comedy, imagination, music, movies and stories. when I chose a Gmail address I picked the term ‘groglogic’ to refer to it. my hobbies include reading (esp history, science fiction, comedy and technical topics such as CS and space), writing (some creative/fiction like DSPR, and some technical like my underway SPS book), playing and designing games of all types (esp a fan of Advanced Squad Leader, NetHack, Minecraft and Call of Duty), LEGO, collecting and listening to music, doing “domestic exploring” (walking around), and doing random ad hoc “real world” problem-solving when inspired Closing and Follow-Up NOTE: some experience, accomplishments or projects unshown for brevity, irrelevance, privacy or just forgot my website: http://synisma.neocities.org/ LinkedIn: http://www.linkedin.com/pub/michael-kramlich/3/ab7/51a GitHub: https://github.com/mkramlich email: [email protected] Skype: mike.kramlich 6