Dell Principal Software Engineer: Distributed Systems in Seattle, Washington
Dell provides the technology that transforms the way we all work and live. But we are more than a technology company. We are a people company. We inspire, challenge and respect every one of our over 100,000 employees. We also provide them with unparalleled growth and development opportunities. We can't wait for you to discover this for yourself as a Senior Software Engineer on our Unstructured Data team in Seattle
Provides full design, planning, configuration, documentation, deployment and top-level support ownership of storage infrastructure technologies. Identifies design requirements and makes recommendations for capacity planning, performance optimization and future direction. Designs storage solutions per business requirements.
This includes performing storage workload modeling for sizing, optimization and troubleshooting. Researches and compares system/OS features and works with vendors on system sizing for specific applications. Understands storage virtualization, data rationalization, workload automation, storage provisioning, Disaster Recovery and SAN Fabric management. Troubleshoots storage-related reliability, availability, and performance issues.
Collaborates on and implements architecture recommendations to application integration, system administration, problem management, preventive maintenance, performance tuning. Identifies and eliminates performance bottlenecks and makes performance-related recommendations (hardware, software, configuration). Leads or participates in the software development lifecycle, which includes research, new development, modification, security, correction of errors, reuse, re-engineering and maintenance of software products. Manages or utilizes software that is built and implemented as a product, using best-in-class development process/lifecycle management (ex: Agile, Waterfall). Gathers business requirements and participates in product definition and feature prioritization, including customer usability studies.
Performs competitive analysis for features at a product level scope. Leads the testing and fixing of new or enhanced products. Creates technical documentation of software products/solutions. Assists with the development and review of end user and technical end user documentation. Drives idea generation for new software products, or for the next version of an existing product. Protects Intellectual property by working appropriate legal elements (ex: procurement, patents, open source).
Responsible for the delivery of products within budget, schedule and quality guidelines. Works with the team to develop, maintain, and communicate current development schedules, timelines and development status. Makes changes to system software to correct errors in the original implementation and creates extensions to existing programs to add new features or performance improvements. Designs and develops major functional or performance enhancements for existing products, or produces n ew software products or tools. Reviews requirements, specifications and designs to assure product quality; develops and implements plans and tests for product quality or performance assurance.
Design, Architect, and Implement solutions to distributed computing problems for consistent scale-out filesystems
Enable other teams to use those facilities, by consulting with them and/or improving the interfaces to make correct use more obvious.
Maintain a high quality of code in the product by reviewing and improving solutions
Help mentor junior Engineers to unleash their full potential
Be a pioneer and thought leader on how to evolve unstructured OneFS scaleout NAS in this data era
Develop new data services and expand the existing ones
Works with the team to develop, maintain, and communicate current development schedules, timelines and development status
Around eight years of C language development in Unix Systems.
Experience with threaded Programming in a C environment, Locking, and Distributed Hashing.
Degree in Computer Science or related field.
Experience with software control systems.
Experience with Python, Unix shell scripting, and other similar Unix systems languages and patterns.
Experience with Data access protocols
FreeBSD Kernel experience preferred.
Excellent communication and interpersonal skills.