As a Senior Software Engineer, you would:
- Application Development & Maintenance: Be responsible for the development and maintenance of applications with technologies involving Enterprise Python and Distributed technologies.
- Technical Leadership & Collaboration: Lead the team for technical discussions and reviews. Collaborate with developers, product manager, business analysts, and business users in conceptualizing, estimating, and developing new software applications and enhancements.
- Documentation & Specification: Assist in the development and documentation of software's objectives, deliverables, and specifications in collaboration with internal users and departments.
- Quality Assurance Collaboration: Collaborate with the QA team to define test cases, metrics, and resolve questions about test results.
- Design & Innovation: Assist in the design and implementation process for new products, research, and create Proof of Concepts (POCs) for possible solutions.
- Component Development: Develop components based on business and/or application requirements.
- Unit Testing: Create unit tests in accordance with team policies & procedures.
- Mentorship & Support: Advise and mentor team members in specialized technical areas, as well as fulfill administrative duties as defined by support processes.
- Optimization Focus: Focus on Cost Optimizations, Scalability, Reliability, and Secure solutions for all owned features.
Qualifications
Required Skills & Experience
- Education: Bachelor's degree or equivalent in Computer Science.
- Experience:9+ years of experience in a combination of the following technologies:
- Python (Enterprise Python)
- Big Data
- DevOps
- Spark
- Kafka
- SQL
- Angular
- Cloud (AWS or GCP)
- Microservices
- Architecture & APIs:Can develop SOA services and has good knowledge of REST API and Microservice architectures.
- Solid knowledge of web architectural and design patterns.
- Performance & Cost Optimization: Strong working experience on performance optimizations and a focus on Cost Optimization and Scalability.
- Software Security: Understands software security practices including user authentication and authorization, data validation, and an understanding of common DOS and SQL injection techniques.
- Development Tools: Familiar with profiling, code coverage, logging, common IDEs, and other development tools.
- Scripting Languages: JavaScript, Linux, and Python.
- Methodologies: Familiar with Agile Methodologies - SCRUM.
- Communication: Strong communication skills (verbal and written).
- Work Management: Ability to work within tight deadlines and effectively prioritize and execute tasks in a high-pressure environment.
- Cross-functional Interface: Demonstrated verbal and written communication skills, and ability to interface with Business, Analytics, and IT organizations.
- Team & Adaptability: Ability to work effectively in a short-cycle, team-oriented environment, managing multiple priorities and tasks.
- Problem Solving: Ability to identify non-obvious solutions to complex problems.
Preferred Knowledge/Experience
- Big Data Ecosystems: Hadoop, Spark, Kafka, Databricks.
- Containerization: Docker and Kubernetes.
- Analytics: Streaming and Batch Analytics processes.
- Tools: Eclipse, Maven, Gradle, DB tools, Bitbucket/JIRA/Confluence.
- JavaScript UI Frameworks: Desirable knowledge of JavaScript UI frameworks (backbone, angular, react, etc.).
Nice to Have Qualifications
Technical:
- Certifications: BigData/Python/Spark/Cloud Certifications.
- SQL & Data Analysis: Strong technical knowledge of SQL and data analysis with relational database modeling principles and techniques.
- Cloud Data Technologies: Working knowledge of Data Technologies in the Cloud such as AWS services of compute, storage, messaging, RDS/Redshift, or Snowflake.
- Advanced SQL: Strong skills in writing SQL queries (Oracle/SQL Server/Warehouse/NoSQL) and experience in Databricks.
- UNIX/Linux: Basic UNIX/Linux knowledge/exposure is a plus but not required.
- Data Warehousing: Knowledge of data warehousing concepts.
- ETL/ELT Tooling: Proven expertise in ETL/ELT tooling such as Pentaho, Integration Services, Informatica, Data Pipeline, Glue.
Non-Technical:
- Functional Knowledge: Functional knowledge of CRM, Marketing, Loyalty.
- Problem Solving: Excellent Analytical and problem-solving skills.
- Troubleshooting: Ability to diagnose and troubleshoot problems quickly.
- Time Management: Strong time management skills with accountability.
- Ownership: Ability to take full ownership of tasks and projects.
Behavioral Attributes
- Team Player: Excellent interpersonal collaboration skills.
- Communication: Strong verbal and written communication.
- Attitude: Possess a Can-Do attitude to overcome challenges with high energy levels.
- Motivation: Self-motivated, directed, and passionate