Shaun Tancheff
5174 Tuxedo Blvd
Mound, MN 55364
Phone: (612) 454-0886
E-Mail: shaun@tancheff.com
WWW: http://shaun.tancheff.com
Objective
Seeking multi-platform and embedded software development.
Overview
I am experienced in all levels of systems design, development and deployment. I have done end-to-end software systems and demonstrated a high degree of competence throughout the software life cycle. I have done requirements acquisition, initial specification, design, prototyping, tool selection, development, documentation, testing, deployment, support, and maintenance. Other indirect software skills include process improvement and the ability to simplify parts of complex systems allowing performance issues to be eliminated.
After transferring from VMI to the University of St.Thomas, I earned a BA in Mathematics with a minor in Quantitative Methods & Computer Science.
 
Experience
AeonAzure, LLC
Owner and Chief Manager
Minnetonka, MN
2009 - Present
  • Embedded µC/OS-II and STM32
    • Wrote bootloader for atypical RS-485 interface.
    • Assisted with µC/OS-II (STM32) embedded firmware application.
    • Wrote Automated Test Library and Tests in Python.
    • Wrote Qt based UI for development testing on Win32 and Linux.
  • Linux and Embedded Qt
    • Wrote Qt based UI for development and assisted other teams with Embedded Qt.
  • Linux Kernel (Embedded)
    • Wrote drivers (USB OTG device-side, Framebuffer, SD/MMC, Touchpanel, etc) for a Linux/ARM/uClibc (Freescale i.MX21) based PDA. Kernel work based on 2.6.14.5. Backported SD updates from 2.6.15. Backported VM, and CFI updates from 2.6.16.
    • Built Linux and Cygwin hosted GNU ARM cross toolchain (arm-linux-uclibc-).
    • Built JFFS2, CRAMFS root filesystems.
    • Ported GUI prototype to Linux (framebuffer, posix timers, message queue, dirent) in 1 day.
    • Ported J2ME and demonstrated a sample Java application.
    • Wrote remote test framework (TCP/IP Sockets based) to communicate with application message queue and capture screen buffer contents.
    • Modified ItsyEth Windows driver to work on XP with Linux USB/CDC-Ethernet (gadget) driver.
    • Got (trivial) RNDIS patch applied to main Linus kernel :-)
  • Web Services
    • Built an application to support requirements traceability and work flow for test engineers.
    • Used TurboGears, CherryPy, SqlAlchemy, MochiKit, etc. for web facing client side UI.
    • Used ReportLab for PDF Report generation.
VoiceNet Technolgies, Inc
Consultant and Vice President
Eagan, MN
1995 - 2011
  • Embedded XP
    • Assisted on C# project to generate reports and enable automatic detection, configuration and printing to network printers.
  • Embedded Software Development and Testing.
    • Embedded platform is an end user device used to communicate via IrDA to a PC, and RF to an INS. You can visualize this as a fancy ‘remote’ control that can be customized via IrDA from a PC. Then think of the INS as the remote controlled ‘car’.
    • Modified device firmware to enable an application to respond via RF as an INS. This is used to test that the ‘remote’ responds to the ‘car’ correctly because the ‘car’'s responses are deterministic.
    • Updated embedded test platform software to add 3 additional keys (15 keys total). Other bug fixes and performance improvements as required.
  • DL Tools Suite: Postmortem analysis of application to device communication.
    • Initially a perl script that supported two devices now a C program supporting eight devices and two protocols.
    • Two orders of magnitude performance improvement (dlcode).
    • Added full parameter support and detailed annotation (dldata, bmap.txt, spd.ini).
    • Added comparison tools and support for collections (dlcomp), and (dlcc).
    • Added support for telemetry data collected from Logic Analyzer (dl_trv).
  • Automation Support Tools
    • Inventory Tracking Database.
    • Automation Verification Execution Environment.
    • Application object view for looking up application widgets by name or id. All of the widgets in the target application were reference by name in an effort to make automation scripts generic, with some success.
    • Arc and Node editor to support the automated software navigation.
  • Software Defect Tracking System.
    • Re-wrote and existing system in Java using Servlets and Apache.
    • Configured and installed the development and production environments.
    • Integrated LXR and Bonsai (for dozens of products and hundreds of releases).
    • Uses JDBC connectivity for access to Oracle 8i (SQL).
  • GUI Tools for Verification and Test.
    • Several GUI tools that manipulate VT metadata stored in SQL Anywhere database.
    • Program suite handles the input, output, and analysis of the current verification and test coverage of application requirements.
    • Tools generate formal execution tests and final VT documentation in Postscript, ASCII, or Maker Interchange Format.
    • Program for detail tracking of test implementation and automation. Generates inputs to the Automation Execution Environment.
    • Developed an interactive program to facilitate the execution of manual verification test procedures. The program supports undo, redo, save, and restore as well as navigation features facilitating branching, and looping.
  • Remote Test Facility
    • I designed and developed a complete software test automation platform.
    • Controls software on OS/2 and Windows from OS/2, Windows, or Linux.
    • Supports White Box and Black Box testing.
    • Purposed designed to replace Automated Test Facility.
    • Scriptable with Python and extensible with plugins.
    • Example plugins to do remote file manipulation, poke device drivers, read/write from named pipes, and generate custom event messages.
    • Very fast execution and interactive development.
    • Wrote LabVIEW Code Interface Node (CIN) and Visual Interface (vi) for RTF.
    • Open architecture to easily add new functionality: Hardware automation or an OCR engine for example.
    • Can control any number of remote machines simultaneously
  • CVS Development and Administration
    • Administer OS/2 and UNIX repositories connected via Pserver protocol.
    • Maintain the OS/2 port of CVS.
    • Supply local builds and customizations of CVS for OS/2, Windows, Solaris, and Linux.
    • Added a custom protocol designed to prevent unqualified software from being used inadvertantly in a regulated environment.
  • Automated Test Facility
    • Maintained and developed a library of scripts for use by the VT group.
    • Wrote replacement mouse and keyboard functionality.
    • Wrote extensions to poke a device driver on the target software.
    • Wrote code to stuff a named pipe on the target software.
    • Wrote replacement ASCII -> Binary data table code for 3 orders of magnitude performance improvement.
    • Added interface to National Instruments ValueMotion device.
    • Added interface to GPIB-ENet device.
    • Added generic SQL->Binary data table interface.
    • Wrote automated location and navigation.
  • Installing, Configuring, Building, Porting, Patching, and Administration.
    • Binutils, GCC, and GLIBC both bootstrap and as a cross compiler (x86, Sparc, Mips).
    • Web Infrastructure: Perl, Apache, mod_perl, JServ, TWiki, LXR, Bonsai, Python.
    • Porting to OS/2: CVS, wxWindows(alpha), wxPython(alpha), Python, Perl, MySQL-Python, SWIG
    • Patching and building EMX.
  • Disciplined and Regulated Environments.
    • I am familiar with working within a disciplined configuration management environment (Medical Devices).
    • I maintain tools written to support software auditing.
    • I have written and performed software verification test plans.
  • Scripting language and program extensions.
    • A Java Native Interface to RCS, specifically rlog this works for both the OS/2 and UNIX platforms.
    • Python extensions with SWIG that work on OS/2, UNIX and Windows.
    • A custom pmexe.exe for VX-REXX, and a DLL version of the same for common REXX. REXX extensions mostly involve process control and standard i/o redirection.
