At American Family Insurance, we're driven by our customers and employees. That's why we provide more than just a job – we provide opportunity. Whether you're already part of our team in search of a new challenge or new to our company and ready for what's next, you're in the right place. Every dream is a journey that starts with a single step. Start your journey right here. Join our team. Bring your dreams.
R11343 AWS Senior Developer (Application Development Engineering Specialist) (Open)Summary:
The Application Development Engineering Specialist collaborates with others in the division to provide and maintain applications to meet business needs. Responsible for software design and development for complex and/or large-scale business solutions, providing technical guidance and leadership for specific applications. The specialist may perform various roles in the development of applications in any phase of the systems development life cycle. Takes a lead role on projects providing guidance and technical leadership to project resources for a specific application(s). Provides technical guidance and leadership to less experienced technologists. Analyzes system problems and recommends alternatives for resolution. Recommends opportunities to improve system effectiveness and efficiency. Works in a mainframe, client/server, business intelligence, and/or web environment for internally built applications or vendor packaged applications.Responsibilities:
Specialized Knowledge and Skills Requirements
- Demonstrated experience providing customer-driven solutions, support or service
- Demonstrated experience analyzing and understanding complex software/systems.
- Demonstrated experience communicating technical information.
- Demonstrated experience developing different solution-delivery and design approaches and solutions to customers.
- Demonstrated experience developing complex software/systems using one or more programming language.
- Demonstrated experience analyzing and estimating project size and work efforts for software solutions.
- Demonstrated experience providing technical guidance and leadership to less experienced staff.
- Extensive knowledge and understanding of software development and design standards and methodologies.
- Extensive knowledge and understanding of infrastructure technologies, operating systems, and the interconnectivity between infrastructure platforms and software tools.
- Extensive knowledge and understanding of systems development life cycle (SDLC).
- Solid knowledge and understanding of application architecture and design alternatives.
- Solid Knowledge and understanding of integration and migration strategies and technologies.
Additional Job Information:
Seeking a Senior/Lead Software Development Engineer to work closely with various IT Teams, with a focus on customer facing products. As a member of the development team, this person will primarily be leading the design and development of APIs for our enterprise applications. The ideal candidate has a strong programming experience, leadership experience and has worked with modern technology stack including micro-services architecture, cloud computing, and in a fast-paced agile environment.
Duties and Responsibilities:
- Design and develop micro-services and REST APIs for web and mobile applications.
- Work with technology and application architects on system and software design, optimizations & enhancements
- Focus on design patterns, APIs and enforce code quality and standards
- Collaborate with front-end and back-end development teams on user-facing features and services.
- Focus on innovating new and better ways to create solutions that add value to our enterprise.
- Work with other leads on developing and improving software development methodologies and processes.
- Stay up to date on relevant technologies, and understand trends and opportunities that ensure we are using the best techniques, tools and practices.
- Lead & guide the fellow developers on the team through technical skill development and knowledge sharing.
Preferred Basic Qualifications (demonstrated competence):
- Full stack developer with knowledge of software engineering and best practices for the full software development cycle including coding standards, testing, code reviews, source code control and build management processes, and operations
- Expert knowledge developing REST APIs using micro services architecture
- Experience with distributed computing and enterprise wide systems
- Proficiency in developing, deploying and debugging cloud based applications using AWS(Lambda,S3, CloudWatch, ECS, and RDS)
- Proficiency using Swagger (API design and documentation)
- Working knowledge of Relational (Oracle, MySQL, Aurora) and NoSQL database systems (Mongo, Redis)
- Working Knowledge of User Authentication and Authorization
- Worked in a collaborative environment and coached peer and junior engineers
- Working knowledge of Agile / Scrum methodology
- Strong understanding of Git, bitbucket
- Take initiative and be accountable
- Handle multiple demands and priorities effectively
- Learns fast in a fast-paced environment and be willing to accept new responsibilities
- Knowledge of Java and related tools such as Spring Boot, JMX, Junit
- Knowledge of Python
- Understanding of build tools such as Jenkins
- Knowledge of Docker
- Offer to selected candidate will be made contingent on the results of applicable background checks.
- Depending on qualifications, candidates can be considered at all levels.
- Offer to selected candidate is contingent on signing a non-disclosure agreement for proprietary information, trade secrets, and inventions.
- Relocation assistance is available.
Application Development (40%)
- Provides expertise during the initial phases of the project including estimating resources, skill requirements, time requirements, identifying tools and technologies, participating in proof of concepts, etc.
- Analyzes high level system specifications, business requirements and/or use cases. Converts information into the appropriate level specifications and system design plan for the development team. Designs and develops complex software solutions in adherence with I/S standards, methodology and internal controls. Identifies and provides solution alternatives for the defined functional and system requirements when needed.
- Understands and identifies system dependencies. Understands functionality, integration points and impacts of proposed changes to supporting applications. Follows through with options and recommendations.
- Consults with others to validate complex design decisions. Provides advanced coding expertise to mitigate high risk features or technical challenges.
- Provides appropriate documentation for design decisions, estimating assumptions, code modules, and performance metrics as required by organization standards.
- Defines, conducts, mentors others, and/or participates in testing (i.e. unit, system integration). Prepares, leads and/or participates in development walkthroughs.
- Collaborates with others regarding effectiveness of systems flow, data usage and manual or automated processes to verify requirements.
- Ensures software development meets standards for programming, design, performance, and security. Identifies and recommends areas for improvement in planning, design, development, and testing.
Technical Leadership (35%)
- Drives initiatives to adopt new processes and standards.
- Uses comprehensive application knowledge and or technical knowledge to provide guidance and technical leadership to project resources or maintenance resources. Maintains an awareness of other projects and their possible effect on ongoing projects.
- Assists and holds others accountable for their commitments. Takes accountability for team deliverables and overall team success; manages own tasks.
- Recognizes and escalates quality, deadline, or deliverable issues within own work environment to team leads and/or management.
- Ensures effective integration and communication between multiple development teams with interdependencies.
- Leads and/or participates in systems analysis, general systems design, specification development for vendor contracts, and detailed systems design as needed based on expertise.
- Provides technical leadership in the ongoing adoption and development of software engineering procedures, standards and methods.
- Makes recommendations and presentations to senior management regarding technical issues, technical investments, and strategic directions.
Maintenance & Support (25%)
- Provides input for contingency and disaster recovery plans.
- Repairs, modifies, and develops additional functionality.
- Follows and supports change management practices and internal controls standards. Communicates changes and impact to those affected. Assists less experienced technologists in all areas of maintenance and communication.
- Provides vendor system support.
- Shares knowledge and information with others to resolve problems and build team knowledge.
- Identifies enhancements to meet changing data requirements, usability, interfaces and future maintainability of software.
- Assists with creation and maintenance of service desk diagnostics and job aids for area of responsibility. Updates and/or reviews with those affected.
- Performs and/or partners with I/S colleagues to conduct performance tuning to ensure applications meet service level agreements.