Innovation, growth, responsibility.

Three principles that guide our software development team.

Three_principles_that_guide_our_software_development_team.

Software development can be one of the most rewarding lines of work out there. It can also be one of the hardest, most stressful, or even most boring. It all depends on what your employer’s values are, how your company’s daily operations are run, and whether or not your management team knows how to keep its developers happy in the long term. 

Finding a great work environment isn’t easy. You might join a company that embraces innovation but can’t keep up with the fast pace. You might find one that has no interest in evolving or keeping things fresh. Or you might just end up somewhere that doesn’t know how to channel your skills into a successful career. 

Here at Mooncascade, we’ve been building tech products for over ten years. We were founded by four developers who learned and grew as they went along, and we try to keep that same openness in everything we do today. We like to sum up our approach to work with three guiding principles: innovation, self-development, and responsibility. Read on to see what this means for us and why we think it makes our workplace a great place to grow in. 

Technology, languages, and innovation

We believe it’s important to provide our development team with regular opportunities to work with new technologies. While it’s common for companies building their own products to focus on the same frameworks or languages throughout their lifespan, one of the perks of working with us is that we have both a wide variety of requests from clients and an active interest in trying things out. We never want to get stuck where we are and we always try to follow new paths whenever possible. 

Before using an unfamiliar programming language with clients, we like to start with an in-house project to test things out without pressure. Last year, we built Vaba Saba, a Tinder for cats, using React Native. At the time, React Native was fairly new and we had heard good things about it, but didn’t have proper experience using it. This project allowed us to see how it worked and what its limitations were. We now have a strong team that’s used React in several client-facing projects, including Bolt’s app for scooters.

Experiments like these aren’t always successful, which is another reason why it’s important we take the time to do them. We recently tried to use Xamarin, for example, but quickly understood that it wasn’t right for our workflow. Then we tried SwiftUI, an iOS update for creating user interfaces, but found that it was still too raw to use in actual production. In other words, we don’t innovate because it’s cool to do so, we innovate when something creates real value for our development team. That’s why we always validate new languages and updates in-house, to avoid creating unnecessary obstacles when client-facing projects come around. 

Self-development

At an individual level, we also encourage our developers to try out new roles and responsibilities. Anyone is free to grow or move to new positions within the team, and we’re always open to developers specialized in one area to move to another. We’ve had frontend developers move to backend, backend developers move to the mobile team, and mobile developers move to frontend. The only ones who never change are those who land in iOS—there’s something about it that just sucks you in…

We’ve also had team members in development change roles within the company itself, taking on more responsibility as project managers, for example. Some people like the managerial aspect of this kind of work but want to stay active with the technical side of things, so it’s not uncommon for a developer here to become a technical lead, which gives them the best of both worlds: using their organizational skills without leaving their technical ones behind. 

If you’re ambitious, you can even move all the way up within our company. Our CEO Anu Einberg started in QA before shifting to project management, becoming our COO, and finally landing at the head of Mooncascade where she is today. 

Self-development is something we’ve prided ourselves on since the beginning. In the early days of our company, there were just a few of us building apps, without any processes or methodologies put in place to guide us. As our projects grew, we had to find a QA team, hire project managers, and learn to shift our roles based on what needed to be accomplished. The same flexibility applies to our mindset today, and we’re always happy to guide our developers with in-house knowledge sharing, tech talks, and new professional opportunities. 

Responsibility and decision-making

Now that we’ve covered what we offer our development team, there are a few things we do expect from them. We don’t think that anyone should be confined to their role, saying things like “I don’t care, I just code.” Everyone should keep the end product in mind and each team member should take responsibility for the project they’re working on.

This means that communication is key for us. We use Scrum, so we have regular standups and everyone is aware of what’s going on in any given project. Our motto is: if you have something to say, say it! Don’t keep things to yourself, and remember to be respectful as you share your ideas. We think it’s important for criticism to be constructive whenever proposing changes to each other’s work. 

Here’s an example. On a recent project, which saw us build a complex web product for a client, the design phase started much earlier than development. Our designers did a great job of coming up with wireframes that the client loved. But as the developers jumped on board, they realized that to make things look exactly as the designers planned would take a huge amount of extra work. They would have to spend most of their time fine-tuning the final 1% of the project to get things right. One of our developers proposed a streamlined version of the design that greatly improved development speed while respecting the designers’ original idea. The client and team were both happy with this and we were able to move forward with an optimized game plan. 

Software development at Mooncascade: an exciting team that’ll push you forward

If I had to sum up what it’s like working in our development team, I’d say that it comes down to keeping things fresh and functional in the present and open in the future. We’re here to discover new things and grow together, and we’d love to have you along for the ride. Think you’d be a good fit? Get in touch with us today or have a look at some of the open positions in our development team. We look forward to hearing from you! 

Published by Indrek Ulst

. Indrek is a Co-Founder, Technical Sales Engineer at Mooncascade. Having started his career as a freelance web developer back in 2000, at age 15, he's phenomenally good at what he does. As the key point of contact for clients, he makes sure that whatever Mooncascade does follows the best possible practices.