Levent Erkok | 5 Apr 02:10 2013

Functional Programming Internship <at> Intel

[I'm posting on behalf of my colleague Jesse Bingham. While Jesse and I work for different groups at Intel, we collaborate quite often, and I do expect to work with the intern to an extent as well. To that end, I'm happy to answer any questions you might have. Otherwise, direct all correspondence to Jesse as indicated below. -Levent.]


Hi, we are looking to hire an intern to fill the below position.  If interested, please send your resume to jesse.d.bingham <at> intel.com.  Thanks

Intern SW Engr. Formal Verification - 708053 


Design and Technology Solutions (DTS) creates the software that caters to Intel's insatiable appetite for innovating silicon technology. Through our CAD solutions and engineering services, we enable Intel's process engineers to achieve the technical breakthroughs required to deliver tomorrows technology, and we help Intel's architects and chip designers develop products that change the world. To us, Moore's law is the imperative that drives our work to continuously improve the ways we explore technology options, so we can deliver better products, faster.

As a software engineer in DTS, you will work as part of a multi-disciplinary team to create software tools that meet Intel's specific, rapidly evolving requirements for designing, manufacturing, testing, and packaging silicon products. We work very closely with process engineers and chip designers (our internal customers) around the world, to understand their technical challenges, and to create proprietary CAD solutions. We help them apply our software to answer critical questions, and to address their design and manufacturing objectives. The daily work in DTS spans the complete software life cycle, from early research to mature production code with industrial robustness and quality. To deliver critical new features in our established solutions, or to create new CAD capabilities beyond the state of art in the industry, our teams frequently go through all steps in software development - problem analysis, requirements definition, design, coding, test, and deployment. As a member of our team, you are expected to participate actively in all these steps. Success in this fast-paced, results-oriented environment requires strong analytical skills and the ability to perform productive teamwork, which depends on very good communication skills.

In this particular job opening, you will join DTS's Formal Verification Center of Expertise (FVCoE) for a three month placement in Hillsboro, Oregon, in the timeframe of fall 2013. A primary responsibility of FVCoE is the maintenance of a large code base used for formal verification of Intel's core datapath designs; you will help rework several key aspects of this code to make it more robust and user-friendly. This will involve strict software engineering discipline to deliver robust, quality code that must perform reliably and predictably, The code is written in an in-house functional language called reflect. Reflect is similar to the popular functional languages Ocaml and Haskell; hence you should have considerable experience with one of these. Experience with formal verification is preferred but not necessarily required. Applicants will ideally be working towards a graduate degree in Computer Science or a related discipline.



Minimum Requirements

Skills: Functional programming coding skills; experience with one or more scripting languages; analytical skills for problem abstraction; broad theoretical knowledge in computer science, including algorithms and data structures; familiarity with standard software engineering practices.

Experience: acquired through coursework, internships, or personal projects. Experience in applied computer programming in a functional language.

Education: working toward an MS or Ph.D. degree in Computer Science, Applied Mathematics, or in an Engineering field related to silicon technology. Strong senior undergraduates will also be considered.

Preferred Requirements

Skills: Familiarity with: hardware formal verification techniques (especially symbolic simulation, binary decision diagrams, parametric substitutions, case splitting), arithmetic/floating point computer hardware designs, IEEE 754 floating point standard, Intel x86 instruction set.

Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
voigt.16734551 | 22 Jun 13:53 2006

Re: Re: Functional programming for processing oflargeraster images

--- Matthias Fischmann <fis <at> wiwi.hu-berlin.de wrote:

> On Thu, Jun 22,
2006 at 09:22:34AM +0100, Simon Peyton-Jones wrote:
> > To: Brian Hulley
<brianh <at> metamilk.com>, Joel Reymont <joelr1 <at> gmail.com>
> > Cc: haskell-cafe <at> haskell.org

> > From: Simon Peyton-Jones <simonpj <at> microsoft.com>
> > Date: Thu, 22 Jun
2006 09:22:34 +0100
> > Subject: RE: [Haskell-cafe] Re: Functional programming
for processing
> > 	oflargeraster images
> > 
> > http://haskell.galois.com/cgi-bin/haskell-prime/trac.cgi/wiki/BangPatterns

> > 
> > Bang patterns make it much more convenient to write a strict function.

> > E.g
> > 	f (x, !y) = ...
> > is strict both in the pair (of course)
but also in the second component
> > of the pair, y.
> i am ecstatic
to hear that :).

Well, you shouldn't be too enthusiastic, but rather follow
the above link ...

> if it really means that 'y' will be fully evaluated
(not top level
> normal form, but whatsthenameforthis, in the way ocaml evaluates

> expressions), it's something i have been missing so much that i was
thinking of switching back to a strict language again.

... to find out
that that's exactly not what bang patterns will do for you. They are compiled
into uses of seq, which means evaluation to weak head normal form.