Job Description:
At Bank of America, we are guided by a common purpose to help make financial lives better through the power of every connection. Responsible Growth is how we run our company and how we deliver for our clients, teammates, communities and shareholders every day.
One of the keys to driving Responsible Growth is being a great place to work for our teammates around the world. We’re devoted to being a diverse and inclusive workplace for everyone. We hire individuals with a broad range of backgrounds and experiences and invest heavily in our teammates and their families by offering competitive benefits to support their physical, emotional, and financial well-being.
Bank of America believes both in the importance of working together and offering flexibility to our employees. We use a multi-faceted approach for flexibility, depending on the various roles in our organization.
Working at Bank of America will give you a great career with opportunities to learn, grow and make an impact, along with the power to make a difference. Join us!
Job Description:
This job is responsible for developing and delivering complex requirements to accomplish business goals. Key responsibilities of the job include ensuring that software is developed to meet functional, non-functional and compliance requirements, and solutions are well designed with maintainability/ease of integration and testing built-in from the outset. Job expectations include a strong knowledge of development and testing practices common to the industry and design and architectural patterns.
Position Summary
A Network Automation Developer is responsible for developing, deploying and testing microservices, application and user interfaces, ansible templates and resource adapters (i.e. plugins) in our BofA Network Automation Engine platform. The developer will be writing python and ansible modules that deploy network fabrics via a controller. The developer will also write and execute tests to validate the automation against known standards.
Key Responsibilities
- Software Development:
- Develop and maintain Python-based applications and scripts.
- Write clean, efficient, and well-documented code.
- Debug and troubleshoot software issues.
- Develop microservices, APIs, service templates that define the services that we provide to our customers.
- Systems Administration:
- Manage and maintain Linux servers and systems.
- Perform routine system monitoring, performance tuning, and troubleshooting.
- Ensure system security and compliance in line with BOA best practices.
- Effectively use Jira and Confluence to manage and document work.
- Automation and Scripting:
- Automate repetitive tasks and workflows using Python and shell scripts within virtual environment.
- Develop and maintain CI/CD pipelines for deployment automation.
- Deploy code to our development, QA, Staging and Production servers using our continuous integration and deployment pipeline platform
- Test new services are functioning as expected using our testing framework, and add new test cases to the test suite to continuously improve our quality assurance bar.
- Collaboration:
- Work closely with cross-functional teams to understand requirements and deliver solutions.
- Participate in code reviews and provide constructive feedback.
- Collaborate with DevOps engineers to streamline operation and process.
- Participate where required in on team on call rota to support application users.
- Documentation:
- Create and maintain technical documentation for systems and processes.
- Document code and systems configurations.
- Codes solutions and unit test to deliver a requirement/story per the defined acceptance criteria and compliance requirements
- Designs, develops, and modifies architecture components, application interfaces, and solution enablers while ensuring principal architecture integrity is maintained
- Mentors other software engineers and coach team on Continuous Integration and Continuous Development (CI-CD) practices and automating tool stack
- Executes story refinement, definition of requirements, and estimating work necessary to realize a story through the delivery lifecycle
- Performs spike/proof of concept as necessary to mitigate risk or implement new ideas
- Automates manual release activities
- Designs, develops, and maintains automated test suites (integration, regression, performance)
Required Qualifications
- Education:
- Bachelor’s degree in Computer Science, Information Technology, required
- Experience:
- Proven experience as a Python developer (3+ years).
- Hands-on experience with Linux system administration (3+ years).
- Experience with automation tools and frameworks.
- Agile (Lean or Scaled Agile Framework) (3+ years)
- Technical Skills:
- Strong proficiency in Python programming and Linux OS. (Ubuntu, CentOS, etc.).
- Familiarity with shell scripting (Bash).
- Experience with version control systems (e.g., Git).
- Understanding of network protocols and services (DNS, DHCP, HTTP, SSH, etc.).
Desired Qualifications
- Excellent problem-solving skills.
- Strong communication and collaboration abilities.
- Ability to work independently and as part of a team.
- Attention to detail and commitment to quality.
- Knowledge of database systems (SQL, Nautobot).
- Arista ACE Level 5+ or Cisco DevNet S/P/E
- Familiarity with infrastructure as code (IaC) tools such as Ansible
Skills:
- Application Development
- Automation
- Influence
- Solution Design
- Technical Strategy Development
- Architecture
- Business Acumen
- DevOps Practices
- Result Orientation
- Solution Delivery Process
- Analytical Thinking
- Collaboration
- Data Management
- Risk Management
- Test Engineering
Shift:
1st shift (United States of America)
Hours Per Week:
40
Learn more about this role