Curriculum Vitae

To access my professional resume, please click here.

John Michael Clemens

Senior Computer Researcher / Engineer

E-Mail: john at deater.net E-Mail: clemej1 at umbc.edu

Education

University of Maryland, Baltimore County (UMBC)
Computer Science, Doctoral Track
Baltimore, MD
September 2011 - Present (part-time)
GPA: 3.7
Admitted to candidacy June 2017

Rensselaer Polytechnic Institute (RPI)
Bachelor of Science, Computer Engineering
Troy, NY
September, 1996 - May, 2000
Concentration: High Performance Parallel Systems
GPA: 3.33

Research Interests

I seek out opportunities to apply my existing skills and further my knowledge in the areas of machine learning, computer security, and computer architecture.

UMBC

  • Thesis Proposal: “Understanding Devices Through Deep Recurrent Neural Network Explanation” (2017)
  • Member Cognitive Robotics and Learning (CORAL) Lab, UMBC

Papers

Presentations, Posters and Demonstrations

Patents

Contributed to:

  • 20080271019 System and Method for Creating a Virtual Assurance System
  • 20080271018 System and Method for Managing an Assurance System
  • 20080270104 System and Method for Creating an Assurance System in a Mixed Environment

Independent Research / Interests

  • Author and maintainer of powernowd, a Linux CPUfreq client
  • Author and maintainer of voodooutils, a library and set of utilities to control various aspects of 3Dfx video cards
  • Contributed various patches to the Linux Kernel, including:
    • Added scaling_available_frequencies file support for the PowerPC G3 Processor
    • Enabled SSE on supported AMD-K7 Processors when the BIOS did not
    • Collaborated on patch to force the Linux PCI IRQ router to honor the BIOS pIRQ table mask (boot option pci=usepirqmask)
  • Participant and contributor to various additional open source projects

Professional Experience

JHU Applied Physics Laboratory
Senior Professional Staff
Laurel, MD
January, 2009 - Present

  • Technical lead and contributor to several tasks involving computer security, hypervisors, and measurement frameworks on both traditional and non-traditional (mobile, embedded, medical) platforms
  • Supervisor of the Platform Security section
  • Coordinator of various Science and Technology outreach efforts
  • Developed internal computer security tool deployed on hundreds of machines
  • Subject matter expert on several topics including Linux, virtualization, and systems-level programming

StackSafe, Inc
Senior Engineer / Product Architect
Vienna, VA
September, 2006 - December, 2008

  • Lead Virtualization Engineer and Product Co-Architect of the StackSafe Test Center(tm), a Linux-based virtualized test platform
  • Project Manager (design, task management, scheduling) for several major components
  • Designed and implemented a unique virtualization management layer
  • Various development tasks in all areas of the product, including:
    • Developed method to import Windows virtual machines into the Test Center environment
    • Wrote Windows C++ MFC GUI applications, and a Windows C++ Network Service
    • Linux GUI development using C and Python with the GTK toolkit
    • Web development using Ruby on Rails and Turbogears
    • Linux kernel driver development
  • Designed product prototype, and led team of engineers to deliver prototype ahead of schedule
  • Presented working prototype to company Board
  • Contributed to several product-related patents

triCerat, Inc
Software Engineer
Columbia, MD
April, 2006 - August, 2006

  • Designed and implemented Windows multi-threaded applications, including a printer server and a network RDP gateway

Virtual Iron Software
Senior Linux Engineer
Lowell, MA
March, 2005 - March, 2006

  • Performance enhancements to Linux to optimize J2EE workloads on custom VI architecture
  • Designed and implemented automated 1-click OS installation on a VI virtual computer
  • Implemented NUMA-aware atomic primitives in the Linux kernel, and used them to increase network and filesystem performance
  • Various enhancements and fixes to all aspects of the Linux kernel including VM, scheduling, and device drivers

Sun Microsystems, Enterprise Servers
MTS III
Burlington, MA
March, 2002 - March, 2005

  • Investigated the use of large pages in Solaris
  • Individual contributor to embedded Linux/PPC project using the Motorola MPC8540 embedded processor
    • Helped plan, document, and defend bootloader and base OS project plan
    • Primary engineer, ported U-Boot bootloader to custom Sun embedded computer
    • Wrote and debugged U-Boot and Linux drivers for various devices, including flash ROM, ethernet and PHY driver, PCI setup, and IDE controller
    • Worked with both hardware and software groups to successfully bring up both U-Boot and Linux board, using both the Simics simulator and the actual hardware
    • Debugged and re-architected Linux driver for custom Sun PCI hardware communications device
  • Individual contributor, then primary developer of the Solaris driver for Sun FireLink, a memory-based high performance interconnect
    • Worked with both core driver and STREAMS-based DLPI companion driver, as well as other parts of the stack in kernel and user space
    • Development work to fix bugs from QA and beta customers
    • Coordinated with management, other groups, and development to drive final code changes for shipment
    • Technical leadership duties, including reviewing others’ code changes and delegating work
    • (Re)designed whole sections of the driver to fix various oversights in the original design
  • Member of ITAPI design team, design and implementation work for kernel infrastructure to support ITAPI
  • Member of IB driver design team for a custom ASIC; authored portions of driver design document
  • Contributer to various Linux projects

Mission Critical Linux, Inc
Linux Kernel Engineer
Lowell, MA
May, 2000 - February, 2002

  • Developed, and contributed to the development of several custom device drivers for both embedded and storage applications
  • Researched several high speed interconnects (Myrinet, Quadrics, GigE) for High Performance Computing (HPC)
  • Researched and performed performance analysis of the Linux/Alpha kernel for enterprise network applications
  • Member of design team that developed software for high performance embedded PPC/Linux products
  • Various customer support work as needed

National Security Agency
Undergraduate Training Program
Fort Meade, MD
January, 1997 - May, 2000

  • High performance programmer/researcher using OpenMP and Fortran90 to optimize applications for high performance parallel systems
  • Network programmer/researcher studying various network protocols
  • Software Engineer designing documentation automation software for use in a chip fabrication facility

U.S. Army Chem/Bio Defense Command (CBDCOM)
G.W. University Summer Engineering Apprentice Program (SEAP)
Edgewood, MD
Summers: 1994 - 1996

  • Network programmer, interfacing war-games and chemical simulations using the DoD’s Distributed Interactive Simulation (DIS) Protocol
  • System Administrator for the office’s network of five SiliconGraphics workstations
  • Software troubleshooter and tester specializing in setup and installation of war-games and simulators on SGI workstations and remote X-Terminals

Skills

  • Operating Systems: Linux, Solaris, Windows, IRIX, BSD, Unicos
  • Architectures: Amd64, x86, sparc32/64, ppc, mips32/64, IA64, m6811
  • Languages: C, Python, ASM, F90/F77, C++, Perl, Ruby, HTML, Java
  • Specialties: Linux Kernel Programming, Virtualization, Linux Device Drivers, Parallel/HPC Programming

Other

  • Public Speaking
  • Problem Solving

Activities / Awards

Special Achievement Awards (JHU/APL)
Rensselaer Alumni Scholarship
1996 Nita Milak Benevolence Award
National Forensics League, Honor Status

References

Available Upon Request