Primary Duties and Accountabilities:
- Design, write, and maintain software to improve the availability, scalability, latency, and efficiency of applications/services, incorporating cloud and open source tools when available and writing software of your own when nothing else fits the bill.
- Engage in service capacity planning and demand forecasting, anticipating performance bottlenecks and provisioning new hardware as necessary.
- Participate in software performance analysis and system tuning.
- Monitoring and alerting for various components across our infrastructure
- Participate in rotating on-call duties.
- Provides technical advice and weighs in on technical decisions that impact other teams or the company at large. Researches and proposes new technologies
- Scopes and stages work into well-defined milestones to avoid a monolithic deliverable.
- Owns the technical testing and performance plan for their projects
- Quality Assurance (QA) Testing: Assists software engineering teams during the quality assurance phase of the development cycle.
- Production Release: Serves as a supervisor before, during and after the systems Production rollout.
- Utilities: Actively involved in the selection and/or creation of tools for design, modeling, programming, debugging, testing, diagnostics, monitoring, profiling, operations, logging, reporting, security checking, or analysis.
- Management: Participates in third-party system analysis to identify potential implementations and integrations.
- Education: Keeps up on industry trends and current technological standards, languages, coding techniques, utilities and operational considerations
Education, Experience and Knowledge
- Bachelor's Degree in Computer Science, or related field, from a four-year college or university, or one to two years related experience and/or training; or equivalent combination of education and experience. Relevant industry certification, such as Oracle Java Developer, is preferred.
- A minimum of 6 years relevant experience in software development, information systems, or equivalent technical environment, including previous experience in the development of highly transactional, mission critical applications in heterogeneous environments/architectures for multi-user systems.
- Expert in all aspects of the software development lifecycle: design, functional and technical requirements, coding, debugging, testing, release, and operational support.
- Expert level knowledge of agile software development methodologies, Service Oriented Architecture and object-oriented programming methodologies.
- Expert in software development best practices, including coding standards, code reviews, source control management, build processes, testing, and operations.
- Expert level knowledge of relational database management system technologies and tools.
Skills (with Java Specialization)
Expert level proficiency with the following technologies:
- Java (5+ years)
- Spring or similar MVC framework
- Service oriented designs and technologies (AJAX, XML/JSON)
- Web service protocols, such as SOAP or REST
- Database experience (Oracle, MySQL, Informix, etc..)
- Software development tool kits, such as Subversion and/or GIT
- Experience working on Kafka
- Experience working on AWS stack (EC2, RDS, Lambdas, S3, etc....)
- Familiar with continuous integration tools such as Jenkins and Sonar
We are an equal opportunity employer and make hiring decisions based on merit. Recruitment, hiring, training, and job assignments are made without regard to race, color, national origin, age, ancestry, religion, sex, sexual orientation, gender identity, gender expression, marital status, disability, or any other protected class