kts@tenetti.org
(note:
I am the bigger one in the picture ;-)
I am a software engineer who spent the first 11 years of my career developing video games and tools for video game creation, and since 1998 have been doing embedded systems programming, including web enabling embedded devices. I would say my most valuable asset is my ability to work at any level of abstraction, from high level Javascript or C++ down to debugging hardware with logic analyzers and oscilloscopes. I have a broad variety of experience and can jump into an existing project/code base and quickly be doing productive work. I am self motivated and don't require much management. I have been successfully working from home with great success since 1998, and wish to continue doing so. I prefer Linux as my primary development environment, but am capable of working in windows as well.
leverage my ability to work in a large variety of environments/processors
work on next generation web enabled devices
Automate development as much as possible
have a work at home environment which is successful
Balance an exciting work life with an enriching home life
Time permitting make a contribution back to the open source community
(note I have been accomplishing all of these since 1998)
|
C/C++ |
Linux / Windows / MS DOS / Embedded. Everything from bit banging time critical C code to large OO systems in C++. |
|
Browser side HTML/DOM/Javascript (fully buzzword compliant) |
AJAX/Comet style Web based applications interface to Net enabled appliances ( multi-room audio routing system and SMS3), on various http servers, including apache, making a common code base work under Firefox / Mozilla / Netscape / Internet Explorer, including client side dynamically generated pages and near real-time updated status indicators. (mostly before AJAX was named). More recently been using various toolkits like Jquery and yui. |
|
Server side web application programming |
Perl , EmbPerl, PHP, Code Igniter, have written custom http servers for real time updating of web UIs |
|
Generation of header and definition files in multiple languages from a common source definition. XML as API for RPC, XML as data exchange format, XML as data definition language. |
|
|
Perl & shell scripting |
Core functionality and web interface server side for SMS3. All sorts of projects, perl is my goto language to glue stuff together. Prefer Perl5 with Perl Best Practices intelligently applied |
|
Mostly postgreSQL, some MySQL, Informix. Backend for SMS3, Storing song metadata, tracking user music preferences, complex search/filtering options. Dynamic synthesis of SQL queries, data abstraction/encapsulation using views into tables, data integrity via constraints. No administration required, tens of thousands of units fielded. Query optimization (SMS3 ran on a 1Ghz 486 equiv) |
|
|
Unix application development |
Linux & Embedded Linux. Focus on network technologies, deployable systems with no administration required. |
|
Distributed development |
via subversion (would like to use git someday), Bugzilla, wiki, Instant Messaging, ssh, vnc, Cloud computing, Skype, Doxygen and of course email |
|
3D math and rendering |
Experienced with 3D math and rendering both in software and via OpenGL/DirectX, Physics/Collision detection, etc., see World Foundry |
|
automated builds and testing |
Automatic build verification, regression and smoke testing with expect/tcl and valgrind. Also some Unit testing with cppunit. Working toward test driven development, using Design by Contract, “if it runs without asserting it is correct” . Also automated asset production pipelines for video games. |
|
Sysadmin |
Maintain my local network with about 12 computers (and dozens of other devices with IP addresses), Bind(DNS), DHCP, NFS, SMB, Apache, multiple routes to the internet |
|
embedded firmware on small RS-485 networked devices |
|
|
gui toolkit under Linux (dynamically generated interface in World Foundry attribute editor) |
|
|
Video games |
|
|
MIPS RS3000 |
Sony Playstation |
|
80x86 et al. |
IBM PC |
|
680x0 |
Genesis / Sega-CD / Amiga / Embedded |
|
Z80/Rabbit |
Sega Master System / Sega Genesis Sound Subsystem (real time sampled audio playback while also executing MidiFile player) / Intellinet RS485 Network to Ethernet adapter |
|
65816 |
Super Nintendo (SNES) |
|
SPC700 |
SNES Sound Subsystem |
|
Hardware Design & Debugging |
PCB Layout, Digital Logic using PAL's and small embedded processors. Debugging of hardware using oscilloscopes, logical analyzers. |
|
Other |
I am always experimenting with/looking at other technologies, I have dabbled in Python, TurboGears, Ruby,, Lua, Catalyst, TT2, lots of stuff on CPAN) , Beginning iOS development in Objective C. |
Feb 2011 – Present
Mostly worked for Art & Logic,but also IONZERO and others.
Jan 2002 – Feb 2011
Mostly worked for Russound LMP:
Did some support work on the Collage project.
On the team which developed the ACA-E5.
Lead developer on a multiple stream music storage and playback device (the SMS3 ), both core functionality and web interface (developed application interface via web browser using technologies similar to what is now called AJAX).
Continued development of the IntelliNet product line, including RS1000, FM2024 and RS3000.
Jul 98 – Dec 2001
Mostly worked for Intellinet Controls:
developed 8051 based firmware for small, RS-485 networked devices
enhanced & maintained firmware for 68000 based control system which managed the RS-485 networked devices
developed web server providing web based configuration and control for their entire product line, including a residential system which automates HVAC, Audio routing, temperature sensing and lighting control. (used AJAX techniques, before they were named)
Senior Software Engineer
Oct 96-Jul 98
Developed reusable 3D video game engine for Sony Playstation & Windows , including Physics/Collision detection, 3D rendering pipeline, object management, resource management (streaming assets from disc as needed)
Developed video game development tools enabling artists & level designers to create levels for the above 3D engine.
(all of which is now released under the GPL as World Foundry (and ported to Linux))
Senior Software Engineer
Sept 94-Sept 96
Sony Playstation development, core libraries and pc tools. (beginnings of World Foundry above, the code base and tools were licensed to Recombinant)
Feb 94-Aug 94
Ported pseudo-3D video game (Ballz) from the Genesis to the SNES, ended up contributing to the Genesis version as well
Senior Software Engineer
Feb 93-Jan 94
Licensed SNES and Genesis libraries to them, enhanced and supported those libraries
Developed Sylvester & Tweety for the Genesis
Started a 3DO project
Feb 90-Feb 93
Various Console video games for Sega Master
System & Sega Genesis:
Ported Pigskin FootBrawl arcade game to Genesis
Ported Rampart arcade game to Sega Master System
Developed tool chain for video game development system for the Sega Genesis and the Super Nintendo:
Windowed text mode source level debugger
Debugged hardware, some PAL programming
command line tools
hardware libraries for Genesis and SNES
demo code for Genesis and SNES
Ported Stormlord Amiga game to Genesis
Developed real time sound driver for Sega Genesis, FM and sample playback, used in several games
Developed midi interface for Gensis, so that musicians could compose music and sound effects directly on the device
Software Engineer Jul 87-Feb 90
Console and PC video games:
Tetris Amiga
Welltris PC
Falcon AT: Sound driver for various PC sound cards, developed tools which allowed artists to create 3D objects
Monopoly for the Sega Master System. First game developed for the SMS by American programmers, won game of the year from one industry magazine.
See my home page for more about me personally.
Computing. The
art of writing code for the long term
Promoting Open
Source
Parenting
Sailing
Music
Composition and Performance, Drumming
Video game development World
Foundry
Science Fiction
Video / Film Production /
Rendering
Digital Hardware Design
Last revised Nov 15th 2011.