Candidate should have experience in the following:
- Demonstrated experience in architecting, designing, developing solutions using the ELK (Elasticsearch, Logstash and Kibana) stack -- not limited to but including analytics and machine learning
- Demonstrated experience in SQL and writing complex queries with joins and aggregate that deals with large datasets.
- Demonstrated experience with Python 2.x
- Demonstrated experience with the Hadoop Distributed File System (HDFS)
- Experience leading design and implementation of new stories and bug fixes
- Experience performing thorough design reviews and code reviews
- Hands on Java development, Junit testing and issue troubleshooting
- Experience working in an Agile based development environment, using Agile concepts
- Understanding and comfort with enterprise frameworks for dependency injection, object relational mapping and logging (Spring Framework, Hibernate, SLF4J)
- Familiarity with Build Management, Continuous Integration, and Automated Testing (Maven, Jenkins)
|
Individual Capabilities Required:
- Analyze user requirements to derive software design and performance requirements
- Debug existing software and correct defects
- Provide recommendations for improving documentation and software development process standards
- Design and code new software or modify existing software to add new features
- Integrate existing software into new or modified systems or operating environments
- Develop simple data queries for existing or proposed databases or data repositories
- Write or review software and system documentation
- Serve as team lead at the level appropriate to the software development process being used on any particular project
- Design or implement complex database or data repository interfaces/queries
- Develop or implement algorithms to meet or exceed system performance and functional standards
- Assist with developing and executing test procedures for software components
- Develop software solutions by analyzing system performance standards, confer with users or system engineers; analyze systems flow, data usage and work processes; and investigate problem areas
- Modify existing software to correct errors, to adapt to new hardware, or to improve its performance
- Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design
- Design or implement complex algorithms requiring adherence to strict timing, system resource, or interface constraints; Perform quality control on team products
- Implement recommendations for improving documentation and software development process standards
- Oversee one or more software development teams and ensure the work is completed in accordance with the constraints of the software development process being used on any particular project
- Confer with system engineers and hardware engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces
- Coordinate software system installation and monitor equipment functioning to ensure operational specifications are met
|