Home »

Software Engineer

About Kaleidos & Penpot

We defend and believe in open-source and proof of this is that our main project, Penpot, reflects that. We’re convinced that technology isn’t neutral. That’s why we like to shake things up and go against the status quo.

Penpot is the free open-source design tool that allows true collaboration between designers and developers. Hand-off drama disappears, thanks to features like CSS Grid, Flex Layout and the Code Inspect tab.

Kaleidos is the company, boosting Penpot. If you’re interested in getting a deeper sense of our culture and values, have a look at our website to gain insight into who we are and what we believe in.

⚖ How we value experience

For us, a senior is someone who, regardless of years on the job, has dealt with tough development issues, finding solutions and learning along the way. From our perspective, it’s possible that a senior might be someone with relatively “few” years of experience but who has faced complex development challenges. On the other hand, a mid-level might be someone who, despite many years in the workforce, has had a more specialized experience and hasn’t faced those types of challenges.

In Navacerrada, attending the KOSDEM 2023

Step into our world: the challenges you’ll face with us

We want to share the challenges we encounter that keep us motivated and in constant learning mode. The following list doesn’t mean we expect you to handle all of them right away—your ability to tackle these will depend on your experience. But our goal is for you to grow with us so you can hit the ground running in the future.

  • Vector drawing development: implementation of tools for the visualization of different designs and figures in 2D.
  • Editing system design and implementation: designing and implementing an editing system for the drawing engine, with a strong focus on redo/undo capabilities and concurrent editing.
  • Complex data structures validation: using and validating complex data structures for structural, semantic, and referential integrity. Given the high interactivity of our application, these structures are often eventually consistent.
  • Low-level language module development: developing application modules in low-level languages like C++ or Rust to transition parts of the application to WebAssembly (WASM).
  • Highly interactive interface development: creating a highly interactive interface that requires coordinating multiple sources of events (e.g., an SVG path editor).
  • Custom rich text editor development: developing an ad-hoc rich text editor with proper handling of RTL (Right-To-Left) text and IME (Input Method Editor), and integrating it with SVG texts.
  • Performance optimization: coming up with creative solutions to performance issues when pushing the limits of browser capabilities. For instance, using bitmap thumbnails to offload parts of the SVG DOM in a highly concurrent and eventually consistent environment, while correctly handling possible race conditions.
  • New functionality: adding new features using Clojure/ClojureScript and Reactive Streams (RX).

Profile and skills

🪐 What do we need?

We believe education can be acquired in many ways, not just through a degree. That’s why we don’t require specific formal education, but we do expect you to have experience in the following areas:

  • Background as a frontend developer (with an emphasis on deep knowledge JS and Browser APIs).
  • Experience working with HTML and CSS.
  • Enthusiasm for crafting robust user interfaces and programming best practices.
  • Knowledge of functional language programming paradigm.
  • Experience in or willingness to learn the Clojure/Clojurescript functional programming language.
  • Languages skills: proficient in spoken and written English (B2 level) and proficient in spoken and written Spanish (B1 level)

✨ Bonus points: elevate your profile

For us, your experience is defined by your ability to tackle and enjoy solving problems like the ones we face. If you’ve encountered similar challenges, you can probably check off several points from the following list.

  • Experience with product development.
  • Enthusiasm for exploring low-level programming languages (C++, Zig).
  • Experience working with JS frameworks (React or similar).
  • Experience in developing production code with thousands of users.
  • Knowledge of web front-end testing (Jest, Cypress, etc.).
  • Prior experience or a keen interest in open-source projects.
  • Experience or interest in agile methodologies in a professional setting.
  • Track record of collaborative engagement within cross-functional teams (including designers, marketing professionals, backend developers, etc.).
  • Ability to ask the right questions for effective product development.
  • Understanding how JavaScript performs (knowing about V8 and SpiderMonkey is a big plus).
  • A solid grasp of RxJS.

🫂 Who will you be working with?

