- Email: evan.teran@gmail.com
- Web: https://codef00.com
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
1998 - 2003