Position: Senior Python Developer at C-Change Labs
Company: C-Change Labs
Experience required: 3y
English level: intermediate

**Who We’re Looking For**

We are looking for solid software engineers. Our company was founded by an engineer, is run by engineers, and works with the most advanced construction software.

You are interested in learning from and cooperating with talented colleagues. You love sharing value by producing beautiful and clean APIs. You enjoy engineering as a whole — complex scalable systems, performance optimization and direct product impact.

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.

**Required Skills**

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.

Python \ Backend
- Good understanding of the language and its potential (generators, lambda, decorators, etc.). Practical Python development experience is required.
- Understanding of language peculiarities and environment runtime (types, multiple threads, etc.).
- You can write typed code and understand why it helps in the development. You can use types as an effective tool to describe a domain area.
- Frameworks: Beneficial, but not required that you have an understanding of how Django Framework, Celery, and Django REST Framework work.

General IT skills and competencies
- Client-server architecture. At least basic understanding of networks (dns, http, tcp).
- Debug: Effective troubleshooting and 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.
- You must know how to write extensible code.
- You can break tasks into smaller units, provide planning and estimates.
- You know how to use a version control system and understand how to interact with a repository when working with your team.
- You can read and understand code written by other people.

Intermediate English

**Who We Are**

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.

We help the construction ecosystem accelerate its shift to sustainability with our EC3 tool, described as “the Tesla of sustainability” at COP26, which we develop for the non-profit BuildingTransparency.org. Our policy of free access, open APIs, and solid science has made BuildingTransparency and C-Change Labs the partners of choice for global firms with sustainability goals in construction.

**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.