Álex Dávila: Building Solutions That Transform Lives

Mismo thrives on the strength of its exceptional team. We provide top-tier remote software development teams that seamlessly integrate with companies worldwide, driving exceptional results. Many organizations have partnered with Mismo to augment their development capabilities and achieve their technology goals.

At the heart of these successful teams are the talented individuals who make Mismo what it is. We’re committed to celebrating our remarkable employees and their invaluable contributions to our company culture. Our employee spotlights showcase the genuine relationships we’ve forged with team members and clients, highlighting their dedication and the positive impact they have on our collaborative environment.

Meet: Álex Dávila

Sr. ElasticSearch Engineer

Country: Ecuador

  • What initially attracted you to engineering and how have you found inspiration in this career? I am a data engineer from Ecuador, happily married and blessed with a young child. I value quality time with my family, enjoy watching movies, and lead an active lifestyle through regular exercise. Since I can remember, I’ve always been passionate about building things, making engineering the natural path for my lifelong fascination. I find it incredibly rewarding to learn new things and constantly solve different challenges. I truly enjoy what I do for a living!
  • What innovation or technical advancement have you been a part of that you consider to have made a milestone in your engineering field?  During the early stages of the COVID-19 pandemic, I developed a contact tracing system that utilized cell phone tower logs to track potential virus exposure. This project involved integrating a range of technologies, including data cleaning, data modeling, geospatial analysis, and real-time alerting systems.
  • What made you choose Mismo? When Mismo reached out to me about a position, I was immediately drawn to the opportunity to work with world-class companies. I knew it could be a significant step forward in my career.
  • How would you describe the work environment at Mismo? It’s a highly collaborative environment where everyone is approachable and always ready to help when needed.
  • What learning and development opportunities have you had at Mismo and how have you utilized these opportunities to grow as a professional? Working with world-class companies has helped me enhance both my technical and soft skills. Within Mismo, I took advantage of the education budget, which allowed me to complete a MicroMaster in Data Science last year.
  • What aspects of working at Mismo’s engineering team make you proud and motivate you in your daily tasks? Working at Mismo offers many great opportunities to tackle different challenges. I find this motivating and encouraging, inspiring me to continue learning new things.
  • How do you believe the company and engineering can positively impact the world, people’s lives, and make a difference in their respective industries? Fostering an environment where ideas can be freely exchanged leads to a meaningful impact for our clients and their end users. Mismo excels at this, allowing us to see the tangible difference our engineering solutions make across various industries.
  • What Mismo policies or practices have helped you improve your work-life balance? Definitely working from home! It allows me to be the husband and dad I aspire to be. Being available right after finishing work gives me more quality time with my family, and I truly appreciate that!
  • What inspiring advice would you give to someone considering a career in engineering or looking to join a company like Mismo? Success in engineering is directly proportional to the effort and dedication you put in. I believe that with determination and hard work, anyone can achieve their goals. It’s a highly rewarding field that offers endless opportunities for continuous learning.
  • What tools or technologies do you use most frequently in your daily work as an engineer at Mismo? I primarily work in data and search, using Python and Elasticsearch. Currently, I’m leading initiatives in semantic search implementation with reranking models and starting to explore agentic AI implementations.

An Introduction to Cloud Services

Software development has undergone a significant transformation over the past few decades, becoming more accessible than ever before. In the early days, web pages and services were created exclusively by professional IT experts working in government agencies or prestigious universities. However, advancements in computing hardware and user-friendly development tools have democratized this process, enabling anyone with an interest in technology to get involved.

One of the most transformative advancements in this field is the rise of cloud services. These services simplify the complexities of managing physical computer hardware, offering a range of remote solutions to users worldwide. From an application standpoint, cloud services allow organizations and individuals to access powerful computing resources, store and analyze data, and deploy applications—all without the need to own or maintain physical servers. This accessibility and scalability have revolutionized the way we build and deliver modern software.

This post provides an easy-to-follow introduction to cloud services, designed for both technical and non-technical readers, highlighting their critical role in modern web architectures.

Before delving into cloud services, let’s revisit the foundational purpose of the web. Although the seamless experience of going online today may obscure this, the internet fundamentally serves to connect devices globally. At its core, the internet consists of numerous computers that either receive information requests and send responses, or initiate these requests and receive corresponding data. Here, the “server” functions as a repository of information—similar to a bank’s system that holds account balances. In contrast, the “client” refers to the device used to access this information, such as a personal computer, laptop, or smartphone (Kurose & Ross, 2017). Understanding these basic concepts can be enlightening, especially when considering terms like “The Cloud,” “Game Servers,” and “Netflix Servers,” which refer to these interconnected computers distributed worldwide.

