Hiring guide for Basho Engineers

Basho Developer Hiring Guide

Basho appears to be a misunderstanding. There isn't a programming language named Basho. However, Basho Technologies is a company known for creating Riak, a distributed NoSQL key-value data store that offers high availability, fault tolerance, operational simplicity, and scalability. Additionally, Bash is a popular Unix shell and command language. It's possible that there was some confusion between these terms.

Ask the right questions secure the right Basho talent among an increasingly shrinking pool of talent.

First 20 minutes

General Basho app knowledge and experience

The first 20 minutes of the interview should seek to understand the candidate's general background in Basho application development, including their experience with various programming languages, databases, and their approach to designing scalable and maintainable systems.

How would you describe Basho?
Basho is a distributed systems company that develops a key-value store called Riak. It is designed to be highly available, fault-tolerant, and easy to scale.
What are the key features of Riak?
Riak has several key features including high availability, fault tolerance, operational simplicity, and scalability. It also supports multiple data types and has a robust query interface.
Describe the difference between Riak KV and Riak TS.
Riak KV (Key-Value) is a distributed NoSQL database that is designed to deliver maximum data availability by distributing data across multiple servers. Riak TS (Time Series) is optimized for IoT and time series data.
How would you handle data replication in Riak?
Riak handles data replication using its multi-cluster replication feature. It allows data to be replicated across multiple clusters, providing high availability and fault tolerance.
What is eventual consistency in Riak?
Eventual consistency in Riak means that all updates to a distributed data store will propagate across all nodes in the network, and eventually, all nodes will reflect the update.
The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

What you’re looking for early on

Does the candidate have a strong understanding of Basho and its applications?
Has the candidate demonstrated problem-solving skills?
Is the candidate able to communicate effectively?
Does the candidate have experience with similar projects or tasks?

Next 20 minutes

Specific Basho development questions

The next 20 minutes of the interview should focus on the candidate's expertise with specific backend frameworks, their understanding of RESTful APIs, and their experience in handling data storage and retrieval efficiently.

How would you handle conflict resolution in Riak?
Riak handles conflict resolution using its 'siblings' feature. When a write conflict occurs, Riak will store all conflicting versions and the client application is responsible for resolving the conflict.
What are the primary use cases for Riak?
Riak is primarily used for high-availability use cases where data loss is not acceptable. This includes session storage, user data storage, and real-time big data applications.
Describe the difference between strong and eventual consistency in Riak.
Strong consistency ensures that all reads receive the most recent write. Eventual consistency means that all updates will propagate across all nodes in the network, and eventually, all nodes will reflect the update.
How would you handle data partitioning in Riak?
Riak handles data partitioning using consistent hashing. This allows Riak to distribute data evenly across all nodes in the cluster.
What is the role of Riak Pipe in data processing?
Riak Pipe is a framework for processing data in Riak. It allows you to create complex data processing pipelines that can be executed in parallel across your Riak cluster.
The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

The ideal back-end app developer

What you’re looking to see on the Basho engineer at this point.

At this point, a skilled Basho engineer should demonstrate strong problem-solving abilities, proficiency in Basho programming language, and knowledge of software development methodologies. Red flags include lack of hands-on experience, inability to articulate complex concepts, or unfamiliarity with standard coding practices.

Digging deeper

Code questions

These will help you see the candidate's real-world development capabilities with Basho.

What does this Basho code do: `riak-admin bucket-type create persons '{"props":{"datatype":"map"}}'`?
riak-admin bucket-type create persons '{"props":{"datatype":"map"}}'
This command creates a new bucket type named 'persons' in Riak. The bucket type is configured to use the datatype 'map'.
What will be the output of this Basho code: `riak-admin bucket-type status persons`?
riak-admin bucket-type status persons
This command will output the current status and configuration details of the 'persons' bucket type in Riak.
What does this Basho code do: `riakc_pb_socket:update_type(Pid, <<"persons">>, Key, update)`?
riakc_pb_socket:update_type(Pid, <<"persons">>, Key, update)
This command updates the 'persons' bucket type in Riak with a new value provided by the 'update' function. The 'Pid' and 'Key' parameters are used to identify the specific instance to update.
What is the purpose of using this Basho code: `riakc_pb_socket:get_pool(Pid, <<"persons">>, Key)`?
riakc_pb_socket:get_pool(Pid, <<"persons">>, Key)
This command will fetch the value from the 'persons' bucket type in Riak using the provided 'Pid' and 'Key'. If the value does not exist, it will return a 'notfound' error.

Wrap-up questions

Final candidate for Basho Developer role questions

The final few questions should evaluate the candidate's teamwork, communication, and problem-solving skills. Additionally, assess their knowledge of microservices architecture, serverless computing, and how they handle Basho application deployments. Inquire about their experience in handling system failures and their approach to debugging and troubleshooting.

How would you implement full-text search in Riak?
Riak supports full-text search through the integration with Solr. You can index your Riak data in Solr and use Solr's powerful search capabilities.
What are the limitations of Riak?
Some limitations of Riak include lack of support for transactions, complex query operations, and the need for manual conflict resolution.
Describe the difference between Riak and traditional relational databases.
Riak is a NoSQL database that provides high availability, fault tolerance, and scalability. Traditional relational databases focus on ACID properties and support complex queries.

Basho application related

Product Perfect's Basho development capabilities

Beyond hiring for your Basho engineering team, you may be in the market for additional help. Product Perfect provides seasoned expertise in Basho projects, and can engage in multiple capacities.