Lead Software Engineer

State Farm State Farm · Insurance · Bloomington, IL · Technology and UX

Lead Software Engineer at State Farm responsible for designing, developing, and implementing scalable software applications and cloud-based solutions, managing data integration and analytics, optimizing application performance, and ensuring data security and compliance. The role involves applying engineering tools and practices, leading strategic work, influencing product development, and mentoring team members. Requires experience with full-stack development, various programming languages (Python, PySpark), database functionality (SQL, Non-SQL), compute environments (Linux, Hadoop, Mainframe, Public Cloud, containers), AWS services, DevOps practices, and data analytics tools.

What you'd actually do

  1. apply in-depth knowledge of engineering tools, processes, applications, programming languages and environments to lead strategic work and utilize application architecture to increase efficiency and effectiveness of complex issues
  2. apply leading engineering practices within core discipline to design full-stack applications using industry-adopted languages and frameworks
  3. provide a high level of support for problem and issue resolution and provides technical consultation and direction to business and product team members
  4. maintain deep understanding in software engineering topics, including classes, functions, security, containers, version control, CI/CD, and unit tests
  5. maintain in-depth knowledge breadth of knowledge in programming (e.g. Python, PySpark), and database functionality (e.g. SQL, Non-SQL)

Skills

Required

  • Bachelor’s degree, or foreign equivalent, in Computer Science, or a closely related field of study
  • 6 years of experience in analyzing, designing, developing and maintaining software applications
  • 6 years of experience in end-to-end involvement in the software development lifecycle
  • 6 years of experience in innovating and optimizing application performance
  • 6 years of experience writing efficient, maintainable, and scalable code
  • 6 years of experience working with programming Languages (e.g., Python, PySpark)
  • 6 years of experience debugging, testing, and optimizing code
  • 6 years of experience demonstrating a strong understanding of secure coding practices
  • 5 years of experience preparing strategies and test plans for developed applications
  • 5 years of experience setting up application code across various test environments and participating in testing process
  • 5 years of experience working with IBM Mainframes, including COBOL programming, JCL, and handling mainframe-based data management systems
  • 5 years of experience integrating mainframe systems with modern applications
  • 4 years of experience developing systems for data ingestion, transformation and integration
  • 4 years of experience handling data pipelines, ETL tools and AWS cloud-based data services
  • 4 years of experience designing and deploying cloud-based solutions using AWS
  • 4 years of experience leveraging AWS services
  • 4 years of experience adhering to AWS Well-Architected Framework principles
  • 4 years of experience working with relational database management systems
  • 4 years of experience troubleshooting database performance and implementing backup and recovery strategies
  • 4 years of experience working with NoSQL database services such as DynamoDB
  • 4 years of experience implementing solutions for ingesting data in both batch and real-time environments
  • 4 years of experience working with tools like AWS Kinesis, or equivalent
  • 4 years of experience working with DevOps practices, including CI/CD pipelines, version control systems, and infrastructure automation
  • 4 years of experience working with tools like Git, HashiCorp Terraform
  • 3 years of experience using data analytics and visualization tools
  • 3 years of experience working with AWS Quicksight

Nice to have

  • Python
  • PySpark
  • SQL
  • Non-SQL
  • Linux
  • Hadoop
  • Mainframe
  • Public Cloud
  • containers
  • AWS Kinesis
  • Git
  • HashiCorp Terraform
  • AWS Quicksight

What the JD emphasized

  • analyzing, designing, developing and maintaining software applications
  • end-to-end involvement in the software development lifecycle, such as analyzing user requirements, writing detailed technical specification, coding, testing, deploying and maintaining applications
  • innovating and optimizing application performance to meet business objectives
  • writing efficient, maintainable, and scalable code using relevant programming language
  • working with programming Languages (e.g., Python, PySpark)
  • debugging, testing, and optimizing code to ensure reliability and performance in production environment
  • demonstrating a strong understanding of secure coding practices, including identifying and mitigating vulnerabilities, adhering to security standards and ensuring the protection of sensitive data throughout the software development
  • preparing strategies and test plans for developed applications based on system requirement specifications
  • setting up application code across various test environments and actively participating in testing process, including test case execution, test reviews and analysis
  • working with IBM Mainframes, including COBOL programming, JCL, and handling mainframe-based data management systems
  • working with integrating mainframe systems with modern applications
  • developing systems for data ingestion, transformation and integration, including working with large datasets, ensuring seamless data flow between applications, and implementing scalable solutions for both real-time and batch data processing
  • handling data pipelines, ETL tools and AWS cloud-based data services
  • designing and deploying cloud-based solutions using AWS
  • leveraging AWS services to build secure, scalable and cost-effective architectures
  • adhering to AWS Well-Architected Framework principles
  • working with relational database management systems, including creating and managing database schemas, writing optimized SQL queries, and performing data modeling
  • troubleshooting database performance and implementing backup and recovery strategies
  • working with NoSQL database services such as DynamoDB, with the ability to design and implement schema-less data models and optimize performance for non-relational data storage solutions
  • implementing solutions for ingesting data in both batch and real-time environments
  • working with tools like AWS Kinesis, or equivalent, and ensuring reliable and efficient data capture from multiple sources for downstream processing
  • working with DevOps practices, including CI/CD pipelines, version control systems, and infrastructure automation
  • working with tools like Git, HashiCorp Terraform, and automating deployment workflows
  • using data analytics and visualization tools to interpret complex data and provide valuable insights
  • working with AWS Quicksight and creating dashboards and reports tailored to b