Kevin Seghetti
Software Engineer

I am a software engineer who spent the first 11 years of my career developing video games and tools for video game creation. Since 1998 have been doing embedded systems programming, including web enabling embedded devices, as well as full stack web applications.

One of my more valuable assets is my ability to work at any level of abstraction, from high level Javascript through 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 watched the computer industry grow up, and have grown up with it, continuing to enjoy learning new technologies as they emerge. I prefer Linux as my primary development environment, but am capable of working in Windows as well.

Objectives
  • Leverage my ability to work in a large variety of environments
  • Learn new technologies
  • Automate the development cycle as much as possible
  • Balance an exciting work life with an enriching home life
  • Time permitting, make a contribution back to the open source community
Recent Accomplishments
Added modern web interface to legacy hardware control systems

Given a text based API over a socket, implemented full stack server and web client providing a modern, remotely accessible interface into a desktop windows application, configuring and controlling large industrial equipment. Clients enjoy being able to operate these systems with tablets where they need to, no longer having to sit in the control booth.

Academics placement tests

Comprehensive web app for authoring, administering, and reporting academic placement tests utilizing modern web stack. See the Django and browser sections of skills below for full list of technologies.

Major theme park ride components

Developed software and control infrastructure to delight guests on a recently opened major theme park attraction. On this video, and the image to the left, every place you see a display with a Z on it, it is running custom video playback software I wrote, which runs on a rapsberry Pi, and is responding in real time to guest shooting at them. There are over 100 of them in the ride.

Skills / Experience
Python/Django

Comprehensive web app for authoring and administering academic placement tests.

Configuration management for embedded Pi based systems via web, front panel, & central server (low level I/O in C++, Python for logic, glued together via sockets).

Browser side

HTML/DOM/Javascript (fully buzzword compliant) Responsive web design.

Modern client side apps, including question editors for academic testing system, as well as modern interface to legacy industrial controls, using modern web stack pieces including Ecmascript 6 / handlebars / bootstrap / jQuery / chai / jasmine / jest / /backbone.js / /React / CreateReactApp/ / /Redux / REST / GraphQL

Web interface for configuring embedded application parameters with real time update (COMET), responsive interface using bootstrap
HTML5 canvas based games for Kids-n-Bids, as well as PixiJS and WebGL including custom shaders
Jquery+plugins, yui, JSON, 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. (some before AJAX was named).
Prefer Javascript with Javasript: the good parts intelligently applied, and at least ES6.

Server side web application programming

NodeJS / npm /
Python / Django
Perl (Class::DBI, Mason, tons of CPAN modules), EmbPerl
PHP (Code Igniter)
Rails
Have written custom http servers for real time updating of web UIs.

Deployment / automation / virtualization / testing

Webpack / Babel / Sass
Karma / Jest / Jenkins / Istanbul / Protractor /
PhantomJS / Selenium
Vagrant / VirtualBox / Docker / Terraform / AWS

iOS/Android

Wrote an enterprise app which communicates with a back end server that allows the client to view (cached) lists of people from the server, generate new scheduled events and queue them for delivery to the server, and integrated with google maps to display maps with people's locations marked. Also uses push notifications to know when to fetch updated lists.

Ported and debugged several iOS games to Android using the Apportable SDK.

Project Management

Provided project and engineering management on a wide variety of successful projects. Breaking a project down into tasks, time estimation, resource allocation, progress tracking, etc. Prefer agile methodologies such as Scrum or Kanban

C/C++/Objective C

Linux / Windows / MS DOS / Embedded. Everything from bit banging time critical C code to large OO systems in C++. Experience with sockets, interthread communication/mutexes (and how to prevent race conditions), etc. Prefer C++0x11 or newer

xslt/XPath/XML

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. Prefer Perl5 with Perl Best Practices intelligently applied.

SQL / NoSQL

Mostly postgreSQL, also SQLite3, MySQL, Informix, redis for configuration management, mongo

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

git, wiki, Instant Messaging, ssh, vnc, Google Docs (and rest of online office suite, plus drive), Slack, Signal, 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 both client and server side 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.

8051/embedded devices

Embedded firmware on small RS-485 networked devices. I wrote the majority of the custom code found in IntellinetControls product line, as well as contributing to various Russound products. This included managing a custom embedded linux spin (for the C4), socked based communication (between the C4 and the DH1), and RS-485 based networking (for the other components), as well as providing web based configuration and control. In particular the audio keypads were a lot of fun. 2K ROM, 256 bytes of RAM. In that space, it had to:

  1. Monitor and communicate over a RS-485 Network using a custom protocol (the network stack took up a lot of the ROM)

  2. Record incoming IR commands

  3. Play tones/beeps on a speaker

  4. Scan the keypad matrix for user input

  5. Set the state of 9 LEDs over a shift register (there were LEDs behind each button to indicate status of the system)

  6. Read device address from dip switches, identify itself on the network, and other startup tasks

All of the above had to happen in real time. There were 0 bytes free in the ROM near the end of development. Later features required first optimizing the existing code to make room.

GTK

GUI toolkit under Linux (dynamically generated interface in World Foundry attribute editor).

Video games

Click here for complete list

MIPS RS3000

Sony Playstation

80x86 et al.

IBM PC

680x0

Sega 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: audio driver, including reverse engineering the boot ROM so that the Game Genie could play sounds, yet restore the sound system to its initial state so the game could then start correctly (the hardest part of that was, the ROM was bank switched out as part of the load process, so we had to pull the code which managed the transition from RAM and dissassemble it so we could work out what hardware registers were used for the bank switching)

Hardware Design & Debugging

PCB Layout, Digital Logic using PAL's and small embedded processors. Debugging of hardware using oscilloscopes, logical analyzers.

Employment History
Jan 2021 — Present CTO for Diglossia
  • Operate as the technical liaison to the rest of the executive team, participated in product planning and estimating, advised on technologies and capabilities or our products.
  • Manage/coordinate various development teams, architecture, write technical requirements and specs.
  • Write documentation/user manuals for each product.
  • Act as lead developer: Maintenance, modernizing, and enhancement of the entire product line of educational products, including the academic placement tests web app I previously developed.
  • Act as lead devops: Automated deployment of products to AWS using terraform. Management of company infrastructure and technical assets. Manage transition to EKS and external devops team.
Feb 2011 — Apr 2020 Freelance Contractor - for various companies, including
Jan 2002 — Feb 2011 Freelance Contractor — Mostly worked for Russound LMP:
  • Maintained 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 Freelance Contractor — 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)
Oct 96-Jul 98 Senior Software Engineer at Recombinant Limited
  • 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)
Sept 94-Sept 96 Senior Software Engineer at Cave Logic Studios, Ltd.
  • 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

Freelance Contractor
  • Ported pseudo-3D video game (Ballz) from the Genesis to the SNES, ended up contributing to the Genesis version as well
Feb 93-Jan 94 Senior Software Engineer at Alexandria, Inc.(later known as Oddworld)
  • 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 Freelance Contractor — 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
Jul 87-Feb 90

Software Engineer for Spectrum HoloByte
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.
Web presence
Interests

See my home page for more about me personally.