Distributed architecture, open-source technology, automated testing, and cloud orchestration are just a few of the things baked into every project.
Now is an incredible time to be creating software. Between cloud infrastructures, JavaScript frameworks, REST APIs, and automated testing suites, companies have access to technologies that were far-fetched dreams just several years ago.
We focus exclusively on building modern software that adheres to the very best industry standards. We use open-source tools, distributed architectures, documented specifications, and extensive automated testing.
Below we've outlined some of the activities and technologies utilized throughout the software development process. While this list represents our technology decisions today, we're constantly staying up-to-date with emerging advances in our industry to ensure we're using well-supported, community-trusted tools.
Before a single line of code is written, we thoroughly define and document each endpoint of the API. By using a documentation-first mentality, we ensure your foundational will be well-understood and useful for many years.
Because the API represents the core of the intellectual property (IP) for a given product, this is generally considered one of the most important phases of the design and development process.
There's never been a more exciting time to be a front-end developer. The front-end landscape changes more rapidly than any other part of the web as devices and browsers evolve at record-breaking pace.
In recent years, several front-end frameworks for handling HTML and CSS consistently have emerged. These frameworks allow developers to craft perfect interfaces and know they'll work across a wide variety of browsers and display resolutions.
During this phase, we use those frameworks to convert design comps into templates that can be reused throughout the application. To double check our work we use tools like BrowserStack, which automatically tests our software on more than 700 desktop and mobile browsers.
Once the browser templates are in place, we can begin engineering the front-end of an application. To do this we use an open-source JavaScript framework called Ember.js.
Ember is used on many popular websites (Discourse, Vine, Live Nation, Nordstrom, and Chipotle) and also on desktop and mobile applications, including the latest version of Apple's iTunes Music.
Ember follows popular software design paradigms such as Convention over Configuration (CoC) and Don't Repeat Yourself (DRY). Because of its native ability to integrate seamlessly with a number of server-side technologies (e.g., Python, Ruby, Java, etc.), it's a natural fit for API-driven architectures.
There are no shortage of amazing open-source technologies available for building APIs. While our stack makes use of Node.js and Ruby, our love affair is with Python. Apart from its incredible popularity and support within the programming community, it's the tools built to work with Python that keep us so interested.
SQLAlchemy is a powerful database toolkit known as an Object Relational Mapper. SQLAlchemy is used by massive websites and organizations like Uber, Reddit, Cars.com, Dropbox, Yelp, and SurveyMonkey.
Beyond SQLAlchemy there is Flask, a micro web application framework written in Python and used by sites like Pinterest and LinkedIn. These tools do such a good job at handling lower-level tasks that it frees us to focus on the specifics of our client projects and trust that they'll work at the highest levels.
If you've ever been involved with custom software development, you're probably familiar with that awful feeling that can accompany updates and changes to the system. This feeling is caused by the anticipation of something called regression.
When we speak of regression, we speak of hard-to-detect software bugs that occur in an otherwise functional web application after changes have been made. Because every line of code has the ability to impact many other lines of code, we must rely on more than manual testing to ensure application stability.
The word "DevOps" comes from the words "development" and "operations" and refers to a practice that emphasizes the collaboration and communication of software developers and IT professionals.
The primary aim is to create an environment where building, testing, and releasing software can happen rapidly, frequently, and reliably in an automated fashion. This allows engineers to write code and safely deploy their changes for the world to see without a lot of manual, labor-intensive processes getting in the way.
We offer our clients many sophisticated configuration schemes for deploying to millions of users distributed all over the world. We use industry-leading tools within the AWS ecosystem to provide cloud-based infrastructure solutions.