Post Job Free
Sign in

Engineer Project

Location:
Portland, OR
Posted:
November 13, 2012

Contact this candidate

Resume:

Tanya M. Lattner

*****@******.*** (http://nondot.org/tonic)

OBJECTIVE

I'm looking for an exciting and challenging programming position that allows me to utilize

and expand my current skill set. The majority of my experience is in compilers and

networking, but I am open to a variety of positions that focus on applications, user

interfaces, operating systems, and other system software or tools.

OVERVIEW OF SKILLS

C++, Java, C, Python, Perl, optimizing compilers, code generation, LLVM, networking,

databases, PHP, SQL, GUIs, XML, project management, release management, ...

EDUCATION

B.S. Electrical Engineering University of Portland, Portland, OR 5/2000

M.S. Computer Science University of Illinois, Champaign, IL 6/2005

Thesis: An Implementation of Swing Modulo Scheduling with Extensions for Superblocks

WORK EXPERIENCE

Apple Inc., Cupertino, CA 05/07 - Present

Compiler Engineer

Built, deployed, supported, and extended a new in-house tool used by the Fairplay

team.

Tool depends primarily on mid-level transformation and analysis algorithms, using local

and inter-procedural techniques.

Performed regression, correctness, and performance testing on the tool.

As a production tool, we release every 3-6 months and are continually planning,

designing, and implementing the next features while addressing any bugs.

Due to the nature of DRM, specific details about this tool are under NDA.

Hewlett- Packard, Cupertino, CA 06/05 05/07

Software Engineer

Focused on code generation and optimization in HP s Itanium backend for the HotSpot

Java JVM.

Implemented an efficient and aggressive copy coalescing algorithm, Fast Copy

Coalescing and Live Range Identification, and extended it to support predication.

Modified and tuned heuristics for tail duplication.

Implemented an SSA updating algorithm to efficiently update SSA form after CFG

transformations such as tail duplication and loop unrolling.

Implemented a new superblock scheduling heuristic that considered branch probability.

Implemented an algorithm to preserve Java memory model by correctly inserting

memory fences or using specific load or store instructions.

Expanded the existing testing infrastructure by writing scripts and dynamic web pages to

track failures and build statistics such as build time, compile time, and JVM size.

Fixed bugs in numerous phases of the compiler, for example, block layout, predication

framework, scheduler, register allocation, copy coalescing, and liveness analysis.

National Center for Supercomputing Application, Champaign, IL 09/00 - 03/05

Research Programmer

Chief Architect of the NLANR Network Performance Advisor project. The Advisor

measures, displays, and analyzes network metrics. It builds on existing network

diagnostic tools, processing their output in order to provide advice to end-users. The

Advisor is made up of a number of components, such as the performance data collector,

historical archiver, data analysis engine, and front ends. It is written in Java and uses

XML-RPC.

Continuous collaboration with the Internet2 End- to- End Performance Initiative project

called PIPES, which allowed our network measurement infrastructures to communicate.

Participated in the Networking Measurement Working group of the Global Grid Forum

(GGF) to develop a common network measurement request and response schema.

Created a Java GUI for Iperf, which measures bandwidth and tunes TCP configuration

parameters for network performance.

Developed a FTP client in Java that uses x509 certificate security with the Globus Cog

Kit. This allows researchers to securely transfer files to large mainframe computers on

the Grid.

Developed an internal information framework for the Web100 project. This framework is

a combination of a MySQL database, PHP web site, and a local private customized

SourceForge install.

Maintained and created external web pages, provided user support, and

reviewed/created documentation for the Web100 project: http://www.web100.org

IBM, Beaverton, OR 5/00 9/00

Software Engineering Intern

Enhanced GDB on DYNIX/ptx to support POSIX threads.

Created Linux Resource Center web site for internal use.

Worked with the team to enable Linux application support on DYNIX/ptx.

Cypress Semiconductor, Beaverton, OR 1/99 8/99

Technical Intern

Upgraded, maintained, and customized the bug tracking system.

Developed a Perl program to analyze Cypress Warp reports and VHDL source files. The

results aided in categorization and automated testing.

I upgraded and ported a large MFC application to Unix, using customized Stingray products

(Objective Toolkit and Objective Edit).

INTERESTS AND ACTIVITIES

Contributing to the Open Source LLVM project: http://llvm.org

Release manager.

Co-organized the 2008 & (upcoming) 2009 LLVM Developers Meeting:

http://llvm.org/devmtg/

Implemented Swing Modulo Scheduling for my thesis.

Partial redesign of nightly tester test results database, testing scripts, and php scripts

that display the results.

Wrote initial llvm-ar implementation.

Converted the regression testsuite to use Dejagnu.

Nontechnical interests:

Running (half marathons), cooking, pottery, gardening, and travel.

REFERENCES

Available upon request.



Contact this candidate