Resume of Stephen
Terapak
Software Engineer/Development Manager
Contact:
steve@terapak.com, (760) 509-5350
Summary:
· Over 15 years of professional software development experience.
· 8 years experience producing commercial software.
· 3.5 years of development manager experience leading teams of software developers.
· Over 10 years experience working with Microsoft technologies. This includes 7 years of .NET/C#, C++ experience which includes ASP.NET, WINForms, Smart Clients, and Active Directory (LDAP).
· Experience on a variety of platforms including: Web, Windows, Mobile, Unix, and MacOS.
Professional
Experience:
I started a software consulting firm in April of 2008. Here is a list of the clients and the projects I have worked on:
· R-RAS Restaurant Remote Application Suite
JITB had me write a set of tools to help manage the
back-office servers at over 2300 locations. One of the major complexities involved in this project is
that the channel of communications was a high latency satellite. This means that all data communication
over the network must be closely monitored and reduced as much as
possible. The client part of the
application was written in .NET 2.0/C# as a Win Form smart client and deployed
using Click-Once technologies.
This application was written to support the following OS: WinNT 4.0, XP Professional, and Vista.
The following tools were included in the suite:
· Remote Desktop – I used
UltraVNC and customized the C++ code to perform network authentication using
Kerberos. I used Microsoft Kerberos
libraries (SSPI) and Open Source (GSSAPI – MIT) to ensure all Microsoft
OS would be supported.
· FTP – I used FileZilla
over FTPS (FTP over SSL) to ensure authentication was secure.
· Remote Print – I wrote
a c# Windows Service that the client could use while using remote desktop. This service performed Kerberos
authentication as well. On the
server side I installed RedMon to allow for printer redirection and ghostcript
to output a PDF file from Postscript.
After the file is generated the windows service transfers the data
stream to the client which then prints to the default local printer. This allows for seamless remote
printing.
· LHADI
LHADI is an application that synchronizes the
company’s operational hierarchy to Active Directory. Ths application runs daily. It is written in C#/.NET 2.0 and uses DirectoryServices to
communicate with Active Directory.
I also added to an existing WinForm (C#/.NET) application to allow the
management of people in the hierarchy.
It is a TreeView control which allows a user to add/remove/assign roles
to particular user on node in the hierarchy. The ActiveDirectory security groups are being used by MOSS
(SharePoint) and SqlServer Business Intelligence to manage the security for
these applications.
· Location Admin
Location Admin is a tool to manage the operational
hierarchy for Jack in the Box.
This tool is written in .NET C#/WinForm. I have changed this application for the previous project and
I have changed it again to be able to manage the operational hierarchies for
all companies that Jack in the Box has franchises with. This was a significant effort to pull
this application out of a heavy XML / SOA architecture. There were significant increases in the
speed of the application. The
initial screen load went from 23 seconds to 0.05 seconds due to the use of a
caching algorithm.
Team
Manager/Team Leader 5/2007-3/2008
·
Added an ad-hoc
reporting tool (CIZER) which was fully integrated into our software
product. Features included:
o Single – sign on capabilities.
o Integrated security
o Fully automated setup which decreased the time for a
client implementation from days to hours.
·
Re-engineered the
product to support multiple languages.
This required changes across all core components of the product. Languages now supported:
o Spanish, French, Mandarin Chinese.
·
Re-engineered the
customized main data grid of the product to allow for reusability. This component was a highly customized
data grid that consists of ASP.NET tables with a large JavaScript library that
allowed for a completely configurable look and feel. The requirement was to be able to have multiple of these
data grid on the screen at one time.
· Fixed hundreds of known issues and bugs.
Software Development Manager 1/2006-5/2007
·
I managed a team of
12 developers. 7 are onsite
Mitchell employees. The other five
are offshore resources in India.
·
As my time as a
manager I focused on the quality of the software releases. To ensure high quality on time releases
I have implemented the following changes:
o Significant improvements in the SDLC used by the
team.
§ Managed code reviews, documented unit test cases,
documented profiling, and documented integration test scenarios.
§ Load test results for every release.
§ This lead to higher productivity of the team as fewer
bugs are being released. This
especially true of the offshore resources who require much tighter management.
·
I have released
almost 12 versions of the product this year. Almost all were customer driven requirements that needed to
be implemented by the end of a pilot.
These were on a very tight schedules that had high upper management
visibility.
·
We are also
implementing customer integration projects. This was particularly difficult because of lack of solid
requirements and tight schedules.
This was resolved by forcing SDLC practices on the people in the field
to ensure customer visibility on what we are implementing for them.
·
My team has also been
driving the platform upgrades. We
have moved from Solaris machines to IBM-AIX which has resulted in much better performance
and scalability. This required
full regression testing, load testing, and production deployment verification.
·
We also managed the
stability of Weblogic 8.1. I have
team members who research, test patches and service packs to resolve known
issues in the platform.
Software
Engineer IV 5/2004-1/2006
·
Claim Service – This is the first cross platform
components that was built for the new platform. This is a shared component that almost all
applications will use to save/retrieve claim information. It consists of a C# client which makes
SOAP calls to a Weblogic JWS (Web Service) which uses an EJB to make database
calls using Spring/Hibernate. I
built the C# component, the JWS,
and worked out all the details of communicating between the platforms using
SOAP. Wrote significant NUnit
tests to ensure functioning components during the development process.
·
(Team Lead) Workbench - We have built a reusable component layer called
Workbench which consists of Presentation, Custom Settings, Profile Management,
Security, Logging, DataGrid wrapper, ODP.NET base classes, XML helper classes
components, and Self-Validating controls.
The idea is to have common classes for all of our applications which
will speed application development and provide a common User Interface which
can be easily modified. I have
worked on the majority of these components and manage the changes which occur
on them. I approve the designs, ensure
proper testing, and conduct code reviews.
We have 6 applications which are being built on this platform which has
increased the importance and complexity of managing it.
·
(Team Lead) TotalLoss – This is the first application that is
built on the Workbench which fills a major gap in the product
line for Mitchell. This application
determines the value of a car that is deemed a Total Loss. I
wrote a significant amount
of the ASP.NET C# code which made up the
presentation layer. Release date
October 2005. Optimized code using
DevPartner Studio profiling and LoadRunner load test tools. Mentored team members
Chelsea Interactive, Reston, VA, Core Developer 4/2002 – 1/2004
·
(Team Lead) Implemented c++ shopping cart component
changes to remove memory leaks and implemented fraudDefenz, which collects and
flags orders with known bad addresses and credit cards. Using that info, I redesigned and
implemented a generic fraud detect daemon using java, stored procedures in
pl/sql and triggers. This daemon
is table driven therefore new brands using our platform can use this process
with little effort and rules can be changed on the fly. This resulted in reduced down time,
decrease in fraudulent orders and increase in rent received form the brands.
·
(Team Lead,
Architect, Project Manager) Value Link Gift Certificate –
Designed, implemented, and managed a team of 4 developers for the integration
of the Value Link Gift Certificate system into our platform. This system allows a store to have gift
certificates that can be used in the store or on the website. We have a developed a real-time
transaction based architecture that any component in our platform can use. It was implemented using SSL Sockets,
Client Certificates, and extensive encryption techniques to communicate
securely to the remote system.
Some of the components that use this component are the shopping cart,
order fulfillment back-end, and return handlers. Technologies used include java, c++, shell-scripts, Java
Secure Socket Extension library and the Java Cryptography Extension
library. The design would allow
any brand on our platform to switch their Gift Certificate provider with only
front-end changes required. We
charge a switching fee for the brands, which results in pure profit.
·
(Team Lead) Implemented SalesFulfillment process
that allowed polo to use their e-commerce structure to restock their brick and
mortar stores. I ensured that
order info is sent in a daily data feed to the warehouse and it is printed out
on the packing slip so that commissions can be tracked correctly.
Aether
Systems, Vienna, VA, Senior Software
Engineer 7/2000
– 3/2002
·
(Team
Lead, Architect) Designed and implemented DCOM/ATL based conduit plug-in
for ScoutSync platform. This enabled companies using ScoutSync to synchronize
corporate data residing in Lotus Notes v5.0+. This was written in Microsoft C++ using Lotus Notes
C++ API using an out-of-process COM dll.
Released to the public February 2001. First year sales topped 6 million.
·
(Team Lead)
Designed and implemented a Lotus Notes adapter written in Java using Lotus
Notes CORBA/JAVA API. This adapter
plugged into an apache SOAP based web service that provided a single interface
to Microsoft Exchange and Lotus Notes.
The adapter used CORBA to remotely access Lotus Domino servers using
HTTP security infrastructure that Lotus provides. The result is a near seamless integration whose only scaling
constraints were memory and the Lotus core libraries.
·
Projects included client/server database, Notes based workflow, and
language/platform complexities.
Noblestar
Systems Corporation, Vienna, VA, Senior
Consultant 6/1997 – 3/1999
·
(Consulting
Manager) Managed three clients
and six projects. I spent most of
my time fixing out of schedule projects.
·
Inherited a failed
project from another consulting company, removed sixty percent of the code,
deployed the application and was vital in obtaining a contract worth over one
million dollars. Technologies
included Microsoft Exchange, Visual Basic 5.0, and Crystal reports.
·
Inherited two other
clients whose e-commerce tax information web sites were exceeding cost and time
estimates. Re-designed and
finished implementing payment systems and data import applications. Technologies included C++, Notes
C++ API, Lotus Notes, Folio, and Visual Basic.
Designed
and implemented applications used by government agencies.
·
Designed and implemented a GIS web application
for the Telemedicine project.
Technologies included Visual Basic, IIS, and Internet Explorer.
·
Member of team that implemented a client/server
based issue-tracking system.
Technologies included Powerbuilder and Sybase.