AUTHOR
Julien Delange, Founder and CEO
Julien is the CEO of Codiga. Before starting Codiga, Julien was a software engineer at Twitter and Amazon Web Services.
Julien has a PhD in computer science from Universite Pierre et Marie Curie in Paris, France.
Culture
Codiga is a remote-first company. We operate remotely and work based on a weekly sprint. The company has all the tools to work as a remote company. We use Slack and Zoom for communication, JIRA for task management, GitHub/GitLab/Bitbucket for source code collaboration and Google Workspace for document editing.
Principles on Hiring
- We do not hesitate to make a bet on high potential individuals
- We promote and raise the compensation of high-performing individuals quickly
- We separate quickly from collaborators not performing at the level they were hired
Compensation
Rationale
Codiga compensates based on the location of the collaborator. Like other remote-first companies (such as GitLab), we have a salary grid for each level and each country (see the GitLab explanation here).
Perks
The company does not offer any perk (e.g. meal, gym membership or books) that comes on top of the salary. Instead of paying lower salaries and adding perks, we prefer to pay higher salaries from the start. We believe this is not the company's role to decide what individuals should get or want, we believe that we should compensate generously and let people decide what is best for them.
Software Engineer Ranges
All ranges are per thousand dollars USD
Country | Mid Level | Senior |
---|---|---|
USA | 110/130 | 130/150 |
France | 80/100 | 100/120 |
Canada | 80/100 | 100/120 |
Colombia | 50/70 | 70/90 |
Nigeria | 20/30 | 30/40 |
India | 40/55 | 55/70 |
Mexico | 40/60 | 60/80 |
Argentina | 40/60 | 60/80 |
Expectations
Mid-Level
- Experience: at least 2 years
- Autonomy: we expect you to be able to do most of your job independently and still need to have support, help or mentorship from senior engineers from time to time
- Computer Science basics: algorithms, evaluation of software complexity, knowledge on data structures, networking and basics on security
- Collaboration: familiarity with Git and how to do a Pull Request/Merge Request
- Good knowledge in libraries and systems being used
- Frontend: React, CSS, NextJS, GraphQL
- Backend: GraphQL, Python, knowledge of how a virtual machine works
- System Design: knows how to design a single system (for example, a React application for frontend or a REST/GraphQL API for backend)
- Code quality: maintain good code quality, pay attention to details, write tests
- Communication: fluent in English
Senior
- Experience: at least 4 years
- Autonomy: we expect you to be fully autonomous and be able to communicate and synchronize with other members of the team if there is any blocker
- Computer Science basics: understand how the JVM or Python virtual machine works, understand how a computer works end to end (from typing on your keyboard to getting a web page to show in your browser)
- Good knowledge in libraries and systems being used
- Frontend: React, CSS, NextJS, GraphQL
- Backend: GraphQL, Java/Scala, Python
- Cloud services: Know how to use cloud-service product (AWS, GCP), understand how Docker containers work
- System Design: design and scale a system from scratch. Understand where the bottlenecks can be and how to solve them
- Database: you know how to define a database with SQL, understand how to query them, you know what is an ORM
- Code quality: maintain good code quality, pay attention to details, write tests, being able to refactor code to fix code quality issues (untangle dependencies, remove bad architecture patterns, etc)
- Communication: fluent in English, ability to talk to customers in English, make the bridge between the technical team and the sales/customers success teams
Evaluation and Communication
We try our best to have regular communication
- Bi-weekly: 1:1 between direct report
- Monthly: 1:1 with skip-manager
- Every 6 months: formal performance evaluation
Mid-Level
- Deliverable quality: your deliverables are done on time, are tested and does not require rework after they are merged
- Communication: you communicate with the team when there are any product issue on a code change (e.g. backward compatibility issue, breaking functionality, etc)
- Raise the bar: you follow good coding practices, you propose new practices that improve the quality of the product
Senior
- Deliverable quality: you deliver flawless code that fits the requirements.
- Communication: you mentor junior developers, explain the product and the underlying architecture and engage with other developers to solve software development problems (e.g. how to develop, deploy or maintain software)
- Product development: you participate in the product development and engage with customers to troubleshoot and solve problems
- Raise the bar: you regularly propose changes in the product or codebase. You put processes in place to improve the product and our operations.
- Operations: you are in solving production-facing problems. When our system has a defect, you do not hesitate to proactively troubleshoot and fix a new problem.