This website is old, my current website is here
My goal is a global, distributed, persistent, Smalltalk image with security, perspectives, concurrency, and an enhanced user interface that facilitates direct interaction with objects via the power and flexibility of a speakable programming language.
I am currently a first-year PhD student in Computer Science at Georgia Tech.
Secure Object Model - This project discusses securing a shared object graph using capabilities. It requires freezing common classes but allows benign class extensions to them.
Persistent Distributed Objects - I want to research distributed systems that automatically distribute computation and data for optimal performance. Security and resource allocation/accounting will serve as constraints.
Stateless Multiple Inheritance with Typed Selectors - Multiple inheritance without ambiguity, and accurate type inference would be welcome in Smalltalk. Replacing instance variables with primitive accessors removes the "diamond problem", and binding selectors to their abstract class removes name clashing and provides accurate type inference.
Context Spreadsheet - I am developing a user interface that visualizes objects and allows users to type (someday say) messages directly to them. Message results are displayed next to them and they can receive new messages. The result is a free-form spreadsheet with editable messages linking objects together. These graphs are active contexts that can be re-executed or compiled to methods. It still needs much more work to visualize tables, etc., but it should eventually replace pre-built browsers.
Closures and Faster Contexts - I converted blocks to true closures so they can be distributed independent of their home method. At the same time, I sped up execution and added continuations. This work involved creating a new bytecode instruction set, writing an optimizing Smalltalk-to-bytecode compiler, and converting heap allocated contexts to stack frames while preserving the semantics of malleable contexts in Smalltalk.
No VM - The idea is to write the Interpreter, JIT-compiler, garbage collector, etc. in Smalltalk, which would be compiled to bytecodes then translated to machine code. To make it efficient, selector types, environments, and a good compiler are needed so sends can be reduced to function calls where possible and inlined where appropriate.
Cornell University, Ithaca NY
Master of Engineering in Computer Science, 2000
Valued courses: Compilers and Translators, Algorithms, Theory of Computing, Artificial Intelligence, Database Systems, Distributed Systems, System Security, Internet Internals, Corporate Information Systems Management, Electronic Commerce, Entrepreneurship, Accounting, Statistical Regression, and Urban Transportation Planning & Modeling.
Rutgers University, New Brunswick NJ
Bachelor of Arts in Computer Science, 1990
3.9 GPA in major
Valued courses: Computer Architecture & Logic Design, Discrete Mathematics, Numerical Analysis, Algorithm Design & Analysis, Programming Languages, Operating Systems, Database Design, Software Engineering, Intro to Electrical Engineering, Public Speaking, Philosophy of Science, Principles of Human Cognition, Money & Banking, Environmental Economics, Finance, and Public Finance.
Lehigh University, Bethlehem PA
Major: Mechanical Engineering
Freshman and sophomore years, 1985-1987
Valued courses: Calculus I, II & III, Linear Methods, Probability & Statistics, Economics, Psychology, Chemistry, Physics I & II, Static Mechanics, Dynamic Mechanics, Materials Science, Thermodynamics I
1998 GRE: 760 quantitative, 740 analytical, 530 verbal
1998 GMAT: 680 (94th percentile)
1985 SAT: 740 math, 500 verbal
IBM, New York NY - Mar 1993 to Sep 1996
Smalltalk Programmer, Consulting Department
Worked with a team of 12 Smalltalk developers, 5 C++ developers and about 15 business liaisons and testers, in building a banking system that managed syndicated loans. This system was built for Bankers Trust and was also sold to several other banks worldwide. I played the role of Smalltalk expert, concentrating mainly on the Smalltalk infrastructure while providing a higher level environment for the other Smalltalk programmers. Some of the components I worked on include: an object persistence framework that translated Smalltalk expressions into SQL and optimized the loading of objects to save space; a nested transaction model that automatically kept track of changed objects with commit and rollback functionality; a translator that translated Enfin Smalltalk into VisualAge Smalltalk as our project switched vendors; several enhanced user-interface components like tree views and free-form graphics; a report generation framework; and a separate administration system.
EDS, Plano TX - Aug 1991 to Mar 1993
Smalltalk Programmer, Management Consulting Department
Was part of an 8 person Smalltalk development team that built software tools for EDS's management consultants. I built a tool in VisualWorks Smalltalk that tracked and analyzed client Mission Statements, Business Objectives, Business Processes, etc.. This entailed building charting and other analytical functions, as well as a persistence framework.
EDS, Dallas TX - Jul 1990 to Aug 1991
C Programmer, R&D Department
Was part of a 30 person C and C++ development team that was building a CASE tool (Computer Assisted Software Engineering) which was used by many of EDS's systems engineers in the field. It allowed them to graphically specify enterprise relationships and user interfaces and then generate C or Cobol code off of those specifications.
IBM, Sterling Forest NY - Summer internship 1989.
AT&T Bell Labs, Holmdel NJ - Summer internship 1988.
City Planning Department, New York City - Summer internship 1998.
Ski Instructor, Mount Snow, VT - Winter 1997/98.
Rock Climbing Instructor, Club Med, Playa Blanca, Mexico - Winter/Spring 1996/97.
|Last updated: Oct 2003|