Resume 2010
Thomas
(Tomasz) Gil
Seattle
WA, USA
tgil@dikte.net
http://www.dikte.net
Voice Mail: 206.7929570
Projects in software design, development and architecture - systems and applications. My best work is in special-purpose application infrastructure and in attacking difficult problems. My strengths are in problem analysis, generalization leading to a conceptual design framework and construction and organization of code. I am interested in new and emerging technologies – like wireless devices – and emerging architectural paradigms – like Cloud Computing. Can do technical project management work.
EXAMPLES OF WORK:
Concurrency:
-CDG/Boeing: I designed criteria for triggering interdependent database processing operations
-Marchex: I designed and implemented a log processor program that can be run in many instances allowing for trivial scaling
Transactions and persistence:
-Amazon: I introduced autonomous transactions to commit error records in case a work item failed and was rolled back
-CDG/Boeing: I dealt with large updates (150k rows) that needed to be committed in chunks and available to be reversed by another update as if rolled back
Control:
-Marchex: I designed a system for controlling the parameters of advertising campaigns to achieve their best performance - both simple and optimal control
-Sproqit: I designed a flow control system that allowed for media data to be sent in a low-priority channel over the same link as high priority data
Data modeling:
-I frequently offered input on questions in data modeling insisting on verbalizing the nature of relationships between entities driving toward schema normalization.
-Marchex: I designed a data model change that simply captured history of changes to the data by adding time attributes to certain entities and forbidding their deletion
Communication:
-Graphon: led the formalization of the RapidX display protocol and wrote complex code for optimal transmission of graphical quantities
-Graphon (GoGlobal): I designed the layered communication protocol system and the server side use of that system
SKILLS, TECHNOLOGIES:
Main Expertise: Java, C/C++, SQL, OOP, J2EE, JMX, XML, UML, UNIX-Linux-Windows, TCP/IP, Oracle, MySQL, PostgreSQL, JNDI, Open Source Software.
Java technologies: Spring, Hibernate, iBatis, ant, ivy, Tomcat, JBoss, Eclipse, JNI, J2EE/EJB, JMX
Linux/UNIX technologies: C/C++, GNU, gdb, valgrind, bash, perl, python, binary tools: nm, linkers, lib/ar
MS Windows technologies: Visual Studio C++/C#, OLE DB, COM, BoundsChecker, MS Windows SDK/DDK, NT kernel, SQL Server
Database technologies: Oracle, MySQL, PostgreSQL, MS SQL Server, JDBC, SQL, Java ORM tools: Spring Framework, iBatis, Hibernate
Web application technologies: Velocity, JSP, Spring MVC framework
Programming environments: UNIX/Linux (most major flavors), Java, Tomcat, JBoss; Win32;
Specifications/Protocols: SSL/SSH, JNI, IDL, CORBA/RPC, RMI, COM, POSIX Threads (pthread), XML, J2EE, JMX, EJB, Unicode
Programming languages and tools: C/C++, Java/C#, Fortran; Eclipse; GNU, Rational tools for Windows, ant, CruiseControl; Rational ClearCase and UCM; make, perforce (p4), totalview and gdb debuggers, cvs, subversion, valgrind for Linux, UNIX/DOS/NT command shells, Python, some Perl; binary tools: nm, linkers, lib/ar
Software methodologies, project management: OOD/OOP, UML, "Design Patterns", "4+1" software design and development view, all phases of software product life cycle, SCRUM, Feature Driven Development
Large organization experience: e-commerce business operations using Linux and Oracle – Amazon.com – software management, deployment, support; software development for Boeing
September 2008 – present - Marchex - Java, MySQL, internet advertising platform, web serving and web event tracking
carried out major implementations of the advertising platform including web serving with variable content, web event tracking and reporting
helped combine capabilities of two projects to increase versatility of the platform with less effort furthering company's goals
designed Java software, SQL queries as well as data models supporting persistence of change history
implemented advertising campaign management system as an automated control system
April 2006 – September 2008 - contract work Boeing/CDG projects - Java, Oracle, XML, web application development
online airplane documentation for 787 and other Boeing airplanes implementing a database supported complex version control system with indexing and searching using TeraXML search technology
worked on a complex system of versioning of structured content for the 787 airplane documentation
created and maintained a custom build and deployment system for use by development and QA based on Ant, Rational ClearCase, CruiseControl and JMX
February 2005 – March 2006 – Sr Software Engineer at Sproqit Technologies, Kirkland, WA; software products providing remote secure access to application data for mobile devices
designed and implemented data transfer feature for delivery of generic binary content and media to/from mobile devices
created a Java/JMX based console to monitor the behavior of Sproqit discovery service
worked in C/C++ under MS Windows needed for multiuser and scalable server features, and on shipping Workgroup Agent Sproqit server product, implemented licensing features for Workgroup
interaction with MS SQL Server, multithreading under Windows, TCP/IP, programming a server with asynchronous event-driven architecture
demonstrated modern software development techniques showing how goals can be accomplished faster and more reliably with appropriate code structure and object orientation, tried to influence practices at the company and make it more effective
June 2003 – February 2005 - Software Development Engineer at Amazon.com, Seattle, WA; support and software development in the area of external fulfillment - interaction with outside vendors
worked on large full-featured top-level business workflow backend application with evolving features interfaced to other business subsystems - order pipeline, payments, customer returns, inventory management, vendor/merchant connectivity, item catalogs - using a variety of connectivity techniques
worked with Oracle databases - using SQL, PL/SQL and Oracle-specific features such as message queues, programming SQL access with Oracle specific accessors with C++, perl and JDBC
use of large-enterprise software techniques and tools: perforce source control, fast and disciplined release cycle management, formalized code review and build systems
design and development of support aspects of the system: structured logging system with C++ instrumentation and tools for exploring information contained in log files, schemes for monitoring data flow using filesystems and databases; definition, collection, analysis and presentation of performance metrics
designed and implemented a support system with a Web-console using JBoss, using EJB's and Java-based auxiliary operations for file replication and index building, implemented a number of JDBC-based tools
stabilized operations and introduced software improvements in the area of magazine subscriptions and customer returns of merchandise
part of interdepartmental team charged with integrating a large number of new outside vendors into the Amazon system
part of interdepartmental team charged with refactoring of Amazon legacy code to changing needs
acted as SDE on-duty providing backup to support engineers and system operators
defined and maintained the platform in a very mixed environment with Java, Windows, UNIX, XML, JNI , shared libraries, dealt with development tools, performance instrumentation, supporting data input/output in dual form: Java objects and XML documents
responsible for negotiation of Java API interface features with customer - a large software firm; wrote product requirements, software design documents, led team programmers in implementation, also designed and lead implementation of an XML-based Web-services-like API interface and framework for hosting the same optimization algorithms
technical lead for a group including algorithm C++ programmers, mathematicians and control engineers; contributed greatly to refactoring of core code
acted as QA lead for the operational features of the product; documented operational testing procedures, wrote a lot of supporting test harness code - mostly in Java and scripts - and defined QA procedures
led a porting effort from the Windows platform to UNIX/Linux - port was performed very quickly
principal engineer in design, implementation and maintenance of the protocol middleware, analogous to CORBA and with features similar to J2EE, which defined much of the platform with I/O, threading and synchronization utilities; the sophisticated object-oriented middleware code provides seamless interoperability between UNIXes, Win32 and Java, facilitates new application protocol extensions and adaptation to new communication network topologies; instructed and mentored engineers on appropriate uses of the protocol framework, operating system resources, threads and synchronization methods
architected the server-side of Bridges and GO-Global as a 3-tier system; it is now ported to many UNIX flavors (Solaris, HPUX, True64, AIX, Linux); it involved PostgreSQL database, FlexLM license manager, dynamic shared libraries, and X Window system - product earned the SunTone certification on Solaris; specified and implemented the authentication, authorization, and execution aspects of the server; dealt with a variety of UNIX authentication issues including AFS; mentored QA in complex areas such as authentication and security, IP networking
led the formalization of the Graphon display protocol (RapidX); wrote complex code for optimal transmission of graphical quantities; provided technical leadership through written specifications, design documents and explanatory papers emphasizing the development of concepts and design flexibility; influenced entire product strategy and overall architecture
instrumental in integration of Corel Corp. technology acquired by Graphon
effective in technical sales and customer support in troubleshooting problems with application integration; traveled to customer sites to resolve problems - performed reliably and successfully under scrutiny from other respected software vendors requiring distributed system integration - demonstrated a bug in iPlanet using IP packet analysis
wrote a complex and unique video device driver producing output on a device connected by network; implemented sophisticated caching and error handling; rearchitected major components of NTERPRISE for Windows NT4.0 with a kernel-level video device driver; worked with advanced Win32 and NT kernel API's: multithreaded/multiprocess port of Xlib, "thunking/hooking" of Windows "USER" services, communication between user-level and kernel-level code
implemented a secure version of NTERPRISE based on the Secure Shell (SSH); the first SSH server for Windows NT
extended the protocol to work with both X11 terminals and Java-based clients
worked on large quantum chemical problems using Cray supercomputers; implemented a distributed/parallel scientific program running on a number of Sun workstations under PVM
increased the performance of a scientific algorithm by a factor of 100 - by using intrinsic ordering and eliminating sorting, my PhD thesis was thus focused on a new class of larger problems
OTHER SKILLS AND ACCOMPLISHMENTS:
Key design engineer on these commercial software products:
2001 - Graphon: GlobalHost, Bridges for UNIX, GO-Global for UNIX – thin-client remote application access
1997 - Exodus Technologies: NTERPRISE multiuser version of Windows NT - Windows application access for UNIX/X11
Helped ship:
2005 – Sproqit: Workgroup Edition – thin-client remote application access for wireless devices using Windows-based servers
At Graphon I played a key role in securing a large sale (1/4 mil) to US Government.
very good oral and written communication skills, praised for driving issues toward conceptual clarification.
languages: fluent written and spoken English; speaks/reads/writes French well; Russian and German in reading/writing; native speaker of Polish
EDUCATION
(a) PhD. in chemical physics, Indiana University 1989; specialized in computations of electronic structure and interactions of molecules; (b)one year of graduate computer science coursework - Ball State University, Indiana; (c)doctoral candidate - University of Gdansk, Poland; (d) Master's of Physics, 1981, Nicolaus Copernicus University, Torun, Poland
PUBLICATIONS, PRESENTATIONS, MEMBERSHIPS ETC.
member of Seattle Unix Users Group
two-part talk on "Java as Application development platform for UNIX" – at Seattle Unix Users in 2003 http://www.dikte.net/junix_html
many refereed publications in chemical physics and talks at conferences
dual citizen of U.S. and Poland (member of EU)