Job description:
Seagate is conducting an interview for the post of Provisioning Engineer.
About our group:
This group is developing a new storage software platform designed for cloud storage product and focused on scalability, extensibility and reuse.
Job duties and responsibilities:
- Understands the implementation details of the storage system at the source code level
- Debugs performance and reliability issues of the storage system
- Modifies source code to improve performance, enhance stability, and to fix defects
- Implements features, enhancements to the source code
- Unit testing of the developed source code
- Documents designs and code clearly in English language
- Communicates with team and managers to develop optimal solutions and report progress
- Collaborates with other team members to ensure integration of all parts of the system
- Researches and evaluates alternative approaches to assist in developing solutions
- Shares best practices with partners and peer groups
Knowledge and Skills required:
- Knowledge in Software development and Cryptography
- Algorithms and data structure knowledge
- Self-motivated
- Strong analytical skills
- Ability to quickly learn new tools and technologies
Experience required:
- Programming skills in C/C++, Java, Python, Shell Script
- Understanding of storage system architectures: storage media types, communication media and protocols. Typical capacity, throughput and latency values, failure modes
- Understanding modern server architectures: processors, caches, cores, NUMA, concurrency control mechanisms
- Thorough understanding of programming language and tools (compilers, linkers, profilers, etc.)
- Understanding of the UNIX operating system concepts (VFS, inodes, buffer cache, page cache, processes, signals, interrupts, scheduler, memory management) and POSIX interfaces
- Understanding of concurrent and multi-threaded programming
- Some understanding of distributed systems is desired (shared memory vs. message passing, asynchronous systems, two phase commit, Paxos)
- Some Linux kernel and file system development knowledge is desired
- Understanding of industry software development processes and practices
- Knowledge of software development life-cycle
- Understanding of engineering functions (i.e., development, documentation, release engineering)
- Actively pursues opportunities for learning and self-development
Job/Req. ID: 705706800