Thomas B. Wickert
A challenging and fulfilling job in the field of computer science that will allow me to continue expanding my knowledge of the field.
Illinois Institute of Technology Chicago, IL
Master of Computer Science August 2003 - December 2004
GPA 3.7/4.0
Bachelor of Science in Computer Science August 1999 - May 2003
GPA 3.8/4.0
Plexus Scientific Corporation Chicago, IL
Application Developer May 2005 - Present
  • Worked on the development team for a J2EE based performance measurement web application
  • Designed and developed custom modules for the application per customer requirements
  • Implemented various new features and bug fixes for the application and its framework
  • Handled new installations and the deployment of upgrades at customer locations
  • Developed AJAX pages using XML/XSLT and created a cross-browser AJAX framework
  • Benchmarking and performance enhancement of the application framework that led to performance improvements up to 300%
  • Introduced database automation to improve data integrity and reduce the work required by developers when making schema changes
  • Responded in a timely manner to customer problems and bug reports
International Truck and Engine Corporation Warrenville, IL
Intern May 2000 - August 2004
  • Worked in the Dealer Communication Network's development team creating Java/J2EE web based applications for both internal users and users at truck dealerships.
  • Designed, coded, tested, and deployed J2EE web applications using various Java technologies such as JDBC, JSP, Servlets, and Struts
  • Wrote dynamically generated SQL queries based on web user input to retrieve data from DB2 databases via JDBC.
  • Created reusable Java objects to interact with MQ Series to retrieve/move messages and monitor queues.
  • Created installation scripts for installing various server side software using Wise.
  • Used CVS or SourceSafe version control systems on all projects.
Nowak Realty Inc. Chicago, IL
Web Designer June 1998 - August 1999
  • Created Nowak Realty Inc. web site. The site provides company information and lists houses for prospective buyers. The site used HTML and Perl to provide dynamic listings of houses.
  • Set up individual computers, resolved problems, installed software, and upgraded hardware.
