What is this role all about ?
At Graphext, we have been working for years to make something impossible possible: working with datasets of millions of rows in a browser to reimagine interfaces for exploring data and building predictive models.
We are looking for an experienced software engineer, not a specialist but a generalist. This person will be working mainly with all the engineering team but specially with the CTO and Co-Founder, Miguel, improving and developing many parts of our engines.
For example, we are building a new engine to speed up the computation of filters and derived data in the client. It is built in C++, then we compile it into WebAssembly and distribute it as a Typescript library so the front end can use it and be snappy even with large datasets. Here you will be in charge of extending the core adding more data transformations or data structures to support other kind of datasets like time series.
Also we are designing a new interface to train models with several datasets and later on let the users use them to do inference on new data. Our TypeScript codebase is mainly object oriented, using reactive programing (React) and interoperation with asynchronous code. If some of those words sound strange but you are motivated to learn them don't worry, we are happy to help you in the learning process.
There are other pending tasks such as building a type system for our small scripting language, the one in which the users describe the data processing scripts. Another example would be to extend our own WebGL visualization library. As you see this position will play a key role in the development of our main product, coding robust solutions to challenging and diverse problems. That is why we are looking for previous experience with C++ as well as having knowledge of algorithms and data structures.
Requirements
The ideal candidate will have previous experience as full stack developer or a backend developer that wants to learn how to do front end web development, someone who likes to work as a team and teach their colleagues, who enjoys some autonomy to investigate and propose improvements in the product. If you have worked in data processing, coding video games logic or optimizing C++ code, we want to work with you.
Must have
In order to land a bit the role, we are looking for:
- Solid understanding of data structures and algorithms.
- Previous working experience coding in C++.
- Previous working experience coding in JavaScript. Knowledge of TypeScript or React is valued but not required.
- Solid understanding of the full web technology stack (e.g. DOM, CSS, HTTP, cookies, headers, asset loading / caching).
- Disciplined approach to testing and quality assurance.
- Competence in English, we usually speak in Spanish but it is not uncommon to write or have conversations in English.
Nice to have
We value degrees in computer science or similar studies because we know the background they provide, but we also know that a degree does not guarantee anything, so we do not consider official degrees as a requirement.
About our stack
Since it is a data analysis software that we want to be very fast and interactive, so that analysts don't lose their flow due to network latency, a large amount of computation is performed directly on the client, on the front-end. So we had to set up a rather special architecture, hybrid, with calculations that are done only on the front-end, others only on the back-end, and some with the same code are executed on the back-end or front-end depending on the size of the dataset. In addition to this, we also serialize the state of the project with our own DSL, to make everything very reproducible and accessible for both advanced users and less technical ones.
If you're interested in seeing up close how powerful software is made in a browser (which seems to be the future of our industry), I don't think there are many places like Graphext to learn it firsthand.
Who you would work with
The front-end team is made up of Juan Morales, who in addition to programming, also designs the interface together with our designer Andrea. He does this because although Juan has a computer science background, he ended up doing a PhD in human-computer interaction applied precisely to designing data analysis interfaces. So he won't design anything that he knows is impossible to program, but he will try to push the limits of what can be done today in a browser.
The front-end team also includes Isa, Raúl and Luna who have created many of the key features of the product. Although the team's focus is on the front-end, they also have experience and help with back-end tasks.
On the other hand, Miguel (the CTO and co-founder) and Ian also contribute to the development of the application's front-end but more from the side of WebAssembly and WebGL.
In addition to all these programmers, the team has more data scientists and business people that you can see here (Team)
Compensation
- Salary between 45K and 70K euros gross per year. It will depend on your experience and autonomy.
- Permanent contract.
- You can choose your own equipment. Although most people work with Macbooks, you can also choose another computer with similar features. We also provide a monitor, keyboard, and mouse at the office.
How the selection process works
- The process can start right now by filling out the form linked at the top of this page.
- We will contact those who meet the criteria for the profile we are looking for.
- If after that call we see that we are aligned, a few days or a week later, we will invite you to take a test with us. It usually consists of spending a couple of hours working with us (via video call) on a specific frontend problem with our team members. We are looking to see your skills, how you think and communicate, and of course, for you to get to know us better as well.
- If after the test we are convinced that you are the right person for the position, we will make you an offer.
- If you accept, we would like you to join us immediately (if you are not working at that time) or after 15-30 days if you are currently employed :)