Ulad Ramanovich's Avatar

Ulad Ramanovich

@uramanovich.bsky.social

Senior Fullstack Engineer passionate about TypeScript/JavaScript ecosystems. Sharing pragmatic tech tips & exploring AI-powered development workflows. Let's build better software together! πŸš€

113 Followers  |  52 Following  |  195 Posts  |  Joined: 16.11.2024  |  2.0561

Latest posts by uramanovich.bsky.social on Bluesky

Do you know the newsletter with weekly sharing what happened in the AI or Web development?

I’m trying to find newsletter with analysis what happened for the last week, instead of raw links

#frontend #ai #wevdevelopment #react #nodejs

09.06.2025 08:16 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

The `nyc` npm package lets you merge coverage reports from different test jobs into one comprehensive report. Here's how it works:

26.04.2025 09:58 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Tired of slow Jest tests? I cut my test suite time by 67% with these two simple tricks:

1. Add `maxWorkers=50%` to utilize available CPU
2. Implement `shard` to split and run tests in parallel across multiple jobs

The big challenge? Collecting coverage data from separate jobs. Solution below

26.04.2025 09:58 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Senior devs spend 20% of time on code reviews. If you don't, either you're not senior or your team culture needs rework.

Good code reviews:
- Catch bugs before they cause outages
- Share knowledge across the team
- Build better architecture through diverse perspectives

25.04.2025 09:21 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Create a template and do this without thinking :)

For me, it was to have content prepared in advanced

31.03.2025 05:46 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

What is your next action when you have an incident and the last PR in the list this one?

19.02.2025 06:30 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Probably author refer to React Server Components where you can render html on server and send it to client.
Nothing wrong with it, because render on server is faster

17.02.2025 05:43 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Confusing by word 'token' when working with AI? Me too πŸ€”

I spent time understanding how it's calculated, here's simple math:

- Token β‰  word
- 1 word β‰ˆ 1.3token
- 1 tweet β‰ˆ 35 tokens
- Emojis cost extra tokens

shorter words = fewer tokens = lower costs

14.02.2025 14:40 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Skipping tests to save time? Think twice.
While writing tests feels chore, the real cost hits during refactoring.

Use AI for basic tests, but guide it - create mocks & define key scenarios. Keep logic simple, and review all the code produced by AI.

Future you will thank you

12.02.2025 16:29 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

You're missing one primary concept when coding with AI.

AI doesn't own the code, the person who approved this code is the owner of the code.

AI is a tool - your expertise in reviewing, validating & owning the implementation is what matters

11.02.2025 07:19 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

5/5 Remember: abstract your database logic, centralize configurations, and keep your testing patterns consistent.

10.02.2025 15:17 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

4/5 Testing becomes trivial:

- Unit tests: mock DataService
- E2E: use TestDatabaseService with Fishery
- No need to mock individual repositories
- Clean, reusable test data

10.02.2025 15:17 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

3/5 Core components:

1. Base Repository - shared database operations
2. Entities - database structure
3. DataService - single entry point
4. Factories - test data generation

10.02.2025 15:17 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

2/5 The key is centralizing all database logic in one place.
Create a data-access module that:
β€’ Acts as a single source of truth
β€’ Handles all database operations
β€’ Provides clean testing interfaces
β€’ Manages multiple databases

10.02.2025 15:17 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

1/5 How to manage database access in monorepo with NestJS?

I faced this problem a few times:
β€’ Duplicated database logic
β€’ Multiple connection configurations
β€’ Inconsistent testing patterns
β€’ No clear structure

Let me explain how I fixed this with the Data-Access Pattern 🧡
#NestJS #nodejs #webdevb

10.02.2025 15:17 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

🐳 Next.js Docker build tips:

1. Split into build/run stages - speeds up builds & enables layer caching
2. Use non-root user for runtime - prevents root access if app is compromised

#Docker #Nextjs #Webdev

