Senior Software Engineer Reston, Virginia This position is fully remote with the option to work in one of our office locations in Reston, Virginia, Washington, D.C., and New York City.
About the Position As a senior software engineer, you will be working as a mentor of our Data Integration Engineering team to jointly design and implement product features. This is an ideal job if you are an engineer who wants to be part of an intensely skilled team, values total ownership of your work, and can't imagine a day without coding.
Key Responsibilities Code full-stack features from the database up through (and including) the UI
Design and develop Spring-based microservices, as part of an agile/scrum team
Support and maintain existing features, debugging throughout the stack, and applying fixes in a timely manner
Apply best practices in continuous integration and delivery
Design and develop API's using RESTful principles
Design and develop UI components as part of a single page application
Write unit, integration, and full end-to-end tests for new features
Participate in the release of new features to production
Work with product managers and other engineers to implement and document complex and evolving requirements
Act as on-call high-availability support for triage/bug fixing periodically throughout the year
Required Qualifications & Experience Requirements Masters' degree or equivalent relevant work experience
7+ years of Java development experience
3+ years of development experience using the following: Enterprise JavaBeans, Spring Boot, Spring Web Services, Java Spring Framework
Experience developing RESTful web services Java restful web services and JSON
Experience in relational DB table design, implementation, and tuning (pl/SQL, ETL, etc)
Experience in database integration, especially ORM tools (Hibernate, JPA, etc)
Experience in build and deployment tools such as Maven or Gradle
Practical knowledge of OOP/JS design patterns
Understanding of "12-Factor App" concepts
Distributed System Development for large-scale applications
Experience with continuous integration and testing
Experience with agile methodologies and short release cycles
Demonstrate strong communication skills, strong attention to detail, good work ethic, and ability to work on multiple projects simultaneously
Strong knowledge of Continuous Integration & Continuous Deployment tools and processes
Desired Qualifications & Experience Requirements Experience with cloud technologies (AWS)
Experience working on a SAAS Product in a commercial environment
Experience with large scale SQL databases is a strong plus
Worked with Postgres DB
Big data experience with Spark Scala and AWS EMR/EC2
Experience in digital media, online advertising, or reporting/analytical applications