↓ Skip to main content

Fix Windows 11 account

I recently moved to Windows 11. I had created only a local account during creation but at some point I configured OneDrive to use my wife’s account. This resulted in her account being bound as the “primary” account of the computer. This is not what I wanted.

I looked online for a solution but all the instructions I found didn’t have the screen I had. I initially tried a regedit fix but it didn’t work.

Here is how I fixed it:

  • Go to Settings > Accounts > Your info.
  • This is the “weird part”, click on “Sign in with a Microsoft account instead”.
Fix Windows 11 account
  • Follow the instructions using a different account.
  • The previous account will be “detached” from the computer and you will now be using a local account.
  • If you go in Settings > Accounts > Email & accounts, you will see that the previous account is still listed under “Accounts used by other apps” but that you can now remove it (which you couldn’t do previously).

Hope this helps!


Work jail

Ethan’s eyes burned as he stared at the ceiling in the dark. It was past midnight, yet his mind churned with lines of code, bug reports, and deadlines. He could hear the faint hum of his laptop from across the room, the machine sleeping-but his brain never did.

He wasn’t in the office. He wasn’t even near his desk. But he might as well have been shackled there. Every time he tried to drift into sleep, a stray thought would pierce through: Did I fix that memory leak? What if the deployment fails tomorrow?

On weekends, when his daughter tugged at his sleeve to play, his body was present, but his mind wandered back to sprint boards and review notes. He’d nod and smile, but she could tell he wasn’t really there. The guilt would come, heavy and sharp, but instead of freeing him, it only chained him tighter.

Work lived in him like a warden. No one forced him to think about it-not his boss, not his colleagues. The prison wasn’t physical. It was a cage built from expectation, ambition, and fear. A cage he carried with him everywhere.

Sometimes, he wondered what silence would feel like. Not the silence of a muted Slack notification, but real silence-the kind that let you hear your own heartbeat without worry pressing against it.

One evening, walking home, he noticed a sparrow land on a fence. It hopped, light and unbothered, and then flew off. He stopped in his tracks, watching it disappear into the sky. For a fleeting second, he envied the bird’s freedom, a freedom he had once believed was his by right.

And in that second, he realized: the keys to his cell weren’t held by his company, or his laptop, or even the endless tasks. They were in his own pocket, hidden beneath the weight of his own unwillingness to set them down.


Effective vs efficient

In software development, understanding the difference between being effective and being efficient is crucial for delivering high-quality products.

Effectiveness is about doing the right things - choosing the correct features to implement, solving the right problems, and aligning development efforts with business goals. An effective developer ensures that their work has a meaningful impact and contributes to the project’s success.

Efficiency, on the other hand, is about doing things right - optimizing code, reducing resource usage, and minimizing development time. Efficient developers focus on speed and resource management, ensuring that solutions are implemented with minimal waste.

Balancing effectiveness and efficiency leads to better outcomes. For example, writing highly optimized code for a feature that users don’t need is efficient but not effective. Conversely, delivering valuable features slowly or with unnecessary complexity may be effective but not efficient.

In summary, successful software development requires both: building the right solutions (effectiveness) and building them well (efficiency).


Slow git under WSL

I have a git repository with 25k commits in it and 7k+ files.

Under Windows 11 using WSL, I noticed that git operations were significantly slower compared to running them natively on Windows.

I have a script that I use to synchronize many branches that was taking forever to execute, but should have been relatively fast. It also had trouble with line endings which caused issues when merging branches but reminded me of a setting I used to configure in my ~/.gitconfig a very long time ago.

Given that git configuration under Windows and WSL are separate, I had to update the ~/.gitconfig file in my Linux environment with the following.

[core]
    autocrlf = true

This immediately fixed my problem and git was fast again.


Slow network under WSL

When I started using WSL on Windows 11 I had slow network performance issues. We’re talking running speedtest-cli and getting ~3 Mbps download speeds while my connection can reach 400 Mbps.

After searching online for a while and trying a variety of things I finally found a solution.

In %USERPROFILE%\.wslconfig add the following:

[wsl2]
networkingMode=mirrored

With this fix applied I’m now getting ~400 Mbps download speeds in WSL, matching my native Windows performance.


Company offboarding

  • Meet with colleagues to discuss ongoing projects and hand off responsibilities
  • Write down knowledge transfer documents
  • Download pay stubs and tax documents
  • Ensure accounts that should still be accessible use a personal email address (e.g., insurance, stocks)
  • Return company equipment (laptop, phone, etc.)


Daily review

Trigger
#

Every daily at the end of the (work) day.

Duration
#

15 minutes.

Steps
#

  • Review what was planned for the day (manual)
    • Did you finish each planned task?
    • Were any deliverables missed or delayed?
    • How many times I was interrupted?
    • How much time I spent on unexpected work?
    • Was I got blocked and for how long?
    • Rate the quality of work delivered.
  • Provide feedback related to the plan (manual)
  • Learning & Insights (manual)
    • Did you discover a new tool, technique, or process?
    • What could be improved next time?
  • Review weekly plan and align
  • Plan next day


GPU cluster monitoring

Overview
#

In this article I list metrics and alerts one should have when monitoring a GPU cluster to ensure efficient utilization of resources.

GPU cluster monitoring is critical for organizations to optimally utilize the limited capacity they have. Without monitoring it is easy for users to leave jobs running that do not use GPU resources, or do not use them efficiently. In some cases GPU clusters use certain technologies that require the users to provide images with specific libraries, and not including those dependencies can result in significantly worse compute performance.

Metrics
#

  • Allocated GPUs
    • Used to determine who (or which project) has GPU allocated (i.e., currently assigned to a running workload)
  • GPU utilization
    • Used to determine whether the GPU is partially or fully used, and if it is partially used, to potentially identify the causes
  • GPU memory utilization
    • Used to determine if the GPU memory is partially or fully used
    • Used to identify out of memory issues and potential memory leaks
  • InfiniBand receive/transmit bytes
    • Used to determine if a workload is making use of the technology
  • Job launch wait duration
    • Used to determine when there’s queueing of jobs due to compute being exhausted and how long it takes for jobs to start
  • Job duration
    • Used to gather statistics about the type of workload running on the cluster in order to make informed decisions

Alerts
#

  • Allocated GPUs are used
    • Used to detect jobs that may ask multiple GPUs but end up using 1 or only a few of them
  • GPU utilization below threshold (<10%)
    • Used to detect workloads that do not make full use of the GPU or are allocated to an oversized GPU
  • GPU utilization above threshold (>90%)
    • Used to detect when the GPU is saturated
  • GPU utilization range above threshold (>25%)
    • Used to detect uneven distribution of GPU compute workload
  • GPU memory utilization below threshold (<10%)
    • Used to detect workloads that do not make full use of the GPU or are allocated to an oversized GPU
  • GPU memory utilization above threshold (>95%)
    • Used to detect when a job is about to run out of GPU memory
  • InfiniBand receive/transmit > 0 when running multi-node workloads
    • Used to identify workloads that are not properly configured to use InfiniBand