A software engineer who strives for simplicity in design and implementation. I enjoy finding and building useful tools. I am always eager to learn new application domains.
My professional experience is varied, and includes building optimizing compilers for advanced languages and advanced architectures, programming language theory, all sides of a Web-based financial services startup, and varied government research contracts.
Happily employed.
M.Eng. in Electrical Engineering and Computer Science, MIT, 1998. Completed a thesis on publishing human-readable RPC services using standard Web technologies.
B.S. in Computer Science, MIT, 1997. 4.8/5.0 overall GPA, letters of recommendation in core subjects, and a 99th-percentile score on the GRE subject test in Computer Science.
Alexander Central High School, 1992. Perfect 1600 SAT score and graduated valedictorian.
Programming languages: Scheme, SML, Python, C, Java, C++, Perl.
Related skills: programming language semantics, mathematical reasoning, tool-building, functional and multi-paradigm programming.
Operating systems: Linux (Debian, Red Hat, Gentoo), FreeBSD, NetBSD.
Other tools: OpenJDK, ckit, J2EE, Emacs, XML, GNU Make, NISOPT, LaTeX.
Signature Generation. Assisted on an OSD research contract to incorporate automatically generated signatures into our R-Scope network intrusion detection and prevention system (NIDS). Configured security laboratory using a small Linux cluster and virtual machines to attack various Windows 2000 software using Metasploit generate signatures using a subcontractor's tool.
IP Over VME. Worked on a Navy research contract to implement IP over VME as a legacy compatibility tool. Designed and partially implemented a fake InfiniBand HCA driver via VME, relying on the Linux OpenFabrics InfiniBand stack to provide IP functionality.
MIPS Port of Java. Assisted in the port of the HotSpot JVM to MIPS64 for a customer. Implemented parts of the platform interpreter in MIPS assembly and platform-specific C code. Managed updates, including the transition to OpenJDK, and implemented distributed builds on the customer's cluster platform.
Parallel SAT Solver. Reviewed our distributed SAT solver implementation using MPI. Collaborated with designer and suggested adustments to the algorithm.
Obfuscation. Researched, designed, implemented, and evaluated a few simple obfuscations in the R-Stream compiler framework as part of a government research contract.
Targeting GPUs. Using ckit, an SML/NJ C parser, designed and implemented a simple post-processing pass on R-Stream's output in order to run it on GPU targets. Explored the limitations of GPU shader units that prevented most code from running efficiently or in some cases correctly, including the very limited integer precision obtained using the single-precision, non-IEEE floating-point arithmetic available ca. 2005.
R-Stream 2.x. Designed and implemented parts of the R-Stream 2.x high level compiler for embedded multiprocessors as part of the DARPA Polymorphous Computing Architectures program.
The DARPA PCA program relies on advanced compilers to effectively map regular, computationally intense applications onto granular, reconfigurable multiprocessors. This is meant to achieve high power and space efficiency for hardware/software systems, while retaining programmability, with all its advantages.
High Level Compiler. Designed, implemented, and maintained the AST-to-CFG conversion phase of the R-Stream 1.x compiler. I participated in design discussions and implementations of other parts of the compiler as well, and presented the front-end design and implementation at the first DARPA review meeting.
Analytic Engine. Designed and implemented a network server to analyze equity portfolios and recommend trades. This software embodied our core IP: a tax- and cost-sensitive portfolio analysis and trading strategy for automatically managing "personal index funds".
The analytic engine was the workhorse of our Web site and ASP systems, spending over 30 CPU-seconds to optimize a typical portfolio using a third-party optimizer tool. I designed the server and communication protocols for minimal overhead beyond the optimization itself, and scalability to thousands of CPU servers.
The production version replaced a prototype, which I also maintained for almost a year, and continued to maintain while designing the production version. I maintained a large degree of functional compatibility in the transition from prototype to production, allowing a smooth transition for the other engineers.
Backtester. Co-implemented a program to run the analytic engine with real and synthetic market histories to test model parameters and trading strategies. As part of this project, I designed and implemented a simple plug-in architecture for trading strategies, for direct use by our financial engineers. I also organized a farm of compute servers to run back-tests.
Batch Optimizer. Maintained our middleware layer, which ran nightly batch jobs to maintain up-to-date recommendations and find particularly important trading opportunities. I was able to reduce the size of this codebase by approximately 50%, without changing functionality. I also migrated parts of the Web site into the middleware layer to ensure consistency between batch optimizations and interactive optimizations, and to reduce systemic duplication where optimization-related functionality occurred in both the Web site and the middleware layer.
Web Site. Designed and implemented parts of our mod_perl Web site. Our Web site accessed user data stored in an Oracle database, via Perl DBI, and communicated with our analytic engine via network sockets. I designed and implemented a wide range of Perl modules, including authentication, session state management, content generation, and application-specific database access.
System Infrastructure. Liaised with our system administration team to bring our database-backed Web service into production. I maintained and extended infrastructure scripts associated with our applications and moved functionality across the application/system boundary to achieve a narrow interface that satisfied the needs of the system team.
Added higher-order data- and control-flow analyses and optimizations to the SML/NJ Standard ML compiler. The algorithms I used were based on those developed by my advisor, Olin Shivers, in his Ph.D. dissertation; see Control-Flow Analysis of Higher-Order Languages.
Taught the graduate programming languages course. I enjoyed the common MIT experience of teaching students smarter than myself, while finding that I still had some knowledge to offer them in my particular field. The course focused on semantics and covered type theory and standard denotational models for a variety of archetypal programming languages.
Continued work with the HyPursuit authors. I maintained the CGI search program described in the paper cited below.
Extended a CGI program and migrated it from C to C++. I helped describe the research in HyPursuit: A Hierarchical Network Search Engine that Exploits Content-Link Hypertext Clustering.
Added an X11 interface and simple window system to Scheme 48. To simplify the former task, I designed and implemented a powerful C foreign function interface that allowed me to manipulate any C object, of any C type, directly from Scheme. I also ported the YASOS object system to Scheme 48.
Available on request.
The best way to reach me is szilagyi@alum.mit.edu. The most current version of my resumé can be found under http://alum.mit.edu/www/szilagyi.
I am interested in human-computer interfaces (HCI/CHI), aural interfaces, accessibility, visual programming languages, quantitative software engineering, electronics, operating systems, programming environments, system administration, infrastructure system architecture, formal methods and verification, automatic theorem proving, and formal reasoning systems in general. Tools from these areas will gradually make their way into mainstream programming, increasing our productivity and software quality.