Evil Martians is a product development consultancy that can help you launch web and mobile products, pivot and improve them based on analytics.
Our clients trust us to develop turnkey solutions. We take time to learn about your business and set clear goals based on your intentions. Then we come up with ideas we want to test and set up analytics to test them. We work on products in short iterations, delivering working software frequently, and continually checking if our ideas perform well.
We can take a bare idea and turn it into a full-featured product, where every step of the process is driven by feedback.
We follow the Lean Software Development approach closely. We put a dedicated product designer at the center of collaboration: that person translates your business needs into testable assumptions and implements them with the help of the technical team.
We take the feedback both from metrics that we design ourselves and from the customer, based on their expertise in the field, to iterate over features quickly and deliver only those that are proven to bring value to the business.
“Design is how it works.”
At Evil Martians, we believe in performance-based user interface design.
For us, the design is only viable when it delivers results. For eCommerce startups, we work on improving the conversion. For product interfaces, we care about how easy it is for end-users to perform tasks and meet their goals.
We never put form before function.
We follow the same metrics-driven approach in UI design, as we apply to the product as a whole.
Our designers are no strangers both to product engineering and product management, which removes the wall between those who design features, and those who implement them.
Designer’s work does not end with the mock-up. Our designers have engineering backgrounds, so they speak the same language as developers and work seamlessly with the whole product team until the feature is implemented and tested in production.
Evil Martians is a polyglot team with an opinionated language and framework stack—we use Ruby and Rails, Go, Elixir, Node.js, Rust, and JVM languages, as well as our own open source technologies.
Martians started as a Ruby on Rails consultancy, and we’ve been building Rails applications from day one. More than a decade of experience has convinced us that for most web startups, Rails is a phenomenal way to save time and money at the start of the product development cycle.
We don’t take out tools for granted: our engineers keep improving the Ruby ecosystem through open source contributions.
We have authored a multitude of Ruby gems and often commit to Ruby on Rails itself. We have also improved on some parts of Rails as a framework—take AnyCable, the lightning-fast, production-ready replacement for Action Cable.
Go is our second most used language on the backend. We use Go to build highly performant application parts—as well as for implementing microservices for larger applications.
Our open source experience with Go, among other projects, includes: imgproxy, the fastest and lightest open source proxy server for resizing and manipulating images; AnyCable, a drop-in replacement for Action Cable in Rails, where all the heavy-lifting is implemented in Go; and, finally, Lefthook, the fastest polyglot Git hook manager.
We resort to Rust in areas where pure performance is of the utmost importance—specifically, in some of our blockchain applications.
We use Node.js on the backend to support rich web applications that interact with existing APIs. We find ourselves using TypeScript more and more for new Node.js projects.
GraphQL powers most of our new single-page applications, as it has proven to speed up the development significantly, by reducing complexity in communication between the frontend and backend developers.
We use a wide selection of databases for our applications: PostgreSQL as the default relational database, as well as Redis, Elasticsearch, Cassandra, and various NoSQL databases where needed.
No matter the technical stack we use to build your application, our priority is to create a healthy engineering culture that follows the principles of Continuous Deployment.
Proper automated test coverage, Continuous Integration workflows, code linters, and other automations—we make sure that the software can (and should!) be deployed to production multiple times per day without any drawbacks. This way, developers can focus on bringing value to the product and shipping new features, instead of fighting with environment setup.
Make sure to check our open source contributions if you want to learn more about Martian backend skills.
For bundling our frontend, we prefer Webpack or Parcel, Babel, and PostCSS.
Most new single-page applications that we develop are built using GraphQL.
The JAMstack approach is gaining traction; for some of the applications and websites that we build where frontend performance is essential and dynamic backend is not required, we opt for Gatsby.
Evil Martians have extensive open source experience when it comes to frontend web development.
PostCSS, one of the most popular npm packages, used by many industry leaders and startups, came to life during one of our commercial projects. Same goes for a lot of projects in the PostCSS ecosystem—specifically, Autoprefixer and Browserslist. We are also developing Logux, the CRDT framework for the modern web.
Don’t forget to check out Martian open source to learn about our frontend experience.
Evil Martians excel at developing iOS apps with Swift.
Most of the minimum viable products for our mobile apps start as an iOS application. We begin by quickly shipping a robust and user-friendly first version of an iOS app so the end-users can experience your product as soon as possible. That expedites and helps shape the final vision of the product that could be implemented for Android as well.
As avid fans of Swift, Martians are enthusiastic about leveraging all the latest and greatest language and framework features that Apple’s mobile platform has to offer.
At Evil Martians, we help startups and enterprise clients build secure, trusted, and decentralized environments using Distributed Ledger Technology. Blockchain agnostic, we have experience both with mainstream public blockchain networks (Bitcoin, Ethereum, Tezos and Stellar) — and with permissioned and private ledgers and frameworks (Hyperledger, Exonum).
For startups, we can help with developing core blockchain software as well as end-user blockchain-based applications. For fintech organizations, we can help with building and maintaining blockchain infrastructure and integrating blockchain with existing business processes.
Additionally, we have a profound experience with the Stellar blockchain.
We’ve built Astrograph, a framework that lowers the entry threshold to the Stellar ecosystem and reduces Stellar application development costs and time-to-market. Astograph also won the Stellar Community Fund funding. We’ve also authored a Stellar Ecosystem Proposal for web authentication.
Site reliability engineering
Evil Martians have a dedicated operation engineers team, working closely with Martian and customer’s engineers to build a reliable, predictable environment for the application.
Our primary tool of choice is Kubernetes, a container orchestration engine we use with most of our applications. Our configuration management toolset includes Terraform to provision cloud infrastructure and Chef for any other configuration management tasks, including bare-metal and VPS-based Kubernetes installations.
We also help our customers to choose the proper platform for their application. We deploy to Google Cloud, Amazon Web Services, VPS providers, as well as to bare metal.
We follow the observability framework for our applications to ensure the most comprehensive monitoring of the production environment. For monitoring, we use Prometheus with Grafana.
Monitoring and optimizing databases are what we do for most of our applications, and we have scars to prove our many of experience in dealing with highly loaded PostgreSQL, Elasticsearch, and Redis instances in production.
Machine Learning development
Today, Machine Learning is no more theoretical or black box territory, but mature technology for improving existing products or creating brand new ones. It helps in predicting business results, providing recommendations to your customers, detecting specific and restricted content in images and video, recognizing speech and tone of voice, machine translation, contents and interfaces adapting to end users, and much more.
Evil Martians can help assess a task, find and collect data, implement algorithms, shape the ML training pipeline, estimate existing models’ efficiency, automate processes, and fine-tune these steps until the target result is met.
Our main framework for training Deep Learning models is PyTorch. We use it in conjunction with high-level Python-based frameworks and libraries to design and train Neural Networks—PyTorch Lightning, Catalyst, and others. We leverage modern libraries for data labeling, processing, and visualization, image and audio augmentation. In our toolkit, we have instruments for fast iterations of prototype code, experiment orchestration and tracking, trained model transformation, and wide-spread deployment and testing tools from other development areas that fit ML products perfectly.
Evil Martians cover Machine Learning and Deep Learning areas with tasks on classification, detection, segmentation in Computer Vision, Natural Language Processing (text and speech), and operations with tabular data, including time series data.
Martians have Machine Learning experience with internal and customer products, contribute to several open source Machine Learning tools and participate in Kaggle Data Science platform competitions.
We have handled tasks in building Natural Language Processing and Computer Vision product features and ML-based recommendation systems, implemented a ML product prototyping, and navigated ML projects assessment for several clients. Evil Martians were also instrumental in the DVC project, an open source developer tool for versioning data and artifacts for Machine Learning experiments flow. We participated in the open source Deep Learning project—fast.ai—helping improve their course and library, committed to Catalyst, a powerful open source library for Deep Learning and Reinforcement Learning model training, and implemented integrations with existing ML algorithms, like our google_translate_diff Ruby gem.
Audit and optimization
Evil Martians can review an existing project, look for all possible bottlenecks on all stages of product life, from specifications to development to deployment, and come up with a clear set of recommendations that will help you to optimize your codebase.
In our experience, more often than not, most technical problems are still caused by poor architecture planning and the lack of database experience—but not from ignoring the latest technical gimmicks.
Migrating to the flavor-of-the-month technology can never solve product development issues, no matter how excited the technical team can be about a hyped-up language or framework. Software architecture, development methodology, database performance, and deployment process are still the core problems to solve.
We check the code and infrastructure, we talk with the team, and we help our customers determine where the problem really is and what to do next. We’ve done it many times over the years—both for those companies that commissioned products from us and for those who just needed an impartial audit.
It is also often that problems with a product start with the software development methodology—or lack thereof. We can work closely with the product owner, project manager, and engineers to establish a proper process.
Our “interventions” result in clear and concise recommendations for the code base, architecture, deployment process, and database optimizations.
We help to change the development culture and software development methodology and to implement Continuous Integration and Continuous Delivery process.
Establishing and maintaining the engineering culture inside the product team is one of the most important outcomes of the “Martian invasion.”
Evil Martians join product teams not just to implement new features, or to lend a hand when times are tough. We see our task in improving the development culture and team processes in general.
For startups, it is of the utmost importance to iterate as fast as possible, ship working software, and pivot to reach a working business model. Engineering culture can often be overlooked—too many tasks, too little time, too hard to find a good developer on the market to add to the team. However, if ignored, the lack of the culture—or hiring mistakes—can cause fast deterioration of the product and hinder both short-term and long-term goals.
As we want to see your company grow, we care about those who are going to look after it when you expand, that is why Evil Martians are eager to help with the hiring process early on: outline the candidate profiles that are needed the most, write a proper job posting, and interview engineers while also coming up with project-specific take-home tasks to test their skills.
If needed, we can have hands-on sessions, pair programming sessions, presentations on specific topics, and even full-on educational courses.
We would also usually want to start to document everything—not just the product, but our approach and technical standards and decisions—early on in the project, so that all the engineers joining in from the customer’s side will be able to maintain the engineering culture going forward.
For our Russian customers, we have organized several educational courses known as “Brainwashing by Evil Martians.” Among them, the celebrated advanced hands-on Ruby on Rails course in Russian, a thorough course on frontend development, and an iOS development course.