Job responsibilities
- Executes software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
- Creates secure and high-quality production code and maintains algorithms that run synchronously with appropriate systems
- Produces architecture and design artifacts for complex applications while being accountable for ensuring design constraints are met by software code development
- Gathers, analyzes, synthesizes, and develops visualizations and reporting from large, diverse data sets in service of continuous improvement of software applications and systems
- Proactively identifies hidden problems and patterns in data and uses these insights to drive improvements to coding hygiene and system architecture
- Contributes to software engineering communities of practice and events that explore new and emerging technologies
- Adds to team culture of diversity, equity, inclusion, and respect
Required qualifications, capabilities, and skills
- Bachelor's or Master's degree in Computer Science/Software Engineering.
- Hands-on practical experience in system design, application development, testing, and operational stability
- Proficient in coding in one or more languages
- Experience in developing, debugging, and maintaining code in a large corporate environment with one or more modern programming languages and database querying languages
- Overall knowledge of the Software Development Life Cycle
- Solid understanding of agile methodologies such as CI/CD, Application Resiliency, and Security
- Demonstrated knowledge of software applications and technical processes within a technical discipline (e.g., cloud, artificial intelligence, machine learning, mobile, etc.)
- Expertise in application, data, and infrastructure architecture disciplines.
- Fluency in cloud-native architecture, design and implementation across all systems.
- Excellent interpersonal skills and ability to communicate with clarity, brevity and tailor message to a technical or business audience.
- Ability to make sound architecture decisions based on enterprise architecture principles, structural (integration patterns, frameworks, configurability, etc.) and operational characteristics (security, reliability, availability, scalability, cost, etc.)
- Expertise in modernization using micro-front end patterns, micro-services & APIs, Event Driven Architecture (Kafka), Containerization/Kubernetes, and NoSQL databases (MongoDB etc.)
- Ensure that any capability gaps are clearly laid out and fed into the platform backlog for future roadmap
- Experience in architecting for private & public cloud (AWS, GCP, Azure) with AWS experience being strongly preferred
- Experience in domain driven design, lean architecture and agile delivery
- Experience in big data environment, working with structured, semi-structured and unstructured data
- Strong software engineering and object-oriented programming skills with expertise in languages such as Scala and Java; and open-source frameworks/libraries, such as Apache Spark, Apache Airflow
- Experience with containers, Kubernetes, Docker, Amazon EKS, Amazon ECS
- Experience in building apps for real-time streaming using Apache Spark Streaming, Apache Kafka and/or Amazon Kinesis
- Experience in building on emerging cloud serverless managed services, to minimize/eliminate physical/virtual server footprint
- Experience with development tools such as Jenkins, SVN/Crucible/Jira, Git/Stash
Preferred qualifications, capabilities, and skills
- Experience in designing and developing data pipelines, using Databricks/Snowflake, to ingest, enrich, and validate data from multiple sources
- Experience in re-engineering and migrating on-premises data solutions to and for the cloud
- Experience in implementing security solutions for data storage and processing in the public cloud