Expand my programming lanugage stack
Lately, I've been involved in working with a programming language called Elixir. It is an awesome, growing functional language that lets you build scalable and maintainable applications. I believe that many organizations could benefit if they adopt this language because it allows you to ship applications faster, giving organizations more time to focus on business logic instead.
However, the market still relies on other popular languages such as C#, Java, Python, C++, ...
I need to invest more time getting familiar with other languages in the market.
In order to improve the familiarity with other programming languages I've taken a set of challanges that were given to us at university and had to write microservices in which we had to implement using spring.
Experiment with different languages to build the following:
- Sports Facility Rental Solution - A sports complex rents out football grounds, tennis courts, and squash courts. Each type of resource has properties such as (maximum people allowed, price, flood lights, etc).
- Office Space Facility - A company rents out luxurious facilities for use by companies and individuals who need a place to work. They rent out board rooms, offices and hot desks. Each space has a prices associated with it, as well as other characteristics such as capacity (number of people), equipment in the room, etc.
- Car Rental Company - This company rents out family cars, motorcycles and commercial vehicles. Each type of vehicle is associated with a price, capacity, etc.
- Consultancy Service - Consultants work for this company and their time is hired out to customers who need consultancy services. There are three types of consultants: (1) senior consultants; (2) executive consultant; and (3) junior consultant. The company allows consultants to charge whatever price they want but they take 5%, 10% and 15% commission from each type of consultant respectively.
- Advertising Company - Sells advertising space on billboards, sides of buses, and on park benches. Each type of advertising has different properties (e.g. size, price, etc).
Tasks
- Flesh out specifications.
- Domain Driven Design
- Set up a Continuous Integration Pipeline
- Implement and unit-test the code