Senior Software Engineer

  • Bankrate
  • Detroit, MI, United States
  • Dec 29, 2017
Full time Developer

Job Description is looking for a talented, result oriented, innovative software engineer to join our team, responsible for building services that enables searching of rate products across multiple channels, including web & mobile platforms.

In addition to building applications that can hold up to the scale & growth of our business, our team of engineers work collaboratively with the business leaders to come up with innovative solutions to grow the business. We believe in software craftsmanship and that there is real value in developing software so that it can be easily understood, maintained, and extended.  At we are all about team work, accountability, innovation, and a customer-first approach. We work hard, but do so in a collaborative, fun and flexible work environment.

As a member of the team, you will have the opportunity to work on mission critical projects with direct impact on the evolution of our business. You will be able to apply your programming skills towards building low latency and high throughput transactional services. You will work on systems that serve millions of searches a day, generate millions of events, and are monitored 24x7 using early warning and analytics systems such as Kafka and Elastic Search.  Our search systems perform highly concurrent, real-time searches across our vast advertiser network and collects and parses data from a diverse set of interfaces to get the best rates for our customers. We constantly explore new technologies and engineer better solutions for ever demanding business needs.

With offices in Palm Beach Gardens, FL, New York, NY, and Detroit, MI, Bankrate has a fresh, fun, and creative environment you won’t find anywhere else. If you have a strong will to learn and educate and are motivated by opportunity to help grow our team, then we'd love to hear from you!

Responsibilities include:

  • Designing, modifying, developing, writing, testing and implementing software.
  • Taking ownership and responsibility of the work at hand and shepherding code through to production.
  • Implementing web services and REST APIs to power and partners’ web sites.
  • Building a scalable, robust and reliable infrastructure to support our website and services.
  • Collaborating with product owners, scrum masters, and other developers to deliver a quality product.

Required Skills:

  • 5+ years of software development experience
  • Experience with object-oriented PHP and Laravel and/or Symfony frameworks
  • Extensive knowledge of object-oriented JavaScript and VueJS, AngularJS, or ReactJS frameworks.
  • Knowledge and experience with other third party PHP and JavaScript libraries, frameworks, and technologies is a plus
  • Experience with PostgreSQL, MySQL, and/or SQL Server databases
  • Experience working in a Test Driven Development (TDD) and Continuous Integration/Continuous Delivery (CI/CD) environments
  • Extensive experience developing and supporting production quality API
    • REST, SOAP and API services,  HTTP Status Codes, Content Negotiation, API versioning, Caching
    • Security , Stability, Reliability, Scalability, Fault Tolerance, Performance, Monitoring, Documentation
  • Experience with various architectures: Domain Driven Design, CQRS, Event Sourcing, Hexagonal Architecture, Event Driven Architecture, Microservices, Cloud Native
  • Experience with testing: Unit Testing, Test Driven Development, Integration Testing, Load Testing, Test Automation, Consumer Driven Contract Testing


Desired Skills:

  • Experience with Node.JS, Python, or Go is a plus
  • Experience with AWS EC2, S3, and/or Lambdas is a plus
  • Experience with PHPUnit, PHPSpec, Jasmine, Karma, Mocha, Chai and other unit testing libraries and frameworks
  • Experience with various tools: GIT, Postman, Wireshark, Swagger, Docker, Jenkins
  • Education: BS/MS degree in Computer Science, Engineering or a related subject is a plus.


Key Attributes:

  • Analysis & Problem Solving:  Ability to understand our codebase, system interactions and business requirements to effectively make changes to our applications and investigate issues.
  • Communication:  Ability to use various communication forums to effectively communicate. Whether via face-to-face discussion, phone, email, chat, white-boarding, or other collaboration platforms, must be an effective communicator who can inform, explain, enable, teach, persuade, coordinate, etc.
  • Team Collaboration:  Ability to effectively collaborate and share ownership of team’s codebase and applications. Must demonstrate willing to fully engage in team efforts, speak up for what you think are the best solutions, and be able to converse respectfully and compromise when necessary.
  • Develops innovation strategies, processes and best practices.
  • Leads and participates in medium- to large-scale, complex, cross-functional projects.
  • Leads the discovery phase of medium to large projects to come up with high level design.
  • Promotes and supports company policies, procedures, mission, values, and standards of ethics and integrity.
  • Troubleshoots business and production issues.
  • Owns the technical testing and performance plans for their projects.
  • Utilizes industry research to improve Bankrate technology environment.
  • Driven by “What can I do to help here?” attitude
  • Has the desire to simplify instead of making things more complex.
  • Looks at the big-picture:  understands the impact his/her piece of software implementation has on the whole product.
  • Has good communication skills: communicates effectively with the team and clients to understand business requirements.
  • Can function as part of a team: able to fit in the team’s culture and exchanges thoughts, ideas, knowledge and experience with other team members to boost efficiency and quality of the solution.
  • Mentors others instead of coding in a black box.
  • Is able to start a project with limited requirements and refine them by asking questions or talking with business people.
  • Has a good understanding and knowledge of the domain and environment they work in.
  • Reviews/understands requirements and questions requirements in a productive manner.
  • Constantly improving themselves through training, research, and learning.
  • Is willing and ready to take one or more roles in a team and is able to switch his/her roles when required.
  • Is adaptive: able to adapt as a result of changes in requirements for a continuous improvement of a software.
  • Works overtime to meet committed deadlines.
  • Is accountable for the work their team produces.