RealPage, Inc. is transforming the property management industry through innovative software solutions. As a Senior Software Engineer, you will contribute to the development and optimization of scalable applications, focusing on Java and enterprise technologies to support mission-critical systems in real estate technology.
Responsibilities:
- Full-Stack Development: Design, develop, and maintain high-performance Java applications and microservices using Spring Boot, Spring MVC, and supporting technologies
- Technical Leadership: Serve as a senior contributor and technical mentor for engineering teams. Lead design reviews, architectural discussions, and code reviews
- Code Quality & Best Practices: Write clean, testable, maintainable code that aligns with modern design patterns, performance standards, and security best practices
- Systems Integration: Develop RESTful APIs and services to integrate across RealPage’s ecosystem and external platforms, ensuring seamless interoperability between microservices and legacy applications
- Database Engineering: Design, query, and optimize complex databases including DB2, PostgreSQL, and other RDBMS systems. Work with large datasets, indexes, and distributed transactions
- Cloud Readiness: Build applications ready for deployment in cloud environments such as Azure or AWS, focusing on performance, security, and cost-efficiency
- DevOps & Containers: Support application containerization and deployment using Docker and Kubernetes. Collaborate with DevOps to ensure CI/CD pipelines support scalability and quality
- Cross-Functional Collaboration: Partner closely with product owners, QA engineers, UX designers, and release train engineers to ensure cohesive product delivery and alignment with business goals
- Troubleshooting & Debugging: Proactively investigate and resolve production issues, participate in incident response when necessary, and implement long-term solutions
- Continuous Improvement: Contribute to evolving engineering standards and improving team workflows, documentation, and reusable components
Requirements:
- Bachelor's Degree in Computer Science, Engineering, or a related technical field—or equivalent industry experience
- 12+ years of professional software development experience with strong, deep expertise in Java for building enterprise web applications
- Strong hands-on experience with Spring Boot, Spring MVC, and building RESTful APIs
- Experience implementing application-level caching, including distributed caching frameworks like Redis
- Deep understanding of Spring Security, including authentication, authorization, token-based security (JWT), and OAuth2
- Practical knowledge of Aspect-Oriented Programming (AOP) for handling cross-cutting concerns in enterprise applications
- Deep understanding of object-oriented programming, SOLID principles, design patterns, and modern API development (REST / GraphQL)
- Proficiency with Java EE / Jakarta EE technologies including Servlets, JPA/Hibernate, and dependency injection
- Strong experience with multithreading and concurrency in Java (ExecutorService, CompletableFuture, thread-safe data structures)
- Experience with DB2, PostgreSQL, or other relational databases, including query optimization and schema design
- Experience working with distributed systems, enterprise applications, and high-volume transactional systems
- Familiarity with Docker and container-based development workflows
- Strong understanding of software development lifecycle (SDLC), Agile practices, CI/CD, and test automation
- Knowledge of web technologies (JavaScript, HTML, CSS), and optionally experience integrating with modern frameworks like React or Angular
- Excellent communication skills and ability to collaborate with cross-functional teams in a remote-first environment
- Experience with Spring Cloud for building cloud-native microservices (Config Server, Eureka, Zuul/Gateway, Resilience4j)
- Hands-on experience with Apache Kafka, RabbitMQ, or other message brokers for event-driven architectures and pub/sub patterns
- Proficiency with JUnit 5, Mockito, TestContainers, and integration testing strategies; experience with TDD
- Knowledge of cloud-native development principles and experience with Azure, AWS, or GCP (App Services, Lambda, ECS, AKS)
- Experience with Kubernetes orchestration for Java microservices in production environments
- Familiarity with Java performance tuning—JVM internals, garbage collection strategies, heap analysis, profiling tools (JVisualVM, JFR, YourKit)
- Experience with reactive programming in Java (Project Reactor, Spring WebFlux)
- Knowledge of build tools such as Maven and Gradle, and CI/CD platforms like Jenkins, Azure DevOps, or GitHub Actions
- Experience with API gateway patterns and service mesh technologies (Istio, Envoy)
- Familiarity with observability and monitoring tools such as Prometheus, Grafana, ELK Stack, Splunk, or Application Insights
- Experience with database migration tools like Flyway or Liquibase
- Familiarity with prompt engineering and utilizing AI coding assistants to accelerate development
- Experience in highly regulated or enterprise software environments with an emphasis on quality and reliability