About Me

I grew up in a small-ish town in Middle Tennessee called Shelbyville that is about an hour south of Nashville. I then spent about 10 years in Knoxville, TN where I did my undergraduate studies and had my first post college job. This is also where I met my wife, Liz, when she was getting her Master's degree. We moved to Greenville, SC in 2013 when I accepted an engineering position with an automotive company. We are currently still located in the Greenville area, but will soon be moving to Chicago.

Academics

Master of Science - Computer Science

Syracuse University
GPA: 4.0
CourseDescriptionGrade
CPS 500 Computer Organization and Operating System DesignFundamentals of computer organization and operating systems design. Computer organization topics: CPU & pipeline architecture, data representation and memory hierarchies, assembly language and instruction sets. Operating system concepts: system calls, processes, threads, synchronization, memory management, input-output, traps, and file systems.A
CIS 623 Structured Programming and Formal MethodsReasoning about programs: specification, design, and realization of provably correct programs. Program and data structures, binding, procedures, recursion.A
CIS 651 Mobile Application ProgrammingDevelopment of applications for different mobile devices. Creating effective user interfaces, efficient use of persisitent storage, network services, GPS, maps and sensors.A
CIS 655 Advanced Computer ArchitectureComputer-architecture characteristics and their effect on the design and performance of programs. Price-performance tradeoffs, instruction set design, memory hierarchies, pipelining, storage systems, selected topics in parallel architectures. Architecture of specified computers.A
CIS 657 Principles of Operating SystemsDesign and implementation of operating systems. Process and memory management, resource scheduling, file system management, I/O and kernel services and structuring. Includes weekly lab using a Unix-like operating system.A
CIS 554 Object Oriented Programming in C++Survey of basic C constructs. Data abstraction, classes, derived classes, types, structures and template. Access control, information hiding, multiple inheritance. Formatting stream I/O, libraries, interfaces, modular system 0rganization. Substantial programming assignments.A
CSE 681 Software Modeling and AnalysisProject-based course covering software modeling, architecture, design, and implementation using diagramming, analysis tools, and common sense engineering methods to analyze performance of concurrent, message-driven systems.A
CSE 682 Software EngineeringRequirements and specifications including tools such as PSL/PSA, SREM, design techniques; Functional decomposition; data flow; data structure, theoretical issues in testing, testing strategies: path; domain; mutation and error specific, cost and reliability models.A
CSE 643 Computer SecurityOperating system security. Unix security. Trusted Computing Base. Authentication. Access control. Security models. Capability. Sandboxing. Software vulnerabilities. Worms. Viruses. Secure engineering principles. Secure programming. Auditing. Forensics.A
CSE 644 Internet SecurityInternet architecture. Security and attacks on TCP/IP, DNS, and BGP protocols. Internet protocol security. Firewall. Intrusion detection. Network traceback. Web security. Encryption. Public Key infrastructure. One-way harsh function. Digital signature. Security protocols.A
CIS 675 Design and Analysis of AlgorithmsAsymptotic analysis and recurrences; classical numeric algorithms; advanced data structures; graph algorithms; divide-and-conquer, greedy choice, dynamic programming, and other computational strategies; NP-completeness.A

Bachelor of Science - Mechanical Engineering

University of Tennessee
GPA: 3.0

ABET accredited engineering program that focused on topics such as thermal engineering, mechanical design and analysis, and computer aided engineering.