Principal, Full Stack Software Engineer
CotalityAbout the role
At Cotality, we are driven by a single mission—to make the property industry faster, smarter, and more people-centric. Cotality is the trusted source for property intelligence, with unmatched precision, depth, breadth, and insights across the entire ecosystem. Our talented team of 5,000 employees globally uses our network, scale, connectivity and technology to drive the largest asset class in the world. Join us as we work toward our vision of fueling a thriving global property ecosystem and a more resilient society.
Cotality is committed to cultivating a diverse and inclusive work culture that inspires innovation and bold thinking; it's a place where you can collaborate, feel valued, develop skills and directly impact the real estate economy. We know our people are our greatest asset. At Cotality, you can be yourself, lift people up and make an impact. By putting clients first and continuously innovating, we're working together to set the pace for unlocking new possibilities that better serve the property industry.
Job Description:
- Design, code, test and debug complex software while developing new functionality, and enhancing existing functionality, in order to satisfy customer requirements, both internal and external. Design work encompasses a broader project/system scope. Work is assigned via broad guidelines. Work includes developing detailed specifications from which applications will be written, designed, coded, tested and debugged.
- Consult with product owners/business partners to define requirements and software design. Evaluate feasibility and make recommendations, considering things such as customer requirements, time limitations, system limitations. Mentor less experienced team members in learning this process.
- Define scope and develop testing methods, collaborating with QA team and other developers. Work with QA team to improve all levels of testing efforts, developing and enhancing testing methods and processes. May also perform testing.
- Support, maintain and document software functionality. Makes recommendations on and influences engineering processes and methods.
- Provide operational support on complex/escalated issues to diagnose and resolve incidents in production systems. Incidents tend to be fewer but more complex, requiring analysis of issues, determination of additional resources to resolve the issue, and an in-depth system perspective.
- Explore and research new and alternate technologies and platforms. Evaluate, recommend, and apply these alternate/new technologies, disseminating information throughout the team/department. This includes documenting large and complex assignments for knowledge transfer and developing expertise in multiple areas. Mentor other team members on area(s) of expertise. Provide technical guidance on a wide range of systems/projects.
Job Qualifications:
Core Skills
- Bachelor's degree in computer science, software development, or related field preferred
- Java JDK Strong understanding of Java fundamentals and object-oriented programming (OOP).
- JavaScript: Proficiency in JavaScript, including ES6+ features.
- Understanding of asynchronous programming, promises, and callbacks.
- Spring Boot 2.x-3.x and Spring Framework 5.x-6.x, including Spring Boot for creating stand-alone applications.
- Knowledge of dependency injection, aspect-oriented programming, and Spring MVC.
- Familiarity with Spring Data, Spring Security, and Spring Cloud.
- Understanding of asynchronous programming and event-driven architecture.
- Angular: knowledge of Angular framework for building dynamic web applications.
- Experience with Angular CLI, components, services, and dependency injection.
- Understanding of reactive programming with RxJS.
- TypeScript: Proficiency in TypeScript, including type annotations, interfaces, and generics.
- Experience in integrating TypeScript with Angular and Node.js.
Additional Skills
- Version Control: Proficiency with Git for version control.
- Testing: Experience with unit testing (JUnit for Java, Jasmine/Karma for Angular) and integration testing.
- Build Tools: Familiarity with build tools like Maven/Gradle for Java and npm/yarn for JavaScript.
- Database Knowledge: Understanding of relational databases (e.g., MySQL, PostgreSQL) and ORM frameworks (e.g., Hibernate).
- DevOps: Basic knowledge of CI/CD pipelines and containerization (Docker).
Soft Skills
- Problem-Solving: Strong analytical and problem-solving abilities.
- Communication: Good communication skills for effective collaboration.
- Adaptability: Ability to learn new technologies and adapt to changing requirements.
Apply for this role
Generate a tailored application kit with a matched cover letter, interview prep, and CV highlights — in under 60 seconds.
Apply Now →Generate Application KitFree account required — sign up in 30s