Designs, develops, troubleshoots and debugs software programs for software enhancements and new products. Develops software including operating systems, compilers, routers, networks, utilities, databases and Internet-related tools. Determines hardware compatibility and/or influences hardware design.
- Leads multiple project teams of other software systems engineers and internal and outsourced development partners responsible for all stages of design and development for complex products and platforms, including solution design, analysis, coding, testing, and integration
- Manages and expands relationships with internal and outsourced development partners on software systems design and development.
- Reviews and evaluates designs and project activities for compliance with systems design and development guidelines and standards; provides tangible feedback to improve product quality and mitigate failure risk.
- Provides domain-specific expertise and overall software systems leadership and perspective to cross-organization projects, programs, and activities
- Drives innovation and integration of new technologies into projects and activities in the software systems design organization.
- Provides guidance and mentoring to less-experienced staff members
Principal Java Developer (Cloud)
- Designs, develops, and analyzes highly complex software programs for cloud based systems.
- Familiarity with public cloud providers such as Amazon Web Services, Microsoft Azure, IBM, RackSpace, etc.
- Develop multi-tiered cloud blueprint connectors for PaaS solutions such as RedHat OpenShift, CloudFoundry, Azure PaaS, and the orchestration components used to integrate developed solutions.
- Integrate solutions into Linux and Microsoft operating systems providing automated system configuration and platform engineering adjustments as necessary.
- Automate solution development and deployment with orchestration products such as Puppet, Ansible, Chef, or other DevOps tools
- Configure and maintain cloud resources such as virtual load balancers and firewalls used in the production of enterprise blueprints.
- Be able to work collaboratively with other team members with changing priorities and ad-hoc requests.
- Adhere to best practices for code maintenance, package automation, automated build and quality assurance testing.
- Coordinate with Product Managers, Development Leads and Engineering Directors to ensure accurate time estimates and on-time deliverables.
- Essential Job Functions:
- Enthusiasm, dedication, and passion for exceptional solutions development
- Enjoys critical thinking and problem solving
- Expert at Shell scripting in one of more of the following: Bash, Perl
- Deep experience level with one or more of the following: Java, C#, Python
- Expertise with private and public cloud engineering (VMware, OpenStack)
- Experience using Source Control (Subversion, GitHub) and Bug Tracking Systems (JIRA)
- Demonstrable skills building virtual machine images on private and public clouds
- Willingness and ability to handle requests outside of your core responsibilities
- Excellent communication skills
- Additional Pluses:
- Build and Runtime automation experience using Puppet, Ansible, Chef, or similar orchestration products
- Experience with Jenkins or similar continuous build and integration frameworks
- Expertise for Agile development methodologies
- Familiar with Software Defined Networking (SDN) and OpenStack API
- Knowledgeable of systems security best practices and how to apply them
- Performs highly complex systems modeling, simulation and analysis to provide appropriate solution.
- Conducts investigations and tests of complex software systems to enhance performance or to investigate and resolve matters of significance.
- Reviews completion and implementation of technical products to ensure success and timeliness.
- Reviews literature, patents and current practices relevant to the solution of more complex projects.
- Recommends corrections in complex technical applications and analysis to enhance performance.
- Evaluates vendor capabilities on projects to provide required products or services.
- Provides leadership and work guidance to less experienced personnel.
- Provides technical consultation to other organizations; interacts with senior customer personnel and internal senior management.
- Provides the customer base with first level support.
Education and Experience
- Bachelor's or Master's degree in Computer Science, Information Systems, or equivalent
- Minimum 6-10 years experience
Knowledge and Skills
- Extensive experience with multiple software systems design tools and languages.
- Excellent analytical and problem solving skills.
- Experience in overall architecture of software systems for products and solutions.
- Designing and integrating software systems running on multiple platform types into overall architecture
- Evaluating forms and processes for software systems testing and methodology, including writing and execution of test plans, debugging, and testing scripts and tools
- Excellent written and verbal communication skills; mastery in English and local language. Ability to effectively communicate product architectures, design proposals and negotiate options at senior management levels.
- BA/BS in Computer Science or equivalent experience
- 5+ years Java, C# and other relevant code base
- 5+ years enterprise application platform development and deployment experience
- 3+ years of experience deploying multi-tiered applications across Windows and Linux systems
- 2+ years of networking, routing, load-balancing, firewall knowledge and experience
- 2+ years ESX, KVM, XEN, Hyper-V hypervisor experience
- 4+ years VMware virtualization experience
- 2+ years private and public cloud engineering (OpenStack, VMware vSphere, Amazon Web Services - AWS, Microsoft Hyper-V/Azure)
- 5+ years shell scripting in one or more of the following: BASH, Perl, Powershell
- Bachelor's degree or equivalent combination of education and experience
- Bachelor's degree in computer science, management information systems, or related field preferred
- Six or more years of experience in software engineering or operating systems programming
- Experienceworking with software design principles
- Strong analytical and creative problem solving skills to resolve highly complex software design issues and create new software for one or more products
- Good leadership skills to mentor, oversee, and lead team members
- Good interpersonal skills to interact with senior customers, management, and team members
- Good communication skills to interact with team members and senior support personnel
- Ability to synthesize broad and narrow concepts of high complexity and use them to meet company objectives
- Ability to work independently and as part of a team