At Kaleidos we have several teams: the Community team, the QA team, the Infrastructure team, and the Product team. We’re all rowing in the same direction to drive Penpot forward, but this position will be to join the daily day of the Product team. Would you like to take a peek at who we are?

🙌 What do we offer?

  • 💰 Salary:

    • [Mid-level] €40-50k (gross annual salary).
    • [Senior] €50-60k (gross annual salary).
  • 📜 Permanent contract. We’re looking for someone to stay with us for the long run!

  • Flexible hours. Even better! We all work from 10am-2pm CET. You can work the rest of your hours whenever you want. Whether you’re an early bird or a night owl, you’ll be in good company!

  • 🌍 100% remote position. We maintain an office in Madrid (Spain), however, attendance at this location is discretionary. You are welcome to work remotely from any location with a reliable internet connection, provided that we share a time zone CET +/- 2 or you may choose to come to the office as often as you want.

  • 🏝 23 days of paid leave, plus December 24th and 31st, and the possibility to ask for 10 extra non-paid leave days. We’re super flexible with your dates, you just need to make sure it’s fine with your team.

  • 📅 Choose the holiday calendar of where you live or from the headquarters (Madrid).

  • 📚 Continuous learning with internal and external training, conferences, and events (as a general rule we usually cover 100% of the cost). You’re encouraged to experiment with new best practices!

  • 🇺🇸 🇪🇸 Language classes on the house (eng & span): classes paid for by the company as part of your work schedule.

  • 🤩 2 PIWEEKs per year! A PIWEEK is a freeform week-long hackathon where you pause your day-to-day work and focus, either alone or in a team, on a cool project! Penpot was one of the projects born in past PIWEEKs!

  • 🖥️ Elevate your workspace. We provide a budget every 3 years to renew the equipment and after 3 years you can keep the “old” computer equipment!

  • 🔝 An environment where your opinion matters. We have a culture of a consensus-driven decision-making process. You’ll quickly find yourself being involved in all Kaleidos’ things.

  • 🐧An open-source company. Our products are open-source and we support the open source environment as much as we can. We’re fully committed.

  • 🤝 Self-organized teams: we believe that providing autonomy and independence is key for personal and collective accountability. Teams at Kaleidos operate internally with very little hierarchy and enjoy the freedom to better organize themselves.

  • ❤️ Alan’s health insurance through flexible compensation (coverage only in Spain).

  • 🏹 Monthly activities for those who want to, of course, do something fun as a group: ice skating, bowling, archery, kayaking…

➡️ What is the process like?

Send an email to hiring@kaleidos.net with the subject line “Software engineer”, tell us where you saw the job offer, and don’t forget to attach your CV. You will receive a response from us as soon as possible.

  1. If your CV meets our requirements, we will invite you to have a 15-mins chat to understand your profile and your desires better.

At that point, if we’re aligned, we would love you to write a cover letter about your experience and why you’re interested in joining Kaleidos.

  1. 1.5-hour culture interview, to get a sense of how you see our culture, clear up any questions, get to know you more deeply, and for you to also get to know us.

  2. 1.5 hour technical interview. We’ll take this time together to review your projects. The aim is to explore how you approach things, your reasoning, and how you tackle the challenges.

  3. 1-hour interview with Pablo, our CEO. Consider this step an interview to dive deeper into Kaleidos and ask whatever you’d like!

  4. Optional: meet with two people from Kaleidos for a private conversation to ask any questions you may have about the company and the position.



Kaleidos is committed to equal opportunities, regardless of race, color, ancestry, religion, sex, origin, sexual orientation, age, citizenship, marital status, family or parental situation, gender identity, disability, or any other protected status. The company values your energy, skills, and desire to be part of the team above all else.

All personal data provided by candidates during the application process will be treated with the utmost confidentiality and will only be used for personnel assessment and selection. We are committed to complying with all current legal provisions related to the protection of personal data. By submitting their application, the candidate expressly agrees to the processing of their personal data as set forth above. If candidates wish to rectify or delete their data, they may contact us via email at privacy@kaleidos.net