Usmon
50 subscribers
4 photos
12 links
Download Telegram
Channel created
Side-project

As software engineers, most of us are busy with our day-to-day work and often find little time or energy to learn new things, let alone build something cool. Unfortunately, it's easy to fall into a comfort zone and become stagnant. It's perfectly fine—not every software engineer is supposed to be top-notch, and not everyone has the same expectations in their lives. However, if you enjoy programming and writing code, I encourage you to build a side project in a domain that interests you, as we're not always lucky enough to work on challenging problems everyday in our jobs. If you want to stand out among other engineers, it's worth building something interesting and fun. It significantly contributes to your growth as a software engineer.

https://youtu.be/0mCsluv5FXA?si=n-L70AAiiqAlAMxP
Code Review

It’s important to follow good code review practices, even if you are a junior or mid-level developer. At the end of the day, code review is not something only senior+ or lead engineers should carry out. The whole point of code review is to share knowledge about the codebase and stay aware of what is happening in the project.

That said, not every engineer is familiar with proper code review practices. Using the right words and grammar for a soft tone, balancing trade-offs, and knowing when to avoid nitpicking are all important. If your company has code review best practices, it’s best to get familiar with them. Otherwise, it’s worth reading some popular guidelines, such as Google's Engineering Practices.
1👍1🔥1
How to Grow as a Software Engineer

Growth can have different meanings depending on the context. Here, I want to talk about growth within a company—how to get a promotion.

As software engineers, we are not paid for writing code, drawing diagrams, or sitting in meetings. We are paid for solving problems that are valuable to the business. Engineers generally fall into two categories: ghost engineers and force multipliers. If you are a ghost engineer, it’s less likely that you will accomplish your career goals. One of the best ways to get promoted is by solving the most valuable and challenging problems and proactively contributing to every aspect of the team. Therefore, you should always try to undertake higher responsibilities and work on the hardest challenges that others find intimidating. Never complain about problems. Instead, proactively solve them. When a promotion comes, your results will speak.
👍2
I'm not into programming holy wars. But I sometimes stumble upon disputes about tools in some communities, channels. Most of the time, all these nonsense disputes end up wasting the precious time of both sides. The hard truth is that there is no all-in-one solution in programming—everything is context-dependent. Pick whatever works and helps you solve problems. A good rule of thumb: a working product is better than having none.

A good software engineer understands trade-offs and chooses tools based on constraints, requirements, and other relevant factors—unlike certain midwits who talk without real reasoning or rely on made-up nonsense out of sheer prejudice.

BTW, this post isn't related to the previous one.
1
Git Stash

Git is a very powerful tool. Despite this, many engineers don't understand concepts beyond the basics. I often see developers using git stash every time they need to context switch or work on another branch. This is not an effective way to work on multiple branches. Instead, you can use worktrees. I personally create a separate worktree for each ticket and regularly delete unnecessary worktrees.
👍1
Usmon
How to Grow as a Software Engineer Growth can have different meanings depending on the context. Here, I want to talk about growth within a company—how to get a promotion. As software engineers, we are not paid for writing code, drawing diagrams, or sitting…
How to Grow as a Software Engineer (Part 2)

Contribution is not always measured by the lines of code you write. At the end of the day, it all boils down to the impact you bring to the team. One of the best ways, which I like the most, is sharing knowledge and refining internal processes. In most cases, individual contributors tend to work in a more isolated environment compared to other roles, and not every engineer likes to take initiative outside their responsibilities. Based on my experience, one of the best ways to contribute is through mentoring your teammates, helping them level up, and refining internal processes, as this can have a greater impact on the team and help achieve your career goals much faster.
Vibe Coding

