Internship & Full time Position at EMC
Working under limited direction and within general practices, provides technical expertise by independently determining and developing approaches to solutions for a wide range of complex software engineering problems. Understands company goals, practices and product strategies and applies them when resolving a variety of problems. Uses judgment and creativity and sound technical knowledge to obtain and recommend solutions. Assignments may include new products as well as upgrades and enhancements, or fixes to existing products.
PRINCIPAL DUTIES AND RESPONSIBILITIES
- Duties will include working using multiple languages and technologies such as Java, Adobe Flex and SOA based technologies
- Duties will include being able to provide accurate estimates of tasks
- Must be comfortable with working with an Agile development environment.
- Duties will include writing development documentation such as functional specifications and design documentation.
- Duties will include working with other teams outside of the core team
- Duties include research, evaluation, development and application of new process and methods into products. Sphere of influence is likely to extend outside of work group or department.
- Represents the organization on project teams and may perform technical project leadership roles; contributes to the development and achievement of organizational goals and objectives.
- Works on the overall design and development of new ideas and products, and develops project plans.
- Develops new software engineering methods or processes, re-evaluate existing processes; designs simulation and test criteria and verifies functionality and performance.
- May be responsible for establishing and conducting testing routines, developing or executing project plans, and contributing to budgets and schedules. Provides documentation of work and results; reviews projects against goals and provides status reports.
- Understands and adheres to cost targets established during the program design phase.
- Excellent object-oriented programming and diagnostic skills in relevant languages, especially as it relates to distributed solutions and multi-tiered solutions
- Must understand the software development life cycle and the importance of the different phases of it
- Experience in applying unit testing to components under development and maintenance.
- Familiarity with Scrum, Agile Software Development.
- Distributed application software development using a variety of programming languages such as Java, Adobe Flex and Web Semantic technologies such as REST and RDF.
- Strong written, verbal and presentation skills.
- Persistent and creative in the face of challenge.
- Understanding of large software development business environments.
- Ability to work in a team environment.
- Knowledge of the storage industry domain (SANs, arrays, hosts, switches, NAS , FibreChannel and IP Networking) ? Knowledge of UML and software design tools such as Sparx Systems Enterprise Architect.
- Proven understanding of design principles and best practices in software design.
- Familiarity with use of Java IDEs (e.g. Eclipse preferred).
- Familiarity with use of source control mgmt systems (e.g. CVS, Clearcase/UCM desired).
- Performance tuning/SQL development desirable but not required.
- An understanding of negotiation and mediation practices.
- A strong sense of process, detail and follow-through.
- A strong set of problem solving and analytical skills.
- Ability to multi-task across problem domains and various contexts.
- Ability to work independently.
If interested in this position, please contact Adam Arakelian at firstname.lastname@example.org