Evan TeranPrincipal Software Engineer

Work Experience

2019 - Present

Senior Software Engineer

Two Six Technologies, Full-Time


At Two Six Labs I have been leading the "apps" team composed of 6 people. In this position I have both directed the design and participated in the implementation of the "app" infrastructure of IKE.

  • Inquire for more detail

2013 - 2019

Chief Software Architect / Principal Security Researcher

Digital Operatives, Full-Time


At Digital Operatives I have worked on several projects ranging from tools to perform static code analysis to network analysis.

  • Project lead of Digital Operatives' implementation of DARPA ICAS named FUSION
    • Developed novel methods of extracting data from data sources without hard coded parsers
    • Presented the user with a graph representing the relationships between data elements across multiple data sources
  • Developed both graphical (Qt) and command line tools for analysis of LLVM IR
    • Used taint tracking to determine which variables are effected by external data
    • Used constraint solving libraries such as STP to determine possible code paths and associated inputs.
    • Developed several LLVM optimization and analysis modules to aid in analysis
  • Inquire for more detail

2007 - 2013

Senior Developer

iSIGHT Partners, Full-Time


At iSIGHT Partners I worked on a wide variety of things involved in computer security research and reporting.

  • Performed research and exploit proof of concept development
  • Analyzed publicly announced vulnerabilities and exploits
    • Determined the effectiveness of the exploits
    • Determined the level of effort required to "weaponize" proof of concepts
    • Analyzed proposed mitigation strategies
  • Developed novel geolocation technology which was able to successfully have city level accuracy with a relatively small (non-extensive) core database
  • Developed web applications for internal use
  • Developed and maintained custom email delivery system

2002 - 2007

Senior Developer

Sytex Inc. / Lockheed Martin - ATL, Full-Time


Directly after graduation, I began work at Sytex Inc., where I worked on several computer security related research projects. Often involving deep knowledge of the affected operated systems at a kernel level.

In 2005, Sytex Inc. was acquired by Lockheed Martin, where I continued my work in computer security research.

  • Performed research and exploit proof of concept development
  • Kernel development (both Windows and Linux)
  • Worked on team which developed x86 hypervisor technology
    • Virtualized fundamental hardware of the machine
    • Implemented passthrough for devices such as the video card
    • Implemented 8086 emulation layer for early boot process
    • Novel implementation of trapping on sensitive, but not privileged instructions
  • Inquire for more detail

2001 - 2002

IT Director, Lead Developer

Cohen's Fashion Optical, Full-Time Summer Job


I spent two summers acting as the head of the computer department at Cohen's Fashion Optical. There I did everything from IT management tasks to web development.

  • Managed Company Network, Databases, Servers, Technical Support
  • SQL Database Design/Development
  • Developed GVS website
  • Developed internal web service for "Vision Pass" program
  • Implemented management utilities with C++ to allow staff to alter database with no programming knowledge

Patents

  • Patent No. US8584241 B1 (Issued 2013-11-12)

    A method for processing, analyzing live and off-line physical memory in order to determine the presence, and initiate the removal, of malware from the system. The internal structures within the host operating system, the drivers, and the user-space executables can be utilized to self-verify the integrity of the processes, their related structures, and the binary execution paths residing on the system. Additionally, these same characteristics are employed for use in comparison with other baseline malicious and benign datasets as well as datasets from live systems to automatically identify malware and remove it from a targeted computer system.

Personal Projects

I find that the best way to learn something new is to make it a project and dive right in. Because of this over the years, I have worked on many personal projects. Sometimes for fun, sometimes for education. But always things which I believe make me a better developer. Here are some of the projects that I have found the most interesting to work on. For a more complete list, you can visit my Github page.

  • Developed a debugger named "edb" (Evan's Debugger), designed for debugging application to which you do not have the source code
  • Developed an x86/x86-64 Operating System as a personal project
  • Author of a successful Nintendo ® emulator named "Pretendo"
  • Worked on a JRPG containing tile based graphics, a fully customizable C-style event scripting system, a map editor, a "battle" editor, and support for NPCs

Technical Skills

Expert, 15+ Years

x86/x86-64 Assembly, C, C++, Qt, Python, JSON


These technologies are ones which I have used extensively over the years.

Because system's level programming is my primary field of interest, naturally, C and C++ have been my primary languages of choice. I am deeply familiar with both these languages, including the newer C++11 — C++23, C99, & C11 standards.

Additionally, I have a lot of experience writing assembly code both for optimization and exploit research.

Finally, Qt has been a core UI (and more) library in my projects and is something that I enjoy working with.

Advanced 5+ Years

Go, Java, Javascript, PHP, Bash, SQL, HTML, CSS, Bootstrap, LLVM, jQuery, ARM Assembly


These technologies are ones which I have used often throughout my career. I am very comfortable with them, and work with confidently.

Experienced 1+ Years

VBScript, Eiffel, BASIC, VAX Assembly, MIPS Assembly, LISP, Perl, Sed, Awk, DirectX, Pascal, Django, AngularJS


These are technologies that I have worked with before. While I certainly don't consider myself an expert in any of them, I feel that I am proficient with all of them. I am able to read and understand code written using these technologies and would be able to quickly jump into writing new code.

Operating Systems

DOS, Windows, OSX, Solaris, FreeBSD, Linux, BeOS, Symbian OS


My primary development platforms are Linux and Windows, with Linux being the current favorite. Windows dating back to the 9x series. In addition to that, I have written software for many other operating systems, typically while porting a project.

Education