Professional Information
Career
I am currently a Senior Systems Software Engineer in the INTEGRITY PC development team at Green Hills Software in beautiful Santa Barbara, California. I have worked on code in just about every level of the product, including the bootloader, kernel, device drivers, multi-level secure components, GUI, virtual machine manager, and applications that run on Windows within guest virtual machines. I've also written product documentation and created infrastructure management tools. Working in a relatively small team of engineers has given me plenty of opportunity to work on projects across the entire operating system stack and I've been fortunate enough to work through the full product life cycle, from research and development, to designing and testing, and to productization and delivery.
A summary of my work experience and education is listed on my LinkedIn profile.
Programming Languages
I write most of my code in C and x86 assembly, and have used C++ and python for smaller projects at my current job. In prior positions, I have written code in Java, C#, Perl, HTML, CSS, JavaScript, and XML/XSL. For my own personal projects, I have developed with Ruby on Rails, ActionScript (Flash), Drupal (PHP framework), and Objective-C (iPhone). I've also dabbled with SML and MIPS assembly in the past.
I am a firm believer that the number of programming languages a developer knows is not nearly as important as having a strong understanding of programming paradigms, algorithms, and computer architecture. Language syntax is much easier to learn than programming concepts, and computer science theory and fundamental knowledge of hardware architecture is applicable to every project, regardless of the language used. Programming languages are tools — not only is it important to know how to use them, it is equally important to understand which tool is best suited for the job at hand.
Operating Systems
I am very comfortable using all three mainstream desktop operating systems (Windows, Mac OS X, and Linux) and run all three on my personal machines. I prefer to do most of my development work on Linux, though I also use Xcode on Mac OS X for iPhone development and Visual Studio on Windows for projects that require it. At my current job, I have also used and developed for the INTEGRITY and INTEGRITY-178B real-time operating systems for embedded systems, and INTEGRITY PC on x86 desktops and laptops.
Contact Information
I can be reached via email through the contact page. Please fill out and submit the form and I will try to respond as soon as I have a chance.