Job Summary
Contruent is looking for a full stack Principal Software Engineer to join our software development team. You will be working in an Agile environment as a key contributor of a SaaS (Software as a Service) product.
What you’ll be doing:
- Playing a leadership role in the full life cycle from ideation through production support and maintenance of a complex SaaS application
- Learning the domain of project cost controls and applying principles of domain-driven design and modeling to building Contruent software applications
- Architecting, designing, and implementing microservices and associated patterns
- Conducting research spikes to drive key technical decisions
- Developing and implementing detailed strategies for modernizing legacy applications
- Mentoring junior engineers in the areas of architecture and design
- Full stack development – front end, back end, and database
- Working closely with the Product group to refine new features and functionality, build out roadmaps/task execution plans, and provide estimations
- Developing containers and deploying them to Kubernetes clusters
- Implementing best practices associated with CI/CD
- Working with DevOps to identify infrastructure needs and that software components are readily deployable and can be effectively monitored and managed once deployed to the cloud
- Creative, out-of-the-box solutioning of complex problems
- Own issue identification, root cause analysis, and resolution
- Develop scalable, high quality, easy to use software
- Work with a highly efficient team in a global organization
What you need:
- Proven skills in learning a complex domain and developing a deep understanding of existing Contruent software applications
- 7+ years of experience developing commercial SaaS applications
- 7+ years of experience developing cloud-native containerized applications
- 5+ years of experience with a major cloud provider (AWS preferred)
- Demonstrated experience as an architect and designer
- Experience with designing and implementing microservices
- Experience with object-oriented programming
- Experience with data structures
- Expertise with SQL and relational databases, including writing complex queries, schema architecture, query optimization, and performance improvements
- Experience with NOSQL databases
- Knowledge of modern software design patterns
- A firm understanding of the SOLID principles
- Able to explore and prototype new ideas and technologies that span multiple areas
- A firm understanding of Agile Scrum software development practices
- A strong mindset for quality and experience writing different kinds of tests – unit tests, integration tests, end to end tests
- Great problem-solving and debugging skills
- Familiarity working with UX designers in a user-centric design process
- Solid communication and collaboration skills
- Ability to work from specifications
- Ability to plan complex projects and provide/refine estimates recognizing uncertainties and risk factors
Technologies Used:
- C#
- .NET 8
- SQL Server, MongoDB
- js
- TypeScript
- AWS
- Docker, Kubernetes
- Kubernetes
Bonus If You Have:
- Experience with Auth0
- Experience in the construction industry, project controls, or cost management
- Certifications in technology, Agile methodologies, product management, or project management