How we use Technology to Deliver Products

At Devato, we work with Technology everyday to communicate, track work and build amazing products for our clients.

At Devato, we work with Technology everyday to communicate, track work and build amazing products for our clients.

Our deep experience working with in the industry utilizing different tools everyday helps to guide strategy, design and architecture decisions for our clients. We hand-craft unique processes for delivery for every client and continually improve by integrating new technology as often as it benefits products or processes.

Here are some of the tools we use for different departments.

User Experience & Design

We normally work with Figma, but are able to design in any of the popular systems for wireframing, UX Design, and then mockups with design systems and UI elements.

  • Figma 
  • Sketch 
  • Balsamiq
  • InVision
  • Adobe XD

Front-end Engineering

Front-end includes the user interface and client-side code that users see and interact with.

We recommend different technologies based on clients needs.  For example, it’s simpler to use the built-in templating system (EEx) from Phoenix for simple marketing sites, but for more interactive systems like administration dashboards and Software-as-a-Service systems, (a CRM for example) we’d switch to using Either Phoenix LiveView or a Javascript framework like ReactJS/EmberJS.

  • Phoenix templating (EEx)
  • Phoenix LiveView 
  • HTML/CSS/SASS/
  • TailwindCSS
  • Javascript (ES6+)
  • ReactJS
  • EmberJS

Back-end Engineering

Back-end includes server-side systems.  Code that processes interactions like site registration, and loads the data to be displayed in the front-end client side code. 

We primarily use Elixir/Phoenix with any backend systems.  There are times when we need to build an API into a system and we’ll either build REST or GraphQL based API’s depending on what the client needs.

  • Elixir / Phoenix
  • GraphQL
  • REST

DevOps

Developer Operations can be a cryptic concept with varying interpretations.

DevOps has a simple definition for Devato, which is that development and operations teams seamlessly collaborate to increase delivery and productivity. One of the greatest obstacles organizations face when implementing a DevOps approach is adapting principles to address unique challenges.

We provide insight to help teams assess current practices and identify the next steps in achieving continuous improvement.

  • Planning and Building infrastructure:
    We tailor infrastructure to match client needs. Simpler systems need simple infrastructure, and the inverse is true.  
    - Amazon Web Services
    - Google Cloud Platform
    - Kubernetes
    - Ansible
    - CloudFormation
    - Terraform
  • Infrastructure Automation:
    Automating the creation and configuration of servers using things like:
    - CloudFormation
    - Terraform
    - Ansible
  • Continuous Integration:
    Automatically enforces coding standards, runs automated tests, and will only deploy your code when everything is green and passing.
    - CircleCI
    - Github Actions
    - Semaphore
    - AWS CodePipeline
  • Monitoring and Incident Reporting:
    Involves implementing systems to monitor tings like CPU/Memory Usage per server or node, creating alerts when service usage bypasses a certain threshold,
    uptime checks to send alerts anytime a system becomes unavailable and finally Code Error Tracking systems and Logging.
    - AWS Logging and Metrics
    - GCP Logging and Metrics
    - Sentry
    - AppSignal
    - LogDNA
    - Timber

Project Management & Remote Work

Our company is fully remote and we rely on some of the best tools available to communicate and organize work.

Real-time chat:

  • Slack

Issue/Ticket tracking:

  • Jira
  • Trello
  • PivitalTracker
  • Github Issues

Code Repositories:

  • Github (primarily)
  • Gitlab
  • Bitbucket

Wrapping Up

There are nearly infinite tools and strategies for organizing digital, remote work. But these are the tools we've had the most success with as we try to only reach for something when the pain of not having it becomes too much.

Is there anything missing from this list that you would recommend?

Troy Martin
Senior Engineer working with Elixir and JS.
Keep in the Loop

Subscribe for Updates

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.