There’s no one path to becoming a software engineer. Nor is any path better than another. However, in the case of becoming a developer at Tiny, you need to be prepared for a path that’s wrapped in this quote:
“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.”
Antoine de Saint-Exupery
That chestnut epitomizes the dev work at Tiny.
Those three things are vital to writing Tiny code, and they’re: Thought. Time. Simplicity.
To achieve all three, you may need to retrain your brain to strip away the unnecessary – so you’re delivering smooth, flexible code to our users. It’s worth every hard-fought step to achieve, and the team here makes success even sweeter.
Not so tiny, touchstones
Two things stand out about dev work here: the tech stack and thought that goes into our codebase. We primarily use functional programming principles (along with TypeScript) which results in fast, tight code. Every piece of code we produce, must be:
As you’d know, that's no small feat. However, our engineers are given the tools and time to place code quality above all else, which means we don’t cut corners. Having time means we solve problems the right way and our product team understands and encourages perfect results (even if launch dates occasionally slip).
How we achieve it
The road to simplifying, starts early.
After numerous zoom interviews, a coding test that exposes you to the Tiny methods and – in a few lucky cases – news of success, it all starts. You’re onboarded with 2-3 weeks of engineering training that’s akin to a full-time course on functional programming (focusing on solving problems with recursion), which will likely change your thinking on code.
“The fewer moving parts, the better. ...No truer words were ever spoken in the context of engineering.”
At Tiny, you’ll ‘think first’, about the code you create, and be astonished by what that process produces. Generally, in other front-end development roles, discussing the performance of DOM traversal would be seen as premature optimization, but at Tiny, discussions like that frequently come up early on, with real-world ramifications.
In every situation where our code is deployed, it's architected so that it gives our users and developers the power to make greater changes, with less work.
Being open source keeps us accountable to that commitment and we actively engage with the developer community to keep us on track. Why? Because we’re delivering the building blocks of great content creation experiences. Every. Single. Time.
Bigger rocks we hurdle
Given that goal, Tiny’s mission (as you’d expect) is simple.
"To free software development teams from the headaches of building complicated, expensive, and time-consuming, in-house content creation solutions."
Powered by the TinyMCE editor, companies can focus on their core business while enjoying and augmenting our feature-rich platform. Product teams can delight their users. And creators can work smarter, faster and more productively.
User feedback drives our product roadmap, with numerous features and enhancements based on suggestions (via the ‘Tiny Insights’ program), and we use a transparent product development process that heavily involves our clients, users and creators.
Experience that’s deep, not tiny
Developers here, quickly realize they’re part of something bigger than themselves. Something deep. Across more than two decades, Tiny’s accumulated deeply rooted domain knowledge in the dev work needed to power its users, with the best-in-class rich text editor on the market.
“We shape our buildings, thereafter, they shape us.”
Our talented engineering team now populates a remote-based globe. Despite their disparate locations, they continue to learn from one another and it’s widely said that working at Tiny transforms your skillset.
Given our remote set-up, you’d think we’d miss teamwork, but there’s no shortage of that at Tiny! We spend a lot of time thinking and talking to one another – about the challenges we’re facing and how to achieve speed and flexibility, across every browser. (I’ve been told by one senior dev that he learned more in six months about the differences between popular web browsers, than in the rest of his career.)
What surprises most devs though, is the fact that even though they’re at senior levels and have years of experience, they’re still exploring new things, almost every day. Comments like “leaving my comfort zone has now become my comfort zone” are common, as are “there’s mutual trust and a great culture, even though we’re remote”, but typically, it all comes down to the code they’re working on… “with so many plugins to work on, I have different challenges, all the time.”
We care about tiny things
The TinyMCE editor is loaded millions of times a day. Every single day.
So, imagine how significant the impact would be, if instead of thinking, taking our time to solve issues and achieving simplicity, we loaded a few kilobytes to the bundle size. Or added a few milliseconds to a core operation.
It just can’t happen.
And it won’t – because stopping that, is our mission… in action.