Contribute to the design and architecture of high-quality, complex systems and software/storage environments.
Prepare, review and evaluate software/storage specifications for products and systems.
Build and review design, functional, technical and/or user documentation, as needed
Essential Requirements
8+ years of development experience on software with a bachelor’s degree.
Experience developing software with programming language Java for Linux operating systems at a user space level and experience developing within large scale distributed systems with working experience in storage networking protocols and architectures.
Deep understanding of distributed storage architecture, Object storage concepts (e.g., replication, erasure coding), Consistency models and fault tolerance & Scalability and performance optimization, Data Structures algorithms & Design Patterns.
Hands on experience on Cloud & Infrastructure Knowledge - Linux OS internals, Networking concepts (TCP/IP, DNS, load balancing), Virtualization and containerization basics (Docker, Kubernetes).
Hands-on experience in RESTful API design and implementation, Amazon S3 API compatibility and Swift API, Security protocols (OAuth, SSL/TLS).
Desirable Requirements
Development Tools & Practices - Version control (Git), Build tools (Maven, Gradle), CI/CD pipelines and automated testing frameworks, Debugging and profiling tools.
Should be able to adapt to new technical complexities, changing system priorities and able to understand the test automation and build infrastructure using technologies like Gradle, Jenkins, Git and coding languages like shell/pearl scripting, Golang and python.