Full Job Description
Job Summary The Senior Software Engineer develops software products and drives improvements to overall product quality across the software development life cycle, providing technical leadership within the team. This role involves designing and maintaining applications that ingest multiple data sources and surface insights through correlation and analysis. The engineer works independently under general guidance, applying strong software engineering and Big Data expertise to solve complex business problems and contribute to team-level goals.
Key Responsibilities
• Design, develop, and maintain applications that ingest multiple data sources and surface insights through correlation and analysis while ensuring code quality, performance, and adherence to best practices.
• Provide technical leadership and mentorship to junior engineers and guide the team in the effective and responsible use of AI-assisted development tools.
• Participate in architecture discussions, contribute to technical strategy, and define technical solutions or operational processes that improve efficiency and deliver measurable impact.
• Identify and resolve technical risks and cross-team dependencies early to support successful project execution and timely delivery of high-quality solutions.
• Support production systems and troubleshoot complex technical issues while simplifying code and infrastructure to reduce maintenance and migration costs.
• Apply computer science fundamentals, including algorithm design, problem solving, complexity analysis, and data structures, to address complex business problems.
• Apply strong experience with Big Data technologies to develop scalable and efficient solutions.
• Use AI-assisted development tools effectively while reviewing generated output for correctness, security, quality, and appropriate human oversight.
• Build productive relationships with senior internal and external stakeholders to remove barriers, align priorities, and support effective collaboration.
Required Qualifications
• Strong proficiency in Java, Python, and/or Node.js with strong object-oriented development experience.
• Strong experience designing and developing RESTful APIs and microservices architectures.
• Hands-on experience with Big Data processing frameworks, including Apache Spark, EMR, Presto, Trino, and Athena.
• Experience designing and developing ETL/ELT pipelines for large-scale data ingestion, transformation, and loading, including batch and streaming processing.
• Strong understanding of data lake and data warehouse patterns, including partitioning, schema management, and file formats such as Parquet, ORC, and Avro.
• Experience with SQL performance tuning for analytical workloads.
• Experience with workflow orchestration and scheduling tools such as AWS Glue, Step Functions, and Airflow.
• Experience implementing data quality, validation, and pipeline monitoring processes.
• Experience with relational databases, including PostgreSQL, MySQL, and Aurora.
• Experience with NoSQL databases, including DynamoDB, MongoDB, and Cassandra.
• Strong knowledge of AWS services, including EC2, S3, Lambda, RDS, ECS, and API Gateway.
• Experience with AWS CloudWatch, CloudTrail, IAM, and VPC networking.
• Experience with Infrastructure as Code tools such as Terraform and CloudFormation.
• Experience developing and maintaining CI/CD pipelines.
• Experience with test automation and unit testing.
• Strong understanding of software security best practices.
• Strong problem-solving, analytical, technical communication, and collaboration skills.
Preferred Qualifications
• Experience with QuickSight for dashboards and data visualization.
• Experience developing frontend applications using React or Angular.
• Experience with GitLab CI/CD.
• Experience using AI-assisted development tools such as Amazon Q or similar code assistants.
• Ability to validate AI-generated code for correctness, quality, and security and apply sound judgment regarding appropriate human review.