Jobs

2016 Internship Opportunities

Please check back later for more 2016 Opportunities. Apply anytime with an email describing your interests and qualifications, with your resume to info@industry-academia.org


Grad student interns from Stony Brook, Penn, and Carnegie Mellon pause on an afternoon hike
in July 2015 in front of the base of “The Giant”
– a 285 feet high, 17 feet wide, ~1700 years old
Redwood - at Henry Cowell Redwoods State Park near Si Valley, on an outing organized by the IAP.

Open 2016 Positions

Software Engineering Intern – Cloud Infrastructure Reliability

Location:  Huawei, Santa Clara, CA
Work as part of team in testing live cloud infrastructure using Jepsen (jepsen.io). Jepsen is a relatively new open source tool kit that is rapidly gaining popularity in both academic and industry circles as the go-to solution for testing reliability of cloud infrastructure.  Jepsen analyses consist of running operations against a distributed system in a dedicated cluster, introducing faults into that cluster, and observing whether the results of those operations are consistent with some model.  Jepsen has recently uncovered several fundamental faults in many of the popular NoSQL database solutions.

The job involves profiling and understanding the functionality and performance requirements from existing cloud infrastructure components. Jepsen is written in Clojure (clojure.org), so familiarity with Clojure is desirable, but not mandatory. The job requires solid familiarity with programming languages (C/C++/Java), profiling tools, and knowledge in cloud infrastructure and storage solutions.

Additional Requirements:
  • Knowledge of typical applications used in Cloud Infrastructure like nginx, memcached, varnish, redis, MySQL, NoSQL, etc. is desirable
  • Experience in C/C++/Java programming languages and toolchains
  • Knowledge of scripting languages such as Python, Perl, Tcl and UNIX shell, etc. is desirable
  • Knowledge of various profiling tools like gprof, oprofile, vTune etc. is desirable
  • Experience using and the ability to debug complex systems is desirbale
  • Enrolled in an MS/MEng or PhD program in Computer Science or Engineering

Validation Engineering Intern or Full time – High End Network Switches

Location:  Cavium, San Jose, CA
Perform post-silicon validation, characterization, software and system testing of high-end switching silicon device. Cavium (cavium.com) is a leading provider of cloud infrastructure servers, switching and networking solutions, and is headquartered in San Jose, CA

Write a comprehensive validation test plan for testing Switching and Routing features – VLAN, LAG, ECMP, IPv4, IPv6, MPLS, VxLAN, SDN.
  • Qualify QoS features like- WRED, DWRR, Shaper, Strict Priority, Priority Flow Control (PFC), Tail Drop
  • Qualify MAC features like- Auto-negotiation, SERDES, Reed-Solomon Forward Error Correction (RS FEC), 40G, 25G and 100G.
  • Develop automation in Python, execute test cases, and analyze/debug failures for functional, and performance tests.
  • Work with ASIC and SW development teams to report and resolve issues identified.
  • Recent Masters Degree or Currently Enrolled in an MS/MEng or PhD program in Computer Science or Engineering

Examples of positions filled in 2015

Engineering Intern – Cloud Infrastructure
Work as part of team in defining the hardware accelerator for cloud infrastructure. The job involves profiling and understanding the functionality and performance requirements from existing cloud infrastructure components like memcached, redis, varnish, etc. and developing the software tools that are necessary in defining the accelerators. The job requires familiarity with various programming languages (C/C++/Java), profiling tools, good at data structures/algorithms.

Additional Requirements:

  • Good at algorithms, data structures, space-run time tradeoff
  • Knowledge of applications used in Cloud Infrastructure like nginx, memcached, varnish, redis, mysql, postgresql etc. is desirable
  • Experience in C/C++/Java programming languages and toolchains
  • Knowledge of scripting languages such as Python, Perl, Tcl and UNIX shell etc is desirable
  • Knowledge of various profiling tools like gprof, oprofile, vTune etc. is desirable
  • Experience using high speed lab equipment and the ability to debug complex systems required.
Engineering Intern – Text Analytics
Work as part of team in defining the hardware accelerator for text analytics. The job involves profiling and understanding the functionality and performance requirements from natural language processing and developing the software tools that are necessary in defining the accelerators. The job requires familiarity with various programming languages (C/C++/Java), profiling tools, good at data structures/algorithms.

Additional Requirements:

  • Domain knowledge in Natural Language Processing, Regular-Expressions, Parsing and Graph Theories
  • Knowledge of NLP packages like NLTK, CoreNLP etc. is desirable
  • Good at algorithms, data structures, space-run time tradeoff
  • Experience in C/C++/Java programming languages and toolchains
  • Knowledge of scripting languages such as Python, Perl, Tcl and UNIX shell etc is desirable
  • Knowledge of various profiling tools like gprof, oprofile, vTune etc. is desirable
  • Experience using high speed lab equipment and the ability to debug complex systems required.

Engineering Intern – Graph Analytics
Work as part of team in defining the hardware accelerator for graph analytics. The job involves profiling and understanding the functionality and performance requirements from Graph database/Graph analytics and developing the software tools that are necessary in defining the accelerators. The job requires familiarity with various programming languages (C/C++/Java), profiling tools, good at data structures/algorithms.

Additional Requirements:

  • Knowledge of Graph databases and query languages like Neo4j, Gremlin, Flockdb, GraphLab etc. is desirable
  • Good at algorithms, data structures, space-run time tradeoff
  • Experience in C/C++/Java programming languages and toolchains
  • Knowledge of scripting languages such as Python, Perl, Tcl and UNIX shell etc is desirable
  • Knowledge of various profiling tools like gprof, oprofile, vTune etc. is desirable
  • Experience using high speed lab equipment and the ability to debug complex systems required.

Engineering Intern – Java

Work as part of team in defining the hardware accelerator for Java Virtual Machine. The job involves profiling and understanding the functionality and performance requirements of JVM and developing the software tools that are necessary in defining the accelerators. The job requires familiarity with various programming languages (C/C++/Java), profiling tools, good at data structures/algorithms.

Additional Requirements:

  • Knowledge of openJDK/Oracle JDK, SpecJBB and other java benchmarks is desirable
  • Good at algorithms, data structures, space-run time tradeoff
  • Experience in C/C++/Java programming languages and toolchains
  • Knowledge of scripting languages such as Python, Perl, Tcl and UNIX shell etc is desirable
  • Knowledge of various profiling tools like gprof, oprofile, vTune etc. is desirable
  • Experience using high speed lab equipment and the ability to debug complex systems required.

Software Research Intern – OpenStack Implementation
Work as part of software team to optimize performance of specific software packages including OpenStack. Will test functionality currently available as well as optional software packages for proper execution and performance.

  • Willing to personally install/configure/administer OpenStack and other software packages on hardware, and administer additional network and server equipment. Will also be responsible for administration of NCD lab and all systems therein.
  • You will investigate the current limitations of OpenStack implementations on a multicore ARMv8 NUMA architecture, isolating the major bottlenecks and showing where the architecture design impacts performance in positive and negative ways.
  • You will use publicly available software literature, academic research, and results from evaluation and profiling tests to enable functionality and optimize performance of the targeted software platforms.
  • The ideal candidate for the position has experience in the analysis of high performance computing software environments. The candidate is expected to execute a series of tests to determine the performance of various software loads to be described for candidate but implemented independently. These experiments include profiling loads, executing test suites and processing results provided by customers. He/she should be able to understand the expected result of an experiment and have the ability to analyze test data in real-time to determine the validity and quality of acquired data