Conscious Software Development: The Philosophy of STRV’s Frontend Team
React is the bread and butter of our frontend engineers. Throughout the years, we’ve implemented dozens of projects of various sizes and solved all kinds of problems within its fast-growing ecosystem. However, should a library be the main pillar of an engineering team’s philosophy, especially in a business like ours?
The answer hit us when we asked ourselves, “Where were we 10 years ago, where are we now, and where are we headed in the next decade?”
As our team evolved, a library was always a vital tool. But to define our philosophy, we had to dig deeper. There must have been certain principles that helped us deliver quality software in the times before React; principles that helped us become the React experts that we are today, and that should naturally help us stay equipped for whatever is next.
The STRV frontend team is not driven by a specific tech framework, but by a mixture of traits spanning both soft and hard skills. Only thanks to these pillars do we remain valuable to our clients—and proud of everything for which we stand.
1. OPEN MIND
If you’ve been in the frontend world for a while, you’re probably familiar with discussions about whether Angular or React will ultimately rule the field. Such debates usually instigate the same reactions: grouchy faces, vocal opinions and biases. These sorts of reactions are a familiar part of communication; when we feel a strong conviction, it’s human nature to stand our ground. But pausing to listen—and applying some self-reflection—can do wonders.
To nurture a community of team players who respect one another, it’s important to enter every conversation with an open mind. Understanding that numerous opinions can have value, and that there are times when no single opinion thoroughly dominates the others… this is key in keeping us open to new topics and ideas.
While working with clients to build an MVP, or when helping them bring new features into their established robust solutions, we must be familiar with the clients’ needs. Having a true understanding of their goals, budget and users is a game-changer. We always aim to deliver the best quality possible, but we have to stay aware of individual expectations and limitations.
Sometimes, spending days on certain advanced animations may be appealing, but it could harm a tight timeline. Other times, it may seem like the right time to propose a new refactoring plan that would take another 3 months, but it might be more prudent to stick with the current solution and collect more user feedback before working on major changes. Navigating the decision process is tough, but being able to weigh the pros and cons from all angles is how STRV engineers go the extra mile.
The nature of the frontend environment requires developers to exercise patience on a daily basis. Many defining aspects of a project and its evolution aren’t necessarily in our hands, and we need to be okay with that.
Our work keeps us on our toes. An approach that is “perfect” for one case, at one moment in time, is not going to be perfect for every future product. When bootstrapping a new project, things move quickly and there’s a bit more freedom. But if the project is bigger, the pace naturally slows down due to the complexity. Similarly, it’s important to calmly assess when to accelerate development versus when to pause and reflect. Taking the time to implement a feature may mean postponing another task, but this isn’t necessarily a mistake. By not giving in to stress, we can determine what’s really best for the project and go from there.
Continuously optimizing, taking things step by step, working with what the present demands without past biases… that’s the job of a frontend developer on our team.
4. CONSTANT EDUCATION
We’ve undoubtedly made mistakes since our team was first established, but we always learn our lesson. What pushes us to tirelessly hunt for knowledge is recognizing that there are still more lessons to learn, as well as staying in tune with the industry’s momentum.
The frontend world evolves everyday. It’s an open space where everyone’s contribution is welcomed. We all take bits of what we need, but we always give back. In many ways, it is the ideal environment for constant education. At the same time, it can feel overwhelming.
We are perpetually being hit with articles, Twitter accounts, worldwide conferences, new approaches coming from the open-source community… it takes dedication (and yes, patience) to sift through it all. But there’s no doubt that absorbing new information pays off. Every day, we see our lines of code becoming better, and we’re always able to tackle unprecedented technical challenges as soon as they come up.
This doesn’t mean we’re flawless. But we’ve never stopped looking for what’s next, and that’s our strongest asset. We’re convinced where there is constant education, there is constant growth.
5. SHARING IS CARING
People like to talk. We share with each other our failures and our successes. We explore ideas as we exchange learnings from the projects we’ve been working on. Sure, we haven’t discovered the golden rule, but we’re not afraid to ask.
Sometimes, we argue. There are many hot topics, like Custom vs. Wordpress, which state management library to use, etc. But we discuss, and we care.
Our team prioritizes discussions. Every day, we share thoughts on Slack, over coffee or at our weekly meetings. And every exchange matters—because this open communication ensures that everyone is aligned in their values and that, as a team, we can move forward on the same page, trying our best to avoid making the same mistakes.
6. QUALITY OUTPUT
When we recall what the web was 10 years ago, and how our team approached development back then, it’s clear we’ve always focused on five outcomes: Stability, Great UX, Performance, Accessibility and Security. We believe these are the core principles of quality output, and any tech choice is made to support one of these values. This approach prevents us from stubbornly holding on to any specific technology.
Keeping these five focus points in mind during every daily task results in delivering top quality work to our clients. If you’d like to dive deeper into this topic, check out our Tech Guide.
OUR PHILOSOPHY, DEFINED
We believe that the pillars outlined above are a representation of conscious software development. If we keep cultivating them, we will remain strong, valuable software creators—who are equipped for the future and won’t lose their minds.
Are you an engineer with similar values thinking of joining our team?
You might also like...
Inside STRV — 5 min read
The Perfect Shot at Vltava Run
by Jakub Vodak
Engineering — 3 min read
Swiftly Highlights: Apple Goodies, Controversial Privacy Changes & a Monthly Dose of SwiftUI
by Jan Kodes
Engineering — 15 min read
Mask2Face: How We Built AI That Shows the Face Beneath the Mask
by Lukas Koucky, Jan Maly