09.02.2025 13:56 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

4 ways to adapt AI for business needs:

1. Pre-training: Needs massive data, expensive
2. Prompting: Cost-effective, learn it first!
3. Fine-tuning: 1000+ examples for good results
4. RAG: Use your docs as context

Start simple, scale as needed

#AI #LLM

31.01.2025 16:32 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

This is env management I bring for each project. Don't rely on process.env directly - use Zod validation instead.

Type-safe + clear errors = no more missing configs

#TypeScript #WebDev #nodejs

29.01.2025 16:26 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Will AI replace your job? πŸ€”

AI isn't replacing jobs directly - it's automating tasks. Think of it as a tool that helps process work faster, not a robot employee.

Humans still handle complex cases, AI handles repetitive ones. πŸ€–

27.01.2025 17:20 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
70/30 AI Engineering Rule

70/30 AI Engineering Rule

The 70/30 rule of AI coding: While AI can scaffold 70% of your code, the crucial 30% requires deep engineering expertise.
Best practice: Use AI as a drafting tool, maintain atomic conversations, and own your code through meaningful review.

#AI #SoftwareDevelopment

24.01.2025 17:33 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

But what you use for as AI assistance? (Outside of code editor)

24.01.2025 10:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

🎨 Building new website? Here's a harsh truth:

Most projects fail not because of dev speed, but waiting for "perfect design"

Quick win:
- Ship minimal design in 2 weeks
- Test with real users
- Iterate based on feedback

Stop guessing what users want.

#buildinpublic

22.01.2025 15:21 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Post-interview clarity hit me hard today πŸ’‘

Spent 2 weeks learning algorithms, only to get asked about building an actual product feature. Classic over-preparation for the wrong battle.

Lesson: Always check type of interview you're participating. The interview format tells you what you need to know

21.01.2025 19:00 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

For me 2nd looks better. Idk exact reasons but it feels like priority of blocks in the second option is better

21.01.2025 10:07 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
GitHub - pubkey/broadcast-channel: :satellite: BroadcastChannel to send data between different browser-tabs or nodejs-processes + LeaderElection over the channels https://pubkey.github.io/broadcast-channel/ :satellite: BroadcastChannel to send data between different browser-tabs or nodejs-processes :satellite: + LeaderElection over the channels https://pubkey.github.io/broadcast-channel/ - GitHub - p...

Here's the library I used πŸ‘‡

broadcast-channel https://buff.ly/2UEqfB8

20.01.2025 19:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Multiple tabs sending same requests? Been there πŸ”§

Solution: Leader Election pattern!
- Tabs form a team
- Pick ONE leader tab
- Only leader makes API calls
- If leader closes, new one steps up

Used broadcast-channel lib. Now instead of 5 requests β†’ just 1

#frontend #javascript

20.01.2025 19:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

Multiple tabs sending same requests? Been there πŸ”§

Solution: Leader Election pattern!
- Tabs form a team
- Pick ONE leader tab
- Only leader makes API calls
- If leader closes, new one steps up

Used broadcast-channel lib. Now instead of 5 requests β†’ just 1

#frontend #javascript

20.01.2025 16:00 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

React's Virtual DOM Explained:

Instead of updating the webpage directly, React uses a lightweight copy (Virtual DOM).

Changes? React:
1. Updates copy
2. Compares versions
3. Updates only what's needed

That's why React is fast ⚑️

#ReactJS #frontend

18.01.2025 18:22 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Discovered today Docker Compose profiles and was surprised.

Instead of juggling multiple docker-compose files for prod/dev/test, just add "profiles: [dev]" to your services and run:
docker compose --profile dev up

Perfect for managing different environments in a single file!
#docker

07.01.2025 18:16 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Good tip! Doing it for a while, sometimes even use it as a task list πŸ™‚

07.01.2025 12:43 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@uramanovich is following 18 prominent accounts