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: groglogic@gmail.com
Skype: mike.kramlich
6