This term became very popular among developers and startup builders after Karpathy coined this word. In retrospect, all those tools (cursor composer, windsurf, etc.) let you quickly build MVP and secure your first customers with less effort and cost. However, the downside is that you don't know the fundamentals of what you are building, and things may easily messed up as if you have no idea what is going on in your project. Also, he mentioned it was experimented on a one-off weekend project. Think of it as living in a "vibe constructed" house lol. On the other hand, having these tools as a developer may boost your productivity to some extent.
Autonomous AI Agents = scheduled cron jobs
1💯1
Usmon
Vibe Coding This term became very popular among developers and startup builders after Karpathy coined this word. In retrospect, all those tools (cursor composer, windsurf, etc.) let you quickly build MVP and secure your first customers with less effort and…
Pitfalls

I decided to give Cursor a try and tried to vibe code. For context, I had a production system running for 2 years. Most of the stuff was implemented in the backend and no frontend at all. I decided to rewrite the backend and write the frontend. Due to the models' context window, I introduced the backend functionality step by step. Initially, it all went well, but as the number of functions grew, I observed inconsistencies in code structure, style, etc and constantly provided the necessary context to make the code more consistent. Then I started prompting to build the frontend side using react stack. Unfortunately, things didn't go quite well. Given I'm not good at frontend stuff, I completely relied on generated code. At some point, I noticed deprecated packages, poorly organized code, and a bunch of unnecessary boilerplate. Moreover, I constantly go through the error cycle, which I didn't quite understand.

To conclude, I quickly ended up having a mess than expected. I'd instead read corresponding documentation (react stack) and accept the outcome of those models carefully.
Forwarded from Bob Usmonov
💰 They donate to get richer

Giving away is a necessity for rich people to become even wealthier. When billionaires spend a ton of money to build hospitals, schools, donate millions to fight homelessness and similar problems, people may think - what a generous and kind person. In reality they are doing it to earn more. It sounds counterintuitive, I know, but let me explain.

For an economy to thrive 2 things need to happen. The first is obvious - people should be spending actively. You're working your butt off and stacking all the Benjamins under your pillow? What a horrible person you are! No, just kidding, but it hurts the economy as well as it hurts yourself. What rich people do is just giving away some of their money to poor, so that they can return it to them by spending and incentivising economy. And they don't simply give away money for regular people, because it may demotivate them from working hard.

The second is about working productively. If people are actively working and producing goods and services, they are pure gold for riches. They give them back twice, first working for them and then spending their earnings. And this is the reason why they donate to education and healthcare. Their goal is to cure sick people and educate uneducated to eventually get back their investments.

It's not evil to be rich, earn a ton of money. It's evil and irrational not to return a portion of it back to your community. Remember - money is just the means to exchange your work to something else. If spent wisely it may bring more good than you could imagine

#financeandbusiness
👍1🏆1
there is nothing more permanent than a temporary solution.
😁3🍌1
How to Learn While Having a Full-time Job?

Some developers struggle to find time to learn topics they are interested in while working full-time. If you are a junior or mid-level engineer, the chances that you are learning fun stuff at work are high. Some mid-level+ engineers often invest into learning outside of working hours and some stop investing time into what they are interested in or want to pursue. In general, it's your choice whether or not you invest your free time into learning. The truth is you quickly stop acquiring new knowledge at your work unless you are working in fast-changing fields like artificial intelligence. If you want to keep making good growth while working full-time, there are a few things you need to keep in mind.

A few years ago, I tried to develop a habit of consistent learning, as I didn't always find myself learning what I was interested in. However, after I burnt out, I did different experiments to figure out how to learn effectively while keeping a balance. My key takeaway was managing your energy correctly. I discovered morning learning works best for me, as my brain would be fresh and not have much information to process. While learning after working hours works for some individuals, I often find myself having less/no energy to do something after work. So, it's important to find out what kind of schedule works for you.

You learn everything but nothing. You should commit enough effort to see progress. Unless you are learning a small topic, it may take from a few weeks to several months to cover the topic. Because of this, It's important to stay motivated to make good learning progress while having a full-time job. Prioritize things you want to learn and only learn 1 or max 2 topics at the same time. Otherwise, you end up learning nothing because of choice paralysis. Instead of setting a large, overwhelming learning goal, break it down into smaller milestones, and remember to take regular breaks to make good progress in the long run.
2👍2
In-person interviews are back
🔥1🤔1