Do you want to use your coding skills to improve the lives of millions of people? Are you brave enough to let millions of UX designers use your code? Are you obsessive about your own professional development and continuous learning-through-doing? Then read on!
The Interaction Design Foundation is the biggest online design school globally. Founded in 2002, we have over 90,000 graduates and counting. We're market leaders in online design education because the world's leading experts create our content and because we're specialized in design. What’s more, with over 1.5 million monthly visitors, we are at the forefront of providing premier design education to such organizations as IBM and SAP, as well as thousands of other companies. Our ever-growing community now needs a first-class back-end developer to help craft the ultimate user experience.
This is where your longing for meaningfulness in your work and your hard-science coding skills merge: Every time your code is executed, you help improve the life of a human being. And not only that, those members will likely go on to design better products and services to the benefit of all humankind.
Our codebase is our baby and it can never become too perfect. It is a vital part of our winning formula. You will, therefore, become an essential part of our long-term success, someone who is making a direct impact on not only the growth and reputation of our foundation but also the whole world of design education and beyond!
This is a paid full-time position which is location independent. You will have regular video-based contact with your colleagues and get to meet them physically on team trips.
What you will be doing
You will join our team as our Senior PHP Developer (Laravel) and your main responsibilities will be to:
Write clean and maintainable code with good test coverage.
Implement new features in collaboration with our design team.
Optimize existing code to perfection with special attention to performance and maintainability.
Do code review of your colleagues’ work.
Help improve our Design System at https://design-system.interaction-design.org
Help yourself, and the whole team, get better and better. For example, by improving our handbook at https://handbook.interaction-design.org. Or use our library of evergreen literature on back-end and front-end subjects to broaden your horizon.
You and our future-proof stack
We seek a balance between sticking with what works and fearlessly exploring the new.
We use the latest stable version of PHP 7 because it allows us to write better code using features like strict type declarations, typed class properties and arrow functions.
We leverage the elegance, simplicity and readability of the latest Laravel version.
We want to spend our precious time on things that matter the most; that's why we perfect our easy to run development environment with Homestead and custom scripts.
We write and run tests with PHPUnit and cypress.io.
We have a great set of tools to maintain the code quality and run on CI/CD (psalm (error level 4 with 94% type coverage), rector, phpcs, phpcpd etc.)
We’re constantly refactoring our front-end code with the goal of reaching front-end heaven:
Laravel Blade template engine.
PostCSS to maximize the power of modern CSS.
Webpack for perfect control over front-end assets.
Latest JS with support for ES2020+ features. To accomplish this we use the latest Babel releases.
BEM/ITCSS in combination with Tailwind CSS based utility classes.
A custom-made design system (https://design-system.interaction-design.org) to achieve consistency and ease of use.
Forget IE and clunky workarounds for compatibility with other dinosaur browsers: We spend our time only on modern Web APIs since we only support evergreen browsers.
We ❤ CI (Continuous Integration) and CD (Continuous Delivery) so we usually deploy a few releases per day: Zero downtime. Just a few buttons to push. No sweaty palms.
We care deeply about Developer Experience (DX) of our codebase and tools. DX and DevOps is our middle name: Git, GitHub, Docker, HTTP/2, Assets CDN, AWS, Enterprise SSDs on our high-spec servers, and much more.
You have expert knowledge of PHP.
You have expert knowledge of Laravel or Symfony.
You have 6+ years of experience working professionally with OOP.
Your work is based on a solid foundation in computer science fundamentals from data structures and algorithms to design patterns.
You are an engineer by mindset and always try to understand how things work under the hood.
You love to learn through doing. You’re ready to put in some hard work to expand your skills.
You speak and write acceptable English – not perfect English, just acceptable – since you will be working with people from the US, England, Canada, Denmark, Belarus and Brazil among others.
You are a team player and you don't bring your ego to work.
You are self-motivated and self-disciplined and thus work well in a flat hierarchy with lots of freedom.
You love to have creative freedom, make independent judgments and live up to the responsibility that comes with that freedom.
You love to create tangible results—every hour and every day.
You love to make a positive impact on the world and the lives of others.
You get bonus points…
…if you have contributed to open source.
…if you have worked professionally with at least one statically typed programming language like C, C++, Java, Kotlin, Rust, Scala, TypeScript, etc.
...if you have prior experience in the implementation of marketing-related tracking codes with Google Tag Manager or Customer Data Platforms (such as Segment) or you worked on the implementation of Product Analytics & BI tools such as Amplitude, Heap, HotJar, or Google Optimize.
…if you have a Master’s Degree in Computer Science.
…if you have experience with test-driven development (TDD).
How to Learn More and Apply
You can learn more about our Work Culture and Values here: https://www.interaction-design.org/careers
Please apply as soon as you can—we’re firm believers in the adage “the sooner, the better”, and we look forward to working with you!
Before you apply, please check if any restrictions apply in terms of time
To the best of our knowledge this position has no geo-restriction.