Senior Software Engineer SSE1
Description
At Upland Software, you’ll find smart, creative teams who love working together to deliver value for our customers, and a global culture of growth and possibility. Our operating model has always supported remote work—and as we keep growing and evolving our workplace, that won’t change. We’re passionate. We’re proactive. We take pride in our work, and we love a good challenge. Sound like you?
Opportunity Summary:
As a Senior Software Engineer, you will be working both across and within our agile development teams and be involved throughout the full development lifecycle with particular responsibility to ensure the development & maintenance of our software platforms. You'll be involved in all aspects of the team including the creation and elaboration of business requirements, functional/design specifications, development and maintenance of our software and driving innovation into our product suite. You will have a particular focus on backend technologies and their continued development.
Key Responsibilities:
- Develop and maintain scalable and robust enterprise (JEE) applications
- Work as part of cross functional, passionate agile (SCRUM/Kanban) project teams ensuring high quality delivery is at the heart of the development process from requirements definition through to delivery
- Participate in scrum ceremonies and participate on development projects and implement solutions in partnership with development managers and teams.
- Resolution of performance or security issues.
- Provide relevant, honest and accurate feedback to management.
- Research, recommend and implement tools as needed with the goal of continually increasing our development productivity
- Demonstrable working knowledge of design patterns
- Proactively bringing issues and problems to the attention of the team; generating, proposing and implementing innovative solutions to solve them
- Be an advocate of automation, Test Driven Development, Continuous Integration and Continuous Delivery
- Maintain exceptionally high standards of design and code quality at all times, including but not limited to adherence to architectural, security and scalability standards and principles
- Updates job knowledge by researching new internet/intranet technologies and software products; participating in educational opportunities; reading professional publications; maintaining personal networks; participating in professional organizations.
- To be enthusiastic, fearless and boundary-less with the ability to coach and mentor
Knowledge, Skills and Experience:
- Recent experience of developing Enterprise .NET/C# applications within an Agile environment
- Test driven / behavior driven (TDD/BDD) .NET/C# software development
- Working knowledge of Continuous Integration and Continuous Delivery methods and toolsets
- Working with enterprise application stacks
- Working with enterprise SQL databases (preferably SnowSQL or PostgreSQL)
- OLAP and OLTP database
- Experience with Snowflake / Redis
- Passion for Data Engineering
- Evangelist of modern .NET/C# programming and development practices
- Familiarity with web-based SaaS and Web API 2
- Comfortable with absorbing new technologies quickly; highly self-directed and able to manage and prioritize concurrent and competing/conflicting challenges
- Innovator ability to work collaboratively and a demonstrated team player with a results-oriented track record
- Follow recommended software development methodology standards, championing evolution as appropriate
- Pro-active customer service attitude
- A technical mindset with good understanding of algorithms, data structures, design patterns.
- Solid knowledge of Agile development practices.
- A willingness and an ability to share best practice and improve processes.
- Experienced in issues of Scaling and an understanding of optimizing web-based applications.
- Experience working across multiple platforms and technologies
- Solid scripting skills
- Strong demonstrable experience of Object-Oriented Analysis & Design and accompanying design patterns with a commitment to Software Craftsmanship and Clean Code.
- Ability to work with Distributed Version Control Systems
- Performance tuning
- Experience of web interfaces and working with databases.
- Scaling and optimizing web-based applications
- Designing high availability systems
- Knowledge of Agile development practices and experience working in a cross-functional Scrum team
- Ability to work collaboratively and a demonstrated team player
- A willingness and an ability to share best practice and improve processes
Advantageous:
- Typescript knowledge/experience is a plus
- Experience of working with SaaS based software architectures within a multi-tenanted cloud hosted deployment model
- Experience with systems and IT operations operating within an ISO27001 environment
Educational Qualifications:
Minimum academic level required: A good standard of education with a very strong understanding of software development, specializing in one or more disciplines.
Ideal academic level preferred: Degree level or equivalent experience
Upland Software (Nasdaq: UPLD) is a leader in cloud-based tools for digital transformation. To learn more, visit www.uplandsoftware.com.
Upland Software is an Equal Employment Opportunity Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identify, national origin, disability, veteran status or other legally protected status.