Hiring During COVID-19: Fannie Mae is hiring for all open positions as we deliver on our mission of providing stability, liquidity, and affordability to the housing market during this critical time. All interviews and onboarding are conducted virtually. We look forward to connecting with you. Learn more

Sr. Software Engineer (AWS_Java_Python)

Job Description


Fannie Mae provides reliable, large-scale access to affordable mortgage credit in communities across our nation. We are the leading source of funding for housing in America, which means more people can buy or rent a home. We are focused on sustaining the housing recovery, improving our company, and leading change to make housing better.

Join our diverse, high-performing team and make a difference as we work together to enable access to a good home.


The Enterprise Modeling and Analytics Development Team is looking for a senior software engineer to join their team as they engage on their tech journey to the cloud, transforming and creating analytics systems for Multifamily business.   You will use modern tools, techniques, and methods to develop, modify, or update applications used by business units or infrastructure units. Play lead technical role in development teams' efforts to determine unit needs and business processes that are automated by the application. Assess high level design issues relating to platform, enterprise software, and interactions with other systems.

  • Translate complex mathematical, business, and financial modeling logic into software code. Design and execute test cases for modeling and analytical software applications to ensure they meet business needs and model requirements. Design and execute modeling application systems via distributed computing both on premise and on external cloud.
  • Support the team in the writing of deployment scripts and place strong emphasis in automated deployment, infrastructure automation solutions, and continuous delivery process.
  • Work with product owners and other development team members to determine new features and user stories needed in large/complex development projects.
  • Create or Update documentation in support of development efforts. Documents may include detailed solution specifications, implementation guides, architecture diagrams or design documents.
  • Participate in code reviews with peers and managers to ensure that each increment adheres to original vision as described in the user story and all standard resource libraries and architecture patterns as appropriate.
  • Respond to trouble/support calls for applications in production in order to make quick repair to keep application in production.
  • Write test automation using Java Cucumber/Selenium.
  • Serve as a technical lead for an Agile team and actively participate in all Agile ceremonies. Participate in all team ceremonies including planning, grooming, product demonstration and team retrospectives
  • Mentor or provide technical guidance to less experienced staff; may use high end development tools to assist or facilitate development process.
  • Leverage Fannie Mae DevOps tool stack to build, inspect, deploy, test and promote new or updated features. May serve as technical lead, architect, project lead or principle developer in course of large or complex project.
  • Expert proficiency in unit testing as well as coding in Java and Python.
  • Expert proficiency in Object Oriented Design (OOD) and analysis.
  • Expert proficiency in application of analysis/design engineering functions.
  • Expert proficiency in application of non-functional software qualities such as resiliency, maintainability, etc. 
  • Expert proficiency in advanced behavior-driven testing techniques.
  • Provide expertise for teams in all matters related to deployment, building and release process.


Education Level Required
  • Bachelor Degree or Equivalent

Education Level Preferred
  • Master or Other Advanced Degree

Area of Study Preferred
  • Computer Science, Engineering, Applied Mathematics, Statistics, Economics or Finance, or a related discipline

Certifications Preferred
  • AWS certification(s) 


  • 8-10 years of related experience
  • Experience developing with Python or Java
  • Hands-on experience with AWS/cloud technologies
  • Knowledge of the Unix/Linux environment
  • Highly experienced with Agile practices and methodologies

  • Minimum of 8 years of software design and development experience with mission critical and large customer facing platforms.
  •  Hands-on experience and proficiency in programming in Java/J2EE and Python.
  • Hands on experience with building RESTful Web Services. Experience with Angular for UI development is a plus.
  • Expert knowledge of Linux/Unix environment and shell scripting.
  • Experience with developing test automation using Java Cucumber/Selenium.
  • Hands on experience in building and deploying applications in AWS. Experience in AWS technologies like EC2, S3, EB, Lambda, BATCH, Code Commit, Code Pipeline.
  • Hands on experience with Container Technologies like Docker.
  • Experience with CICD with knowledge of Git Hub, Maven and Jenkins.
  • Ability to lead complex architecture and design white-boarding sessions.
  • Experience in object modeling, designing data models and database schemas, and solving scalability issues.
  • Experience with working with financial or scientific modeling software applications.
  • R and SAS programming experience will be plus.
  • Financial industry and analytics experience highly desired.


As a condition of employment with Fannie Mae, any successful job applicant will be required to successfully complete a background investigation.

Fannie Mae is an Equal Opportunity Employer.

Req ID: 59378