Two weeks of code, challenge and interview questions
Tags: codechallenge, blockchain, erp, interview
Published: 2020-12-08 16:27:54

It's about two weeks from last writing here. I have been busy doing various tasks during the time. None tasks were really related to each other. Indeed, I used different tech stack for each one, attended business meetings from different projects and, read articles in much different subjects.

## Django/Python

After an interesting period of automated CI/CD with Heroku and Netlify, I, temporarily, switched to Python. I had a [sandbox project on Django/Python](https://github.com/afsharm/wps/) from 5 years ago. In first step, I upgraded it to the current version of Django as some APIs were retired or changes. To be honest, it was a much easier migration than those similar ones in ASP.NET universe. Seems that change speed in Python/Django is much slower than ASP.NET/C#. I remember similar feeling when comparing .Net to Java.

## Code challenge

I had one strange code challenge last week. They provided me with a challenge which looked pretty weird. An ASP.NET project that should have call an API and calculate a special number. In the way I'm used to, I didn't spend a complete week on it, but just dedicated 10 hours. Naturally, the final code was no way complete. However, they told me that my code has several issues. They told that the code does not contains any unit tests, DI principle is not completely followed and no sub-projects has been established. While the code has just few files and classes, it was not logical that I spread 4 or 5 files into several sub projects like .API, .Core and .Tests projects. I can argue that using interfaces is not a good idea when only one implementation exists for now and in the future, so why introduce redundant interfaces and injecting it into DI system? Same reasoning is true when we say each 5 line DTO class should have a dedicated file. So, what about a lean project structure? Not to mention that the goal was to create back-end for a small startup, not a fancy enterprise application.

## Blockchain

While I feel it's too early to see blockchain projects in the list of small teams, startups and companies, I meet someone who was trying to find a team to create a blockchain project. I read some articles on blockchain, explored [Hyperledger](https://github.com/hyperledger), and realized that it is Python, Rust and Go that dominants this world.

## Other opportunities

Well, I have a long term exposure to ERP in my career history. In addition, ERP and enterprise solutions have a big share in IT market in the country. This week I reviewed some solutions again and, analyzed how can we develop or implement some parts of an enterprise solution.

For years, I'm having security, polyglottery, distributed computing and soft skills in my mastering list. However, after focusing on interview questions and processes, I feel I should add algorithm with a high priority to this list. It seems that companies have great passion on algorithms, more than design and architectural subjects like DDD and SOLID and, even more than problem solving, team participating and even more than personality and learning skills.