How to grow as a programmer and software architect
Hey Habr! I'm Ruslan, a Java programmer with experience in IT of 15 years who still doesn't understand how to grow as a technical specialist in a company.
I started programming at school in 1997-1998 and I still like to create something from nothing and solve my and people's tasks using code. The problem is I don't want to always code small parts of systems based on tasks from technical leads or managers. I want to create software, which is not always only about coding. Unfortunately, I was able to get out of the vicious circle only twice in my life. Once I did a distributed database in a startup and the second time it got experience in people and technical management.
However, management is not my passion. I want to talk to customers helping them to achieve their goals with software. To project software systems and be responsible for many of their parts, usually needed to work quite long in one company or to sell yourself as a software architect, which is difficult to do without relevant experience in past. Besides, the architects mostly draw things and don't do them, I'm interested in both.
I think there is another way, it's enough to have a head-on their shoulders and "The position makes the person." Unfortunately, nobody cares what I think and I decided to make software in my spare time even if it's something small.
The first attempt was fixing the "Code Review for IntelliJ IDEA" plugin. Not a big deal but something helpful.
Then I tried to remove my personal pain and created a Chrome plugin to add a Reply feature to Microsoft Teams Web UI. 4000+ users found it useful and it was already much more motivating.
Eventually, I remembered how I found my job in Germany and realized what I want to do next.
The only place on the internet having all the jobs with relocation
I realized that there is no single place on the internet where I could look for a job with visa support and relocation assistance. I decided to make such a place.
I tried to do something like that for remote jobs in 2017 but didn't take that project too seriously, I just played with JavaScritpt. Then I discovered Pieter Levels and his remoteok.io, he was already making money on a similar project while I was still playing.
The 1st version: PHP & web UI
Well, I was copying Pieter's approach right? So I chose PHP, Jquery, and Bootstrap to make a website.
Soon I realized that I was really bad at UI things and would not be able to continue with PHP. I didn't know what to do. A friend of mine recommended me to try a Telegram channel and I decided it was a good idea.
The 2nd version: Java & Telegram channel
It required a small configuration of Nginx but DigitalOcean guides helped me.
Fetching and sending are run by cron. Right, you see it correctly, I use SQLite as a database. It's done intentionally to start the project faster. The schema by the way is quite stupid but it's OKish at the moment even though it has many extra fields left from the 1st version of the project and it's not normalized not to have one more table right now. Come on! I even don't know if people need this project.
RSS sources are transformed directly into SQL using XSLT, email subscriptions are processed using Java Mail, websites are parsed using Jsoup, and JSON sources are processed using Jackson.
I had a Linode from the 1st iteration of the project so I deployed my code there.
Looking for users
This is probably the most difficult part of my project. I had no clue where to find people interested in jobs with relocation. It's obvious to me that somewhere on the internet there are people who need this. How to reach them? Till now I published information about the channel on the following resources:
Well, I'll try Product Hunt a bit later and that's it. I don't understand how to reach users.
I'll continue working on the project extending the list of job sources. Besides, I plan to write a backend service in GoLang and a Flutter mobile app that will use this service. Initially, I didn't want to experiment but now it looks OK to try something new in the scope of the project.
Well, I have revealed all of my cards. What do you think? Will it help me to grow as a programmer and become a software architect? (Formally I was an architect BTW) Do you like the project concerning jobs with relocation?
Tell me please more about yourself. Do you do side projects? Which technologies do you use and why? How do you find your users? Which services do you use? How much time do you usually spend to make an MVP?