Frappe Technologies

OPEN POSITIONS

Software Engineer

Frappe Engineering

At Frappe, we build world class open source products that are used by thousands of people. Frappe Engineers consider themselves as highly skilled, with ambition to build and maintain great software.

If you have never built anything before, you are probably not a good candidate. If you have built any web software (could be a fun side project) and enjoyed building and maintaining it, we would love to have you in our team (we keep hiring opportunistically).

We use a lot of Python and JS in our code and we have our own developer stack based on Frappe Framework. Our projects range from business applications like ERPNext to general purpose software, developer tools, UI libraries and cloud management platforms like Frappe Cloud.

There are three basic types of engineering roles:

  1. Product engineer: Someone who loves building and maintaining outstanding products / modules and can stay with one project for a longer period of time.

  2. Maintainer: Someone who loves solving new challenges everyday, prizes correctness in code and helping people.

  3. Infra engineer: Someone who loves architecting and maintaining complex, reliable and scalable platforms.

These are not hard definitions. Any engineer in Frappe is usually a mixture of all these roles.

How to apply

Since all our code is open source, we would love for you to explore our code base first. All our projects are on GitHub at https://github.com/frappe

Note: If you are already a Frappe developer, jump to step 6 ;-)

  1. Explore the projects, browse through the code base, issues, pull requests to get a feel of the work being done.

  2. Pick one project and try and to set it up locally. Most of our products have docker based installs, so it should be quite easy to do it. Play around with the product and get a feel of it as a user.

  3. Frappe has a CLI tool for developers called bench. Try and setup multiple sites and install multiple Frappe apps on your local setup.There are some hard steps here like setting up MariaDB and the other infra components.


  4. Once you are familiar with a product (could be any one), try and make changes to the product. Understand how the build works (if you are doing front-end stuff, we have both vanilla JS and Vue front-ends) or try and change some business logic.


  5. If you don't find something to fix, look at the issue tracker and find out "good first issues" to solve. Try and fix this issue. Feel free to ask help on the issue tracker to any Frappe dev who is maintaining the module.


  6. Raise a Pull Request and ping the developer directly or drop in a mail at jobs@frappe.io or share your PR on fill this form (don't forget to mention your PR). Bonus points if you can reach the module owner directly and make them the pitch.


Going through these steps will not only give us confidence that you are capable to work in a highly skilled team like Frappe, but also give you a flavour of the kind of work you will end up doing. So we think it is a win-win process.


Tip: Make sure your code is well written and you are solving a non-trivial problem.

Our view on using AI

In general, we don't care about how you write code, but we want to ensure that you have fully understood the changes you are trying to push. Most of our engineers use AI assist when they want but generally are skilled enough not to use it.


You should be able to write code without an AI co-pilot. Once you can do that, we don't care if you do use or don't.