Now that we have a basic understanding of the web’s structure, let’s explore how to deploy a webpage or web application. Hosting it from your own computer might seem like a viable option, but it presents significant challenges. Imagine launching your project and having your device handle incoming requests. Do you have enough storage to manage all your users’ data? If your project gains popularity, can your computer’s processing power handle the increased traffic? Moreover, your device would need to stay on 24/7—what happens during a power outage? In short, while it’s technically possible, using your personal computer to host a web service is far from ideal. This is where cloud services come in.

Rather than purchasing your own server, it is more practical to rent one with the specifications you need. This approach allows you to avoid dealing with hardware maintenance, upgrades, or replacements later. Cloud services essentially provide this by renting machines to run your code or perform specific software tasks (Kurose & Ross, 2017). Cloud providers simplify this process by abstracting away complex tasks and offering straightforward controls.

It’s important to note that while you can rent an entire computer to run your software, cloud providers typically rent you a “piece” of a computer remotely. This practice, known as virtualization, uses sophisticated software that enables a single physical machine to host multiple virtual instances of operating systems. Each instance operates independently, with the provider dynamically allocating the required storage, processing power, memory, and other resources to meet user needs.

This approach maximizes hardware efficiency by allowing multiple users to share the same physical machine without interfering with one another’s workloads. For example, a single server might run a lightweight web application for one user while simultaneously hosting a resource-intensive database for another. By dividing and managing resources in this way, cloud providers can offer flexible, scalable solutions that adapt to varying demands, all while remaining cost-effective.

Another advantage of cloud services is the wide range of server types optimized for different tasks. This flexibility enables you to modularize your project, assigning each component to a server type that ensures optimal performance and seamless integration. For example, one type of server might handle database queries, while another runs machine learning models, optimizing performance for each workload.

Let’s explore Amazon Web Services (AWS), one of the most popular cloud platforms. AWS holds the largest share of the global cloud infrastructure market and provides a comprehensive suite of tools for various use cases. However, other major providers such as Microsoft Azure and Google Cloud Platform (GCP) also offer robust solutions, allowing you to select the best fit for your needs.

The basic AWS instance is called EC2 (Elastic Cloud Computing). This service lets you rent a remote machine with the specifications you need to run any code you wish. It’s similar to using your personal computer, especially if you choose a Windows operating system (Amazon Web Services, n.d.).

If you’ve worked with databases, you’re familiar with setting up and connecting to them without needing to manage their files or run additional software. AWS offers RDS (Relational Database Service) to simplify this process. RDS lets you easily mount a database with the details you provide, optimizing it for fast data reading and writing (Amazon Web Services, n.d.).

For large files or high volumes of data, traditional databases may struggle, particularly with image storage. For these cases, Amazon S3 (Simple Storage Service) provides an efficient solution. S3 functions similarly to your computer’s file explorer, organizing files into folders for easy retrieval. It is designed to store a variety of file types, including images, PDFs, text files, and even large media files like videos and backups.

One of S3’s key advantages is its scalability and durability. Unlike traditional databases, which can be burdened by managing unstructured data, S3 ensures reliable storage and easy access. It’s particularly useful for projects requiring significant file storage. Integration with other AWS tools further enhances its versatility, making it easier to process and deliver data for applications.

To summarize, you could run your project on an EC2 instance with just enough power to meet your needs, store user data in an RDS database, and store images in an S3 bucket. This setup ensures smooth, efficient operation.

This overview of the cloud is relatively simple, but it hopefully helps demystify the concept. It’s natural to feel overwhelmed by the technicalities and the abundance of available services—AWS alone offers over 200. However, most people don’t need to know all of them. The key is to research and select the services that best fit your needs. Be adventurous and curious—explore forums or ask AI for advice. With so many options available, you’ll have your app up and running in no time.

References
Kurose, J. F., & Ross, K. W. (2017). Computer Networking: A Top-Down Approach (7th ed.). Pearson.
Amazon Web Services. (n.d.). Amazon EC2. Retrieved July 4, 2024, from https://aws.amazon.com/ec2/
Amazon Web Services. (n.d.). Amazon RDS. Retrieved July 4, 2024, from https://aws.amazon.com/rds/
Amazon Web Services. (n.d.). Amazon S3. Retrieved July 4, 2024, from https://aws.amazon.com/s3/

Written by:

Andrés Mena
FullStack Engineer
Country: Costa Rica