Big Data / AWS Software Engineer
Role details
Job location
Tech stack
Job description
Responsibilities: · Design, develop, test, implement, and support technical solutions within an Agile development environment, utilizing distributed microservices architecture, big-data technologies (HIVE, Presto, Spark, Hadoop), and full-stack systems · Partner with cross-functional teams to understand application requirements and testing scenarios, delivering scalable technical solutions that meet business objectives · Build and maintain high-performance API platforms on AWS infrastructure, enabling interactive-speed access to big data while adhering to AWS Well-Architected Framework principles · Leverage AI tools and technologies to enhance development efficiency, code quality, and solution innovation throughout the software development lifecycle · Drive technical innovation by staying current with emerging technology trends, including AI/ML advancements, evaluating new tools and frameworks, and actively contributing to internal and external technology communities · Demonstrate a
Requirements
growth mindset, take ownership of deliverables, maintain customer-centric focus, and exercise sound technical judgment in decision-making Required Qualifications: · Bachelor's degree in computer science, Information Technology, Engineering, or related technical field · 8+ years of professional software engineering experience with demonstrated leadership capabilities · 3+ years of hands-on development experience in Java, JavaScript/TypeScript, or SQL · 2+ years developing REST/web services and writing complex SQL queries for relational databases · 3+ years working with big data technologies such as Hadoop, Spark, or Presto · Proven experience with AWS services including EMR (Hive/Presto), ECS, Lambda, and S3 · Proficiency with DevOps practices and CI/CD pipelines using tools like Jenkins and CloudFormation · Working knowledge of scripting languages including Unix Shell or Python · Experience using LLM-based coding tools with a disciplined approach to validating output - you don't merge what you can't explain