Ulad Ramanovich
banner
uramanovich.bsky.social
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! 🚀
The `nyc` npm package lets you merge coverage reports from different test jobs into one comprehensive report. Here's how it works:
April 26, 2025 at 9:58 AM
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
April 26, 2025 at 9:58 AM
What is your next action when you have an incident and the last PR in the list this one?
February 19, 2025 at 6:30 AM
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
February 14, 2025 at 2:40 PM
4/5 Testing becomes trivial:

- Unit tests: mock DataService
- E2E: use TestDatabaseService with Fishery
- No need to mock individual repositories
- Clean, reusable test data
February 10, 2025 at 3:17 PM
3/5 Core components:

1. Base Repository - shared database operations
2. Entities - database structure
3. DataService - single entry point
4. Factories - test data generation
February 10, 2025 at 3:17 PM
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
February 10, 2025 at 3:17 PM
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
February 10, 2025 at 3:17 PM
🐳 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
February 9, 2025 at 1:56 PM
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
January 31, 2025 at 4:32 PM
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
January 29, 2025 at 4:26 PM
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
January 24, 2025 at 5:33 PM
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
January 20, 2025 at 7:50 PM
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
January 20, 2025 at 4:00 PM
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
January 18, 2025 at 6:22 PM
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
January 7, 2025 at 6:16 PM
Tired of TypeScript being "stupid" with filter()?
When you filter out undefined, does TS still think they might be there?

🪄 Magic solution: Add "is" type check!

#typescript #webdev
January 7, 2025 at 7:47 AM
I prefer Claude over ChatGPT for both its superior code assistance and projects feature (Claude Pro).

With projects, you can create custom prompts with specific output requirements - perfect for recurring tasks like architecture planning or article title generation
January 1, 2025 at 2:42 PM
🔄 Solved my NestJS DB headaches by creating a Data Access module - a dedicated layer that handles all database operations, migrations, and models. It manages both Postgres & MongoDB, centralizes connections, and makes testing easy.

Writing an article to share my complete setup! 📝
December 19, 2024 at 7:55 AM
It depends on your application. This is what I added:
- I send to server "devMode" flag and remove any restrictions (player count, for starting the game, etc.)
- Debug information, like "row state". It's helpful when you're testing release build

Here is an example of my debug panel:
December 8, 2024 at 2:29 PM
1. Choose not so important screen. I chosen language selector view
2. Add hidden button on the bottom
3. Create logic that activate `isDevMode` flag when taped 10 times
4. Show indicator that dev mode enabled

Voilà ✨
December 8, 2024 at 11:05 AM
Building mobile app? Pro tip: Add a hidden dev mode for App Store reviews and testing

Implement a secret tap combo in a corner, show a dev mode indicator, and add debug controls. Makes testing simple for reviewers, plus helps verify features work 🔍

Here is how I did this 🧵

#buildinpublic #swiftui
December 8, 2024 at 11:05 AM
🎮 Wrapped up 7 intense days building "Spot the Stranger" - party game where players find outsider who doesn't know the secret profession!

Completed core features: lobbies, gameplay, scoring & real-time communication. All while working full-time!
Next stop: Bug fixing and App Store 🚀
#buildinpublic
December 3, 2024 at 6:36 PM
🎮 Spot the Stranger - Day 6/7

Added new mechanics after testing:

The Stranger can now win by guessing the profession. Making Citizens think twice about their questions! Also, a new voting system is in place to catch the Stranger.

#buildinpublic
November 30, 2024 at 11:39 AM
Just discovered raycast app for mac - perfect tool for window management and running commands 👀

Beautiful UI that lets you run commands without memorizing shortcuts.
Replaced my skhd + yabai setup, and it's as simple as installing from brew.
November 28, 2024 at 9:35 PM