We have an immediate opening for a Senior Software Engineer to work on our Cloud Components Team to help deliver solutions for our Carbonite Server Backup product. The role requires strong technical and communication skills, a passion for building high-quality software, and the ability to work well both within a team and with other teams. Our development lab is located near the QEW at Winston Churchill Blvd, accessible by both Mississauga Transit and Oakville Transit. We are a short bus ride from Clarkson GO station.
Specific Objectives & Responsibilities:
Your First Six Months:
- Gain familiarity and comfort with the Carbonite culture and work environment
- Gain a broad understanding of our Carbonite Server Backup product
- Gain familiarity with our codebase and development processes
- With guidance, begin to contribute with bug fixes and basic feature work, and progress to working more independently on features of medium complexity
Six to Twelve Months and Beyond:
- Work with reasonable independence on larger, more complex features
- Contribute to design discussions
- Begin to contribute to improvements in team, practice, and process
- Continue to deepen familiarity with and understanding of our codebase and product
- Fully participate in peer code reviews
- Mentor and guide junior developers and interns
- Question everything!
Key Challenges to Overcome:
You will be working in a fast-paced, agile environment where things change quickly. You will be working in a very complex technical environment where you’ll have to dig deep and go beyond the surface-level solution to find the right solution. Are you up for it? Can you keep the big picture in mind even when you’re “down in the weeds”? Are you willing to stand up and be heard when you believe something is heading in the wrong direction? Are you prepared to bring fresh ideas and energy to help make our company and our products even better?
What will make you successful at Carbonite:
Skills & Experience:
- Object-oriented design and programming in C# and the .Net Framework
- Delivering high-quality commercial software over multiple releases
- Design patterns, including the Inversion of Control principle and Dependency Injection
- Writing multi-threaded, multi-process software.
- Continuous Integration / Continuous Delivery
- Test Automation, Unit Testing
- Designing and implementing RESTful interfaces
- Python, PowerShell, and/or Bash
- Working with Agile methodologies and techniques (e.g. SCRUM, Kanban, etc).
- A Bachelor’s degree in Computer Science (or equivalent)