Position: Desktop .Net Developer (WPF)
Company: C-Change Labs
Experience required: 2y
English level: intermediate

C-Change Labs is an unusual company. We fight carbon emissions to make our world a better and safer place - and we do it with technology and science. Our company was founded by an engineer, is run by engineers, and works with the most advanced construction software.

**Who We’re Looking For**

We are looking for an experienced Desktop .NET Developer with a passion for building innovative software solutions. You will mostly be working on creating integrations between our sustainability cloud tools and architectural CAD systems like Autodesk Revit.

You should have a strong background in software engineering and be comfortable working in a fast-paced, collaborative environment. You should be proficient in Desktop .NET and WPF; experience in building plugins for desktop software is helpful but not required.

You should be a quick learner and be able to quickly pick up new CAD-specific APIs. You should have experience working with HTTP APIs and be able to deliver high-quality, scalable solutions that meet our users' needs.

Working at C-Change is not only an opportunity to wield great tools tackling complex problems. It is a rare opportunity to make a direct, visible impact affecting our future - by fighting climate change with science and data.

**Responsibilities**

* Develop and maintain desktop applications and CAD software plugins
* Integrate our cloud application with CAD software via HTTP APIs
* Write high-quality, clean, and maintainable code
* Collaborate with other team members and stakeholders to define software requirements, design software solutions, build intuitive interfaces and solve complex problems
* Work with verification team to troubleshoot and debug software issues
* Work independently to complete tasks, report status, identify blockers, and proactively resolve issues

**Required Skills**

Intermediate English

Computer Science

- Algorithms and data structures: You understand common data structures and algorithms, you are able to evaluate them and apply appropriately to the given situation, and evaluate algorithm complexity.
- OOP and Patterns: You must understand what is SOLID, Domain Driven Design, and IoC. You must know how to use common patterns and design REST services.

Desktop .Net Developemnt
- Solid understanding of C# language (syntax, familiarity with .net standard labraries).
- Database management: You know how to organize, store and query your data.
- User Interface Design: You have experience in designing intuitive, visually appealing UIs which look consistent with Windows style.
- WPF: You have a solid understanding of XAML. You are comfortable with using Data Binding. You understand and use in practice MVVM pattern. You can create custom controls from scratch and extend existing standard controls.
- Debugging and Troubleshooting: You use a debugger on a daily basis. You can identify, isolate, and fix bugs and errors in your code.

General IT skills and competencies
- Client-server architecture. At least basic understanding of networking (DNS, HTTP, TCP)
- Using modern debug tools.
Refactoring.
- Error processing: Application exceptions are handled competently and uniformly. You must know the difference between error flow and exception flow.
- Documenting your code.
- Writing Extensible code.
- Breaking tasks into smaller units, providiung planning and estimates.
- Version control and repositories when working within a team.
- You can read and understand code written by other people.

**What We Do**

We build tools for construction ecosystem to have visibility into carbon emissions and sustainability side of things. For example, with our tool an architects bureau can keep in mind what is the environmental footprint of their new project, or a construction conglomerate can see into details of how this very steel bar they use has been produced. Has it been produced burning coal in ineffective small-scale factories, or with cleaner, more modern process? How does this choice affect the cost? What can be the benefit?

And this is the question we want them to ask. With this kind of question the sustainability and environmental factors of the construction are getting into the agenda and become weighing factors.

C-Change Labs provides data for this where and when it is needed.

**Benefits**

Professional Growth

We maintain an open culture. Achievements are appreciated; achievements over your role and helping your co-workers succeed are key to advancement. Mistakes are expected, and are to be openly discussed and learned from. Honesty is an absolute requirement.

You will be surrounded by a group of passionate engineers who are happy to participate in technical discussions.

Access to advice: You need it — you ask for it. People around will help. We expect you to help your co-workers in the same way.

There will be opportunities to lead projects, mentor junior devs, and expand your skill-set if desired.

Working Space

We are an all-remote team so there is no traditional office space. However we will be happy to help you organize an effective working space:
- We will provide a decent workstation (laptop, monitor, accessories, software) and any necessary equipment (e.g. desk, chair) for you to work safely and comfortably.
- If you prefer to work from an office, we will cover reasonable co-working expenses.

Health & Wellness

We offer competitive benefits for all staff. They are structured differently in each country; in Canada we offer extended health and dental benefits through Manulife.

Time

We encourage a healthy work/life balance: we do not believe routine overtime is a good way to do business.

All roles get at least three weeks paid time off, as well as paid sick leave.

Money

Competitive compensation matching the market. Compensation reviews are tied to your growth and improvement

Short Decision Making Chain

Every team member is a direct contact with CEO and CTO so there is no long decision making process and it is easy to escalate issue if any.

**How to Apply**

Apply here online.
- Attach your CV, Portfolio, and/or LinkedIn page.
- Optionally you may add a cover letter.
- If you have Github account with some examples of your work please include it as well.
- If you do not have a github portfolio representative of your work, or we want to know more about your coding style, we may give you a small test task (1-2 of hours).
- Within a week, we will contact you with an invitation to the interview or a decline if this is not a match.
- A personal interview, up to 1 hour to meet in person:
- Questions about your background;
- Questions to check the general knowledge of modern development practices and principles;
- An algorithmic challenge;
- Design and architecture questions: “What would you do if...”;
- You will have a chance to ask your own questions;
- We will let you know the decision within 3 weeks of the interview and either will ask you in for an offer or explain why it did not work out.
- New employees start with 3 months trial period to see if there is a match between us. Full compensation is provided during the trial period, but we can end the employment on short notice if we feel it is not a good fit.