DataCore Software is a profitable, global software company that helps more than 10,000 customers worldwide modernize how they store, protect, and access data. The company delivers the industry’s most flexible, intelligent, and powerful software-defined storage (SDS) solutions.
The DataCore ONETM vision unifies the often-disparate storage industry across block, file, and object storage with a single solution. DataCore’s comprehensive product suite, intellectual property portfolio, and its unrivaled experience in storage virtualization and advanced data services, position it as the authority on software-defined storage. Organizations ranging from hospitals and health systems, media and entertainment providers, educational institutions, government agencies and more trust DataCore’s solutions to improve performance, reduce costs, and provide high availability.
DataCore’s world-class customer service and support been recognized with several prestigious awards and boasts a 71% net promotor score (NPS), far surpassing the industry average of 30%.
Corporate headquarters are out of a state-of-the-art facility in sunny Ft. Lauderdale, Florida, with offices in Austin, Munich, London, Paris, Milan, Sofia, Tokyo, and Taipei with a technical center of excellence in Bangalore, India.
Sr. Software Development Engineer – Windows Applications
We are looking hire an IC as a key contributor in developing software solutions that supports organization strategy and vision, ensuring alignment between the technical solutions and the business needs. This person will play a role in every part of the software system development lifecycle, working with our team to produce high quality, high performing systems that meet our stakeholders needs.
Key responsibilities and duties include, but are not limited to:
- Able to complete a complex software lifecycle: scope, design, code, test and implement
- Develop technology components that would integrate with larger SDS (Software Defined Storage) platform and product
- Participate in requirement analysis and definition
- Follow established company software development guidelines and procedures
- Work with and contribute in a dynamic, distributed team environment
- Grow and mentor new team members
Essential skills and experience required:
- Bachelor/Masters degree in Computer Science Engineering or related Engineering
- 2 to 4 years of experience with emphasis in Microsoft Windows enterprise applications development
- Extensive experience with systems software development with Windows OS
- Good understanding of Windows internals
- Extensive working experience of programming in C++ on Windows environments
- Strong object-oriented programming skills using C++ in system level programming
- Knowledge on tools like Visual Studio, WinDBG, Wireshark, fiddler
- Experience with debugging, performance profiling and optimization of complex code
- Should have thorough experience on crash and core dump analysis
- Excellent analysis, critical thinking and problem-solving skills
- Ability to quickly learn and apply new concepts or principles
- Internally motivated, able to work proficiently both independently and in a team environment
- Self-starter with extreme comfort in working with geographically dispersed teams
- Excellent oral and written communication skills
- Strong understanding of Unit Testing principles
- Knowledge / hands on experience of modern DevOps practices for CI/CD
Desirable skills and experience:
- Windows Storage driver development experience
- Experience working with products in Storage domain will be a strong plus
- Knowledge of Storage related concepts (mirroring, encryption, snapshots, replication, etc.)
- Good general working knowledge of the SCSI specification and common transports
- Familiarity with networking protocols, including TCP/IP, TLS/SSL
- Experience working in an agile environment. Able to break broad Epics into predictable User Stories