Join   Log In
  • Startup Jobs
  • Recruit
  • Discover
  • Blog
    John Whaley

    John Whaley

    Founder and CEO @unifyid • Ex-CTO @mokafive • Teach @compilers at Stanford • @ibm Research • Ph.D. @stanford, @massachusetts-institute-of-technology

    Software Engineer San Francisco Bay Area Stanford University '07
    suif.stanford.edu
    There was a problem loading your content.
     
    Experience
    UnifyID
    Exit
    UnifyID
    Founder, CEO 2015 - Present (over 11 years)
    Founder
    UnifyID, MokaFive
    Employee
    Stanford University, IBM Research
    Investor
     
    Incubator
     
    Advisor
     
    Attorney
     
    Board Member
     
    Mentor
     
    Member
     
    Acquired
     
     
    Education
     
    About
    Achievements

    Arthur L. Samuel Thesis Award for Best Thesis at Stanford.
    PLDI Best Paper Award, 2004.
    ACM SIGSOFT Distinguished Paper Award, 2002.
    OOPSLA Best Paper Award, 2001.
    One of the top 15 programmers in the USA Computing Olympiad.
    20+ patents issued or pending.

    Describe the most impressive thing you've done.
    Locations
    Silicon Valley San Francisco San Francisco Bay Area
     
    Projects
    M5 BareMetal
    M5 LivePC on a modified Linux OS installed directly onto HW
    Architect and Developer, Debian, Boost, LD_PRELOAD · M5 BareMetal is tailor-made for organizations seeking to simplify the management and security of… · More endpoint systems while improving IT ROI and TCO along the way. M5 BareMetal is a policy-enforced, simply managed client-based containerization solution that uses Type 1 client-side virtualization technology to deliver a fully configured, highly-secured corporate Windows workspace.
    Victoria Rezepova
    With Victoria Rezepova
    M5 LivePC
    M5 LivePC is a secure container delivered to Mac & PC
    Architect and Developer, C Plus Plus, Boost, OSX · M5 LivePC is a PC containerization solution that uses a "Type 2" hypervisor (meaning it… · More sits on top of an operating system installed on the device) to deliver and manage a fully configured corporate Windows workspace that is highly secure and completely isolated from the underlying host.
    Victoria Rezepova
    TJ Purtell
    With TJ Purtell, Victoria Rezepova
    M5 LiveData
    Secure Access and Document Delivery for Mobile Devices
    Architect and Developer, Objective-C, iOS, Android · M5 LiveData extends data continuity by giving your mobile workforce secure access to corporate… · More network resources and file shares from their iOS devices. A policy-enforced container, LiveData operates on personal (or corporate-owned) iOS devices and allows IT to manage the container without sacrificing user's privacy and control of their mobile devices.
    Victoria Rezepova
    With Victoria Rezepova
    JavaBDD
    Java Binary Decision Diagram library
    JavaBDD is a Java library for manipulating BDDs (Binary Decision Diagrams). Binary decision diagrams are widely used in model checking, formal verification,… · More optimizing circuit diagrams, etc.
    bddbddb
    BDD-Based Deductive DataBase
    bddbddb stands for BDD-Based Deductive DataBase. It is an implementation of Datalog, a declarative programming language similar to Prolog for talking about… · More relations. What makes bddbddb unique is that it represents the relations using binary decision diagrams (BDDs). BDDs are a data structure that can efficiently represent large relations and provide efficient set operations. This allows bddbddb to efficient represent and operate on extremely large relations - relations that are too large to represent explicitly.

    We use bddbddb primarily as a tool for easily and efficiently specifying program analyses. We represent the entire program as database relations. Developing a program analysis becomes as simple as writing the specification for the analysis in a declarative style and then feeding that specification to bddbddb, which automatically transforms your specification into efficient BDD operations.
    joeq
    Research JVM and compiler written in Java
    joeq is a virtual machine and compiler infrastructure designed to facilitate research in virtual machine technologies such as Just-In-Time and Ahead-Of-Time… · More compilation, advanced garbage collection techniques, distributed computation, sophisticated scheduling algorithms, and advanced run time techniques. joeq is entirely implemented in Java, leading to reliability, portability, maintainability, and efficiency. It is also language-independent, so code from any supported language can be seamlessly compiled, linked, and executed -- all dynamically. Each component of the virtual machine is written to be independent with a general but well-defined interface, making it easy to experiment with new ideas. joeq is released as open source software, and is being used as a framework by researchers on five continents on topics ranging from automatic distributed virtual machines to whole-program pointer analysis.
    Eclipse KeepResident Plugin
    Eclipse plugin that improves performance on Windows
    The performance of Eclipse (and other large Java applications) has long suffered due to the Windows virtual memory manager. Windows has a tendency to… · More preemptively swap Java processes out of physical memory, even when there is still plenty of physical memory available. This interacts very poorly with Java processes, which do not have good locality and touch a lot of memory. The problem is exacerbated when Java performs garbage collection, which causes the Java process to touch lots of memory that has been paged out to disk. Ever had Eclipse randomly hang for 15-20 seconds? This is most likely the culprit.

    This is a simple plugin for Eclipse that uses two functions in the Windows API - SetProcessWorkingSetSize() and VirtualLock() - to encourage Windows to keep more of the Eclipse Java process in physical RAM. This plugin adds a preference page where you can adjust the minimum and maximum working set size (i.e. the amount of memory Windows is supposed to keep in physical memory when the process is in use). However, Windows will happily begin swapping out Eclipse below the working set size if the Eclipse window is minimized. By enabling the VirtualLock checkbox, the plugin will force Windows to allocate physical memory, so even when Eclipse is minimized it won't be swapped out. This is very effective in eliminating that sluggishness in Eclipse after not using it for a while.

    (Yes, this is an evil nasty hack. But it's an evil nasty hack that works really well.)
    Help · Blog · Twitter · Terms · Privacy Policy & Cookies · Unsubscribe · Cookie Preferences · Press · Profile not verified