Personal Projects August 2002 - Present
Designed and created all aspects of my personal website. My site is used to provide personal and professional information. The site is written in HTML and PHP and follows W3 HTML and CSS standards to allow full compatibility in Internet Explorer and Mozilla based browsers. The site also uses MySQL to allow quick and easy dynamic updates to the site without changing code and uploading new pages.
Linux Installation Present
Installed a popular Linux distribution on my laptop (old Dell Inspiron 7000). The installation includes all proper drivers installed for sound, video, NTFS, and wireless LAN. All required/popular software has also been installed including Firefox, GAIM, Thunderbird, XMMS, etc. The system has also been configured to access Windows shared drives on other networked computers via Samba.
MAME Front end December 2003 - February 2004
Developed a MAME(Multiple Arcade Machine Emulator) front end using Visual C++ and MFC. The front end provides a GUI to launch games on home built arcade machine running Windows XP. The game list is navigable by using an arcade trackball and spinner. The main design goals of the project were to create an easy to use and easy to navigate interface with a minuscule learning curve.
Winamp - Mp3 Menu May 2003 - July 2003
Developed a Winamp plug-in with Visual C++. The plug-in is a DLL for Winamp designed to help organize large music collections as well as making it easier to find and play songs. It is configurable to use any music format (mp3, ogg, wav, etc.). The plug-in allows a user to browse music files in an easy to use menu layout and add songs to the current Winamp playlist.Other features include basic searching, adding random songs, creating song lists, organizing music files, and it is skinnable.
FTP Client November 2002 - March 2002
Created a command line FTP client using C++, multithreading, and socket programming. The FTP protocol portion of the client resided in a multithreaded DLL that communicated with the main application by either message sending or by a callback function. The implementation method allows FTP communication to easily be added to any application by including the DLL.
Pacman Clone August 2002 - November 2002
Created a Pacman clone using C. The goal was to learn the basics of game programming in Windows and further my knowledge of the Win32 API. The game included AI based on the original Pacman and sounds from the original Pacman.
HTTP Client April 2002 - May 2002
Created an HTTP 1.0 compatible client in Unix for a school project. The client followed the HTTP 1.0 protocol and supported both GET and POST requests. It also handled various standard server responses. The client was written in C and used socket programming to send requests to remote servers over the web.
IPRO CTA Tracking January 2002 - May 2002
This was an Interprofessional Project (IPRO) at school. The IPROs are continuing projects with a new team of students working on them each semester. This project involved creating a wireless GPS tracking system that could be used on CTA vehicles. The project was written in Visual C++ using MFC. During my semester, we implemented multi-vehicle tracking and corrected a connectivity problem. Previously, the system was only able to track a single vehicle, this was improved so the server could simultaneously track multiple vehicles. Also, when a vehicle lost its wireless connection to the server, it was permanently lost from the system. This was corrected by monitoring the connection, and forcing the client and server to reconnect in this situation.
Relevant Coursework
CS 586 - Software Systems Architectures Fall 2004
The course discussed object-oriented design patterns for use on complex software systems. The course covered various design patterns such as Publisher-Subscriber Architecture, Client-Server Architecture, Event-Based Architecture, and Fault-Tolerant Architecture. The final project was implementing an ATM machine in Java using a Model Driven Architecture.
CS 551 - Operating Systems and Implementation Fall 2003
The course discussed the design and implementation of operating systems. The discussion covered various kernel architects and involved "hacking" the Minix operating system. Projects in the class involved changing the operating system's process scheduler, adding undelete functionality to the file system, and provide locking support to the keyboard driver. All coding was done using vi in the Minix environment.
CS 542 - Computer Networks I Fall 2003
This course built on the topics covered in CS-455 and continued the discussion with an emphasis on the internet. Additional topics discussed were routing, DNS, DHCP, internet protocols, and security. The final project included the design, implementation, and comparison of a peer-to-peer network.
CS 455 - Data Communications Spring 2003
The course was an introduction networks. Topics included error checking, ethernet, SONET, ATM, TCP/IP, flow control, back off, and QoS. The final project for the course involved creating a network simulation that handled transferring data with time outs, errors, and data packet retransmission.
CS 487 - Software Engineering Fall 2002
This course covered the major topics of software engineering. Topics include software quality concepts, process models, software requirements analysis, design methodologies, software testing and software maintenance. The class project included building a software system using the waterfall life cycle model. The project was a group project that included developing all life cycle deliverables: requirements document, specification and design documents, system code, test plan, and user manuals.
CS 451 - Unix Systems Programming Spring 2002
This course covered interprocess communication (IPC) in a Unix environment. The class involved both the discussion and implementation of creating processes, avoiding deadlocks, using semaphores, and communicating between processes. The communication methods included shared memory, messages, signals, and pipes. The course also included a project of making a personal organizer using only shell scripts and creating full installation scripts for all projects (Makefiles -> ./configure, make, make install). The course required all programming to be done using emacs via SSH.
CS 425 - Database Organization Fall 2001
This course covered designs of relational databases including 3NF design. The class also covered data integrity, query optimization, and SQL. The final project involved creating a Java based application that acted as the front end to the database allowing inserting, deleting, editing, and running queries.
CS 445 - Object-Oriented Design and Programming Spring 2001
The course was an introduction to object-oriented design. In the course, aggregation, inheritance, polymorphism, abstract classes, and interfaces were discussed. A project was also implemented using these ideas in order to gain further understanding of them.
Technical Skills
Java, C, C++, HTML, PHP, Javascript, SQL, XML, XSLT, UML
J2EE, JDBC, JSP, EJB, Servlets, AJAX, Win32, MFC, Sockets, STL
Development Environments / Tools
Eclipse, JBoss, Ant, Microsoft Visual Studio, IBM WebSphere Studio Application Developer, IBM WebSphere Application Server, SVN, CVS, Microsoft SourceSafe, vi
Operating Systems
Windows XP,2000,NT,9x,3.x, Linux, Unix, MS-DOS
Microsoft SQL Server, Microsoft Analysis Services, MySQL, IBM DB2