MarketLink, Inc
Software Developer
Eden Prairie, MN
1993 - 1995
  • GUI Application Developer for Interactive Voice Response
    • Windows based GUI application that unified the administration, development and deployment of call flows and speech files and other errata.
    • Application was designed to be extensible and was redeployed as several different systems in various markets.
    • Unified interface to two or more remote UNIX machines hosting an SQL database, multiple telephony units, and a Fax On Demand platform.
    • Various support programs that reside on UNIX platforms, written in C.
    • I used the system to develop the prototype for the Edina Realty Hotline.
    • Wrote the Fax On Demand portion of the system.
    • The Fax On Demand portion is somewhat notable since the fax data had to be generated dynamically and, at the time, fax cards had not yet added the functionality. I built a font and wrote code to render the font onto a template image, translate it to G3 (Fax) format and fax the final image.
Computer Aid, Inc
Contract Engineer
Eden Prairie, MN
April to August 1993
Hennepin County Criminal Justice Information System
  • This portion of the system was projected for a 3-year development cycle and a 9-person development team. I worked on a piece of the system that was budgeted for twelve man months. I shared project with one other developer.
  • We completed this sub-system in significantly less time that expected, which I attribute primarily to the completeness of the design document.
Premis Corporation
Software Developer
Minnetonka, Minnesota
1992 - 1993
Commercial ‘Off The Self’ Software Development
  • Developed character based UI software that ran on SCO XENIX, SCO UNIX, AIX, and DOS machines.
  • Designed and developed a contact management system for use by multiple users. Primarily intended to be used by a sales force.
  • In addition to writing code and fixing bugs, all of our tools were source licensed and C++ or C, I spent some time porting the software to a Linux machine running slackware, this was a pre-1.0 kernel.
  • I did the initial port of the software to AIX.
PEAKSolutions, Inc.
Software Developer
Bloomington, MN
1991 - 1992
Custom Software, Expert Systems
  • Developed and character based UI front-end for a semi-intelligent help desk application. I wrote a replacement to the expert system shell that performed a question to answer fuzzy search, it was the only way to get the response time demanded of the application.
  • Help desk results were displayed with the ability to press any single number or letter (36 possible commands). Each command could generate results either by jumping about within the current data, or executing commands against any of the connected system.
  • Adapted the fuzzy search algorithm to a property accounting prototype that could connect the inventory to the purchase orders, and thus the project opening the purchase order. The prototype had a 93% accuracy. Later we found out that the customer considered anything over 80% to be a fundable project.
  • Finished a scarce resource allocation system, mostly final bug fixes and minor improvements.
  • I was able to refactor an interactive searching system to improve user response times. I developed a database pre-fetch, caching scheme to significantly improve the end-user experience. Actual improvement was a 7 to 10 times faster. Quick enough to make the system response acceptable to the customer and enjoyable for the user.
Education
University of St. Thomas (UST)
Bachelor of Arts
St. Paul, MN
February, 1989 - May, 1991
Major: Mathematics
Concentration: Quantitative Methods & Computer Science

Virginia Military Institute (VMI)
Transfer
Lexington, VA
August, 1987 - December, 1988
Major: Physics
Skills
Operating Systems: Linux, Windows, µC/OS-II, Thread-X, OS/2
Architectures: Amd64, x86, ARM, MIPS, VAX
Databases: Oracle, DB2, Informix, PostgreSQL, Sybase
Languages: C, C++, Python, Java, C#, F77, Perl, HTML
Technologies: CVS, Subversion, Linux, Trac, TurboGears, Qt, SQL, RPC, NFS, SAMBA
Specialties: Embedded, Multi-Platform, Cross-Platform, Automation, Toolchains
References
Available Upon Request