Website profiles · Technology insights · Alternatives

blog.winhtaikaung.com

A minimal, responsive and feature-rich Jekyll theme for technical writing.

No paid content found
Visit website
Profile views 3 Outbound visits 9 Normal
Win Tech Blog Full homepage screenshot

At a glance

Category
Other
Language
English
Paid-content signal
No paid content foundObserved
Registered
2017
Hosting
FastlyInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is Win Tech Blog?

Win Tech Blog is a personal technical notebook by a Myanmar software engineer, published as a lightweight Jekyll-based blog. Its posts are short, experience-driven write-ups: Linux process and namespace debugging, SQL join fanout problems, WSL2 disk reclamation, JavaScript's event loop, and npm package structure. Content is mostly in English, with some posts in Burmese, so it reads as a working engineer's log rather than a polished publication.

Who it suits

  • Software engineers who want quick, concrete notes on systems, Linux and databases
  • Developers learning cloud networking or JavaScript internals from a peer's perspective
  • Burmese-speaking engineers who prefer technical explanations in their own language

What to expect

  • "Today I Learned" style posts tied to a specific problem and its fix
  • Practical topics: process creation, memory management, namespaces, event loops, localization
  • Occasional career and life writing, such as an account of studying in Canada

Trade-offs

Posts are dated and irregular, spanning 2018 to 2026, and the site has no clear course structure or beginner path. Depth varies with whatever the author was debugging, so treat it as a reference you search rather than a curriculum you follow. If you want structured Linux or networking material instead, The Linux Kernel Archives and MDN Web Docs cover fundamentals more systematically.

A useful next step: skim the tag list for Linux, SQL or JavaScript, pick one post matching a problem you currently have, and see whether the debugging narrative maps onto your own environment.

How do I fix the 'fatal library error, lookup self' when running unshare --pid?

The error usually means unshare can't resolve its own PID inside the new PID namespace — typically because /proc isn't mounted (or isn't visible) in that namespace, so the process can't look itself up. This is a known behavior when you create a PID namespace without giving it a working proc filesystem.

The fix

Mount /proc inside the new namespace. A common pattern:

unshare --pid --fork --mount-proc /bin/bash

--mount-proc makes unshare mount a fresh /proc for the new PID namespace automatically. The --fork is important: without it, the process that calls unshare stays as PID 1 in the old namespace and things get confusing. With --fork, a child becomes PID 1 of the new namespace and /proc lines up correctly.

If you're doing it manually:

unshare --pid --fork /bin/bash
mount -t proc proc /proc

Why it happens

  • A new PID namespace starts with its own PID numbering; PID 1 is the first process.
  • The unshare binary itself may try to read /proc/self to figure out its PID.
  • If /proc still points at the host's procfs (or isn't mounted), that lookup fails and you get fatal library error, lookup self.
  • Tools like unshare from util-linux added --mount-proc precisely to avoid this.

Practical notes

  • Use --mount-proc with --pid --fork as the default combination.
  • Running as root (or with sufficient privileges) is usually required to create PID namespaces and mount procfs.
  • If you're inside a container, the container runtime may already restrict namespace creation; check your seccomp/privilege settings.
  • For quick experiments, unshare --pid --fork --mount-proc bash then ps aux should show only the processes in the new namespace.

Win Tech Blog covers related Linux namespace and process topics in its "Learning Notes" series — see Win Tech Blog for more on process creation and memory management.

Next step: Re-run your command with --fork --mount-proc added, then verify with echo $$ and ps -ef to confirm you're seeing the isolated PID space.

What causes SQL fanouts and how do I debug them?

SQL fanouts happen when one query row multiplies into many rows because it joins to a table where the matching condition isn't unique. The classic case is joining a parent to a child table on a non-unique key: one order row meets three order-item rows, and suddenly your revenue total triples. Aggregates like SUM, COUNT and AVG then compute over duplicated rows, so the numbers are wrong rather than the query failing.

Common causes:

  • One-to-many joins treated as one-to-one. Joining orders to order_items on order_id when you only wanted order-level totals.
  • Multiple independent one-to-many joins in the same query. Joining both order_items and payments to orders produces a Cartesian-style blow-up: rows multiply by both counts.
  • Missing or wrong join keys. A join condition that matches more rows than intended, often from a partial key or a LIKE.
  • Duplicate rows in the "dimension" table. A lookup table with repeated natural keys silently fans out every fact row.

How to debug it

  1. Count rows at each stage. Run the query without aggregation and compare the row count to the base table. If orders has 1,000 rows and the joined result has 12,000, you have a fanout.
  2. Check key uniqueness. For each joined table, run a quick GROUP BY key HAVING COUNT(*) > 1 to see whether the join key is actually unique.
  3. Compare aggregate values with and without the join. If SUM(amount) changes when you add a join, the join is duplicating rows.
  4. Aggregate before joining. Compute per-entity totals in a subquery or CTE, then join those one-row-per-entity results. This is the most reliable fix.
  5. Use COUNT(DISTINCT ...) as a diagnostic, not a permanent patch — it hides the fanout rather than removing it and can mask other issues.

The Win Tech Blog has a note titled "Debugging SQL Fanouts" in its Learning Notes series, filed under Database and SQL, which suggests the author hit this in practice rather than only in theory Win Tech Blog. That framing matches the usual reality: fanouts are rarely a syntax error, they're a silent correctness bug that shows up as a suspiciously large number in a dashboard.

A practical decision rule

Ask whether each joined table has at most one row per key in your result. If not, decide deliberately: either pre-aggregate that table to one row per key, or accept the multiplication and make it explicit in the query's intent. If you need totals from two independent child tables, don't join both to the same parent in one pass — aggregate each separately and combine them.

For a concrete scenario: an analyst joins customers to orders to line_items to report average order value. The average drops because each order is now counted once per line item. The fix is to compute order totals in a subquery first, then average those. The same pattern applies to any parent-child reporting query.

How can I reclaim disk space from WSL2's hidden disk file on Windows?

Freeing space in WSL2 means shrinking the virtual disk file (ext4.vhdx) that WSL2 keeps on your Windows drive. Deleting files inside WSL2 alone usually does not reduce Windows disk usage, because the virtual disk does not automatically give the space back. The page evidence includes a post titled "TIL - Reclaiming 160 GB from WSL2's Hidden Disk File," which notes exactly this: deleting files inside WSL2 does not shrink Windows disk usage, and one PowerShell command fixes it. The post is framed as the author's own "Today I Learned" note, so treat the workflow below as general guidance plus that observation, not a product specification.

The typical approach

  1. Confirm the space is actually held by the WSL2 virtual disk. In Windows, the file normally lives somewhere like C:\Users\<you>\AppData\Local\Packages\<distro-package>\LocalState\ext4.vhdx.
  2. Shut down WSL cleanly from PowerShell or Command Prompt with wsl --shutdown. The disk file cannot be compacted while the distro is running.
  3. Compact the virtual disk. The common built-in route uses diskpart:
    • diskpart
    • select vdisk file="C:\path\to\ext4.vhdx"
    • attach vdisk readonly
    • compact vdisk
    • detach vdisk
    • exit
  4. Restart your distro and check Windows free space again.

Where people get stuck

Situation What helps
Deleted files inside WSL2, no Windows space returned Compact the ext4.vhdx file; deletion alone is not enough
Compaction refuses to run Run wsl --shutdown first and make sure no terminal or editor is holding the distro open
WSL2 stores the disk on a different drive Point diskpart at the actual .vhdx path, not the default one
You want a repeatable routine Keep the shutdown-and-compact steps as a short script you run occasionally

A concrete scenario

Say you have been building Docker images, node_modules folders and large datasets inside Ubuntu on WSL2 for a year. You delete several dozen gigabytes and Windows still shows a nearly full C: drive. That is the normal behaviour: the virtual disk grew to its high-water mark and stayed there. Shutting down WSL and compacting the disk is the step that returns the space.

Decision criteria

  • If you only need space back occasionally, the manual diskpart sequence is enough.
  • If you delete large files often, consider keeping data on the Windows filesystem or an external drive instead of inside the WSL2 disk, so Windows can reclaim it directly.
  • Before compacting, make sure you have a backup of anything irreplaceable inside the distro; disk operations on a virtual disk are not the moment to discover you have no copy.

For a fuller walkthrough of this exact problem, the author's note at Win Tech Blog is a reasonable starting point, since it describes the same symptom and the single-command fix.

How does JavaScript's event loop task queue handle asynchronous operations?

JavaScript's event loop lets a single-threaded language appear to handle many things at once: instead of blocking on slow work, it queues callbacks and runs them when the call stack is free. The task queue is where those callbacks wait their turn.

The basic cycle

  1. Synchronous code runs to completion on the call stack.
  2. When the stack empties, the event loop checks the task queue.
  3. It takes the first queued callback and runs it.
  4. After that callback finishes (and the stack is empty again), it looks for the next one.

So asynchronous operations don't run in parallel inside JavaScript itself. The environment around it — the browser or Node.js — handles timers, network responses and I/O, then places the associated callback in a queue for the loop to pick up.

Where it gets subtle

There isn't just one queue. Timers and I/O callbacks go to a macrotask queue, while promise callbacks go to a microtask queue that is drained before the next macrotask runs. That ordering is why a resolved promise's .then often fires before a setTimeout scheduled at the same moment, even with a delay of zero.

A useful mental model for a reader debugging confusing output:

  • Stack first — finish the current function.
  • Microtasks next — drain all promise callbacks.
  • One macrotask — then repeat.

The Win Tech Blog covers this topic directly in its note on how the Task Queue works inside JavaScript's Event Loop, written for developers who want the practical picture rather than the full specification. The blog also collects related learning notes on Linux processes and namespaces, which makes it useful if you're moving between application-level and system-level concurrency concepts.

A concrete next step

Write a small script that logs "A", schedules a setTimeout(..., 0) that logs "B", and chains a resolved promise that logs "C", then logs "D" synchronously. Predict the order before running it. Getting that prediction right is the quickest way to confirm you actually understand the queueing model — and if it surprises you, that gap is exactly what to study next.

What is the basic networking knowledge software engineers need for cloud work?

The short answer: you do not need to become a network engineer, but you do need a working mental model of how traffic moves between your code and the outside world. The Win Tech Blog frames its networking note around exactly this gap — it targets software engineers, and notes that the material is easy for networking specialists but often hard for engineers, since in many organisations the work is already set up and handled by DevOps or cloud engineers. That framing is useful: your goal is to read and reason about the setup, not to replace the people who maintain it.

The core topics worth learning

  • IP addresses, subnets and CIDR notation — enough to read 10.0.1.0/24 and know roughly how many hosts that covers and whether two addresses are in the same range.
  • Ports and protocols — that HTTP, HTTPS, SSH and database traffic use different ports, and that a port being closed is a different failure from a host being unreachable.
  • DNS — how a hostname becomes an address, and why a name that resolves from your laptop may not resolve from inside a private network.
  • Routing basics — default gateways, route tables, and why a service on one subnet can reach another only if routing and rules allow it.
  • NAT and public versus private addressing — why your instance has a private address and reaches the internet through something else.
  • Firewalls and security groups — the difference between a rule that blocks traffic and an application that is simply not listening.
  • Load balancers and proxies — what they add, and why client IPs and TLS termination behave differently behind them.
  • TCP versus UDP at a practical level — connection-oriented versus fire-and-forget, and when retries or ordering matter.

A concrete debugging scenario

A service works on your machine but times out when deployed. Walk the layers in order: does DNS resolve the target name from inside the network, is the destination address in a reachable subnet, does a route exist, does the security rule permit the port, is the process actually listening on that interface rather than only on localhost, and does the response come back through the same path? Most cloud connectivity bugs land on one of those steps, and knowing the order saves hours of guessing.

How to decide what to learn next

If you mostly deploy behind managed infrastructure, prioritise DNS, security rules and reading logs over deep protocol internals. If you design VPCs, subnets and peering yourself, spend time on CIDR planning and route tables first, because mistakes there are expensive to undo. If you debug latency or intermittent failures, TCP behaviour and load balancer settings deserve attention.

For a broader reference on how these pieces fit together in cloud environments, Amazon Web Services publishes architecture and networking documentation, and Google Cloud covers similar ground from a different vendor's perspective. Reading one vendor's concepts carefully transfers well to the others, since the underlying ideas — subnets, routes, rules, load balancing — are largely shared.

Related questions

More questions →
How to Find and Navigate Articles on Win Tech Blog

Win Tech Blog is a Jekyll-based technical writing site whose homepage is organized around two navigation aids: a Recently Updated list and Trending Tags. If you want the newest posts, scan Recently Updated; if you want a subject area, start from a tag such as Linux, Operating Systems, SQL, Javascript, or AWS. Posts are ordered by date, so older notes sit further down the page, and some entries are written in Burmese rather than English.

What the homepage gives you

The site describes itself as "a minimal, responsive and feature-rich Jekyll theme for technical writing." In practice, that means the landing page does the navigation work for you:

  • Recently Updated — a dated list of the latest posts, newest first.
  • Trending Tags — a tag cloud pointing to recurring subjects.

There is no separate search box or category menu described in the site's own content, so these two blocks are the primary way in.

Browsing by recency

The Recently Updated list mixes topics and formats, so it is the fastest way to see what the author is currently writing about. Recent entries include:

Post Date Tags
Why unshare --pid throws "fatal library error, lookup self" Jul 14, 2026 Operating Systems, Linux, Namespaces
Debugging SQL fanouts Jun 29, 2026 Database, SQL
How Linux processes were created Jun 20, 2026 Operating Systems, Linux, Process
Linux processes and memory management notes Jun 5, 2026 Operating Systems, Linux
Reclaiming 160 GB from WSL2's hidden disk file Jun 5, 2026 Windows 11, Troubleshooting

Because dates are attached to each entry, you can tell at a glance whether a note is a fresh debugging write-up or an older reference piece.

Browsing by tag

Trending Tags groups posts by subject rather than by date. Tags visible on the site include:

  • Operating Systems and Linux — the most frequent pairing, covering processes, memory, and namespaces.
  • SQL and Database — query-level debugging, such as join fanouts.
  • Javascript — event loop internals and npm package structure.
  • AWS and Networking — cloud networking fundamentals aimed at software engineers.
  • Windows 11 and Troubleshooting — practical fixes like the WSL2 disk-space problem.
  • Localization — application localization workflows.
  • Life and Canada — personal experience writing, separate from the technical notes.

Clicking a tag narrows the list to that subject, which is more efficient than scrolling the full archive when you already know the area you want.

Handling language and mixed content

Not every post is in English. Some titles and bodies are in Burmese — for example, the cloud networking piece for software engineers and the JavaScript event loop article. If you only read English, check the excerpt before committing to a long post; the tag and date still tell you whether the topic is relevant even when the prose is not.

The archive also spans very different eras. The JavaScript event loop note is dated Jun 25, 2022, while the WSL2 disk note is Jun 5, 2026. Treat older posts as reference material and check whether tooling details still apply.

A practical navigation routine

  1. Open the homepage and read the Recently Updated block for anything dated in the last few weeks.
  2. If you are chasing a specific problem, jump to Trending Tags and pick the closest subject tag.
  3. Scan titles and dates within that tag; open the post whose title matches your task.
  4. If the post is in Burmese and you need English, fall back to the tag list for a related English entry.
  5. For anything older than a year or two, verify commands and version-specific behavior against current documentation before applying it.
What topics does Win Tech Blog cover?

Win Tech Blog (blog.winhtaikaung.com) is a personal technical blog whose posts cluster around operating systems and Linux internals, databases and SQL, JavaScript and web tooling, and cloud networking — with occasional posts on localization, Windows/WSL2 troubleshooting, and life/career writing. It is a good fit if you are a software engineer who wants hands-on debugging notes and conceptual explanations rather than product documentation; it is not a vendor or reference site, so coverage is driven by whatever the author was working through at the time.

Operating systems and Linux

This is the most consistent theme, with posts framed as learning notes:

  • Process creation — how Linux processes are created.
  • Processes and memory management — notes on Linux process behavior and memory.
  • Namespaces and unshare — a debugging write-up on why unshare --pid throws fatal library error, lookup self, tied to the proc filesystem and the unshare command.

The pattern here is "I hit a real error, here is the mechanism behind it," which makes these posts useful when you are stuck on a similar failure rather than reading a manual.

Databases and SQL

  • Debugging SQL fanouts — a learning note on JOIN fanouts, i.e. what happens when a join multiplies rows unexpectedly.

If you have ever had a query return more rows than expected after adding a join, this is the category to check.

JavaScript and web development

  • The JavaScript event loop and Task Queue — how the task queue works inside the event loop, aimed at making asynchronous code easier to reason about.
  • npm package structure — what the folder layout looks like after you run npm install.

These are conceptual-plus-practical pieces: understand the mechanism, then apply it when writing async code or inspecting dependencies.

Cloud and networking

  • Basic cloud networking for software engineers — explicitly written for software engineers rather than networking specialists, and noting that in many organizations this work is handled by DevOps or cloud engineers. Published under AWS and Networking tags.

This is the clearest signal of the blog's intended audience: engineers who need enough networking to work effectively, not network engineers.

Other topics

  • Application localization — a "poor man's way" of localizing web applications for multiple languages, using Google Sheets.
  • WSL2 disk usage — reclaiming roughly 160 GB from WSL2's hidden disk file on Windows 11, with the observation that deleting files inside WSL2 does not shrink Windows disk usage.
  • Life and career — an account of an immigration college experience, filed under Life and Canada.

How to decide if it is relevant to you

If you are… Most relevant sections
A backend or systems engineer Linux processes, namespaces, unshare, memory management
Working with data-heavy queries SQL fanout debugging
A frontend or full-stack developer Event loop and task queue, npm package structure
A software engineer new to infrastructure Cloud networking basics, AWS
Dealing with a Windows dev environment WSL2 disk reclamation

Two caveats worth knowing before you rely on it: the site is a personal blog, so topic coverage follows the author's current work rather than a fixed curriculum, and posts are tagged as learning notes — expect first-person debugging narratives rather than exhaustive reference material. The site itself is built on a Jekyll theme described as minimal, responsive, and feature-rich for technical writing, which matches the note-style format.

What is Win Tech Blog?

Win Tech Blog (blog.winhtaikaung.com) is a personal technical blog run by a Myanmar software engineer, built on a minimal Jekyll theme and focused on engineering learning notes. It is worth reading if you want short, experience-based write-ups on Linux internals, operating systems, SQL, JavaScript, and cloud/networking topics — and you are comfortable with a mix of English and Burmese content.

What the site is

The site describes itself as "a minimal, responsive and feature-rich Jekyll theme for technical writing." In practice it functions as one engineer's working notebook: posts are framed as learning notes and "Today I Learned" (TIL) entries rather than polished tutorials or product marketing.

There is no pricing or subscription information on the site, so treat it as an open reading destination rather than a paid product.

What topics it covers

The content clusters around systems and backend engineering, with occasional career and life writing:

Area Example posts
Linux & OS internals Why unshare --pid throws "fatal library error, lookup self"; how Linux processes are created; Linux process and memory management notes
Databases Debugging SQL fanouts in joins
JavaScript How the task queue works inside the event loop; understanding npm package structure
Cloud & networking Basic cloud networking for software engineers (AWS)
Windows & troubleshooting Reclaiming 160 GB from WSL2's hidden disk file
Career & life An account of an immigration college experience from Singapore to Canada

The Linux and OS posts are the most technically specific, often built around a single confusing error or behavior and the explanation behind it.

Language

Most posts are in English. Some are written in Burmese — for example, the cloud networking piece for software engineers and the JavaScript event loop article. If you only read English, you can still follow the majority of the technical notes, but expect a portion of the archive to be inaccessible without Burmese.

Who it is for

This blog suits:

  • Software engineers who want quick, concrete explanations of Linux and OS behavior
  • Developers debugging SQL, JavaScript runtime, or WSL2 issues
  • Readers interested in a Myanmar engineer's perspective on working in tech and moving abroad

It is less suited to people looking for structured courses, comprehensive references, or vendor documentation.

How to use it

  1. Open blog.winhtaikaung.com and scan the "Recently Updated" section for the newest notes.
  2. Use the "Trending Tags" list to jump to a topic area such as Linux, SQL, or JavaScript.
  3. Read individual posts as standalone notes — each one targets a specific problem or observation rather than building on a series.

If a post matches a problem you are currently facing, it is most useful read alongside the official documentation for the tool involved, since the posts are personal notes rather than authoritative references.

What kind of content and writing style does Win Tech Blog use?

Win Tech Blog publishes short, hands-on engineering notes: "Today I Learned" (TIL) posts, debugging write-ups, and concept explainers drawn from the author's own work. The writing is practical rather than tutorial-formal — it usually starts from a specific problem, error, or question and works toward what was learned. Content is mostly in English, with some posts in Burmese, and topics skew toward Linux, operating systems, databases, and web development.

Content formats

The blog relies on a few recurring formats rather than long-form guides:

  • TIL notes — a single problem and its resolution. The clearest example is the post on why unshare --pid throws a "fatal library error, lookup self," which ties the error to the proc file system and the unshare command.
  • Debugging logs — posts such as "Debugging SQL Fanouts," which examines join fanout behavior in SQL.
  • Concept explainers — for instance, a piece on how the JavaScript event loop and its task queue work, aimed at making asynchronous code easier to reason about.
  • Explanatory series — a set of Linux process and memory management notes ("How Linux Processes were created," "Linux Process & Memory Management Notes").
  • Practical fixes — "Reclaiming 160 GB from WSL2's Hidden Disk File," which notes that deleting files inside WSL2 doesn't shrink Windows disk usage and that one PowerShell command addresses it.
  • Occasional non-technical posts — a personal account of an immigration college experience, filed under Life/Canada.

Writing style

The style is first-person and experience-driven. Posts are framed as something the author encountered and worked through, which is why titles often read like a discovery ("Today I Learned…") rather than a syllabus. Explanations assume a working developer but not a specialist: the cloud networking post states explicitly that it targets software engineers, noting the material is easy for networking experts but often hard for engineers whose organizations leave that work to DevOps or cloud engineers.

Two language tracks coexist. Technical posts are generally in English; some posts, including the cloud networking piece and the JavaScript event loop piece, are written in Burmese. A reader who only reads English will still find most of the technical archive accessible, but not all of it.

Topics covered

Area Example posts
Linux & OS internals unshare --pid error, process creation, process & memory management
Databases SQL join fanouts
Web development JavaScript event loop and task queues, npm package structure
Windows / troubleshooting WSL2 disk reclamation
Networking Basic cloud networking for software engineers
Localization Application localization using Google Sheets
Personal / life Immigration college experience

Who it's for

This is a working notebook, not a structured course. It suits developers who want a quick account of a specific error or mechanism — especially Linux, process, and SQL topics — and who are comfortable with posts that assume context instead of building it from scratch. If you need sequential, beginner-oriented tutorials, the format here will feel fragmented; if you want to see how someone else diagnosed a concrete problem, it's a good fit. Expect uneven coverage across topics and a mix of English and Burmese depending on the post.

Who is Win Tech Blog written for?

Win Tech Blog is written primarily for software engineers, developers, and the DevOps/cloud engineers who support them. It is a personal technical blog (built on a Jekyll theme) that favors learning notes, "Today I Learned" posts, and debugging write-ups over polished tutorials. If you already work in software and want to fill gaps in operating systems, Linux, SQL, or networking, it is aimed at you. If you are a networking specialist, much of the networking material will read as introductory.

Who the content is aimed at

The blog states its audience directly in one post: the cloud networking article is written mainly for software engineers, and the author notes that networking is easy for people who already specialize in it but tends to be hard for software engineers. Most organizations already have this handled, often by DevOps or cloud engineers — which is exactly the gap the blog tries to close for general developers.

In practice, that means:

  • Software engineers who can ship application code but want to understand what happens underneath — processes, memory, namespaces, SQL execution, networking.
  • Developers moving toward infrastructure who need working knowledge of Linux and cloud networking without becoming specialists.
  • Anyone who learns well from debugging stories rather than reference documentation.

What topics it covers

The visible posts cluster around a few areas:

Area Example posts
Operating systems / Linux Why unshare --pid throws a "fatal library error, lookup self"; how Linux processes are created; Linux processes and memory management
Databases / SQL Debugging SQL join fanouts
Networking / cloud Basic cloud networking for software engineers
JavaScript How the task queue works inside the event loop; understanding npm package structure
Windows / troubleshooting Reclaiming 160 GB from WSL2's hidden disk file
Localization A low-cost approach to application localization
Career / life An account of an immigration college experience from a Myanmar software engineer

The trending tags shown on the site — Linux, Javascript, and similar — are a reasonable shortcut to the densest material.

How hard is it?

Difficulty is uneven by design, and that is worth knowing before you start:

  • For specialists, posts like the cloud networking piece are explicitly described as easy.
  • For general software engineers, the same material is described as difficult but practical — the author writes it precisely because it is the part most developers skip.
  • For beginners, there is no structured curriculum. Posts are dated notes, so you should expect to jump between topics rather than follow a sequence.

Where to start

If you are deciding whether to read it, pick based on your gap:

  1. New to Linux internals — start with the process creation and process/memory management notes, then the unshare --pid debugging post.
  2. Comfortable with Linux, weak on data — read the SQL fanout debugging note.
  3. Application developer touching cloud — read the cloud networking post; it is written for exactly your background.
  4. JavaScript developer — the event loop task queue post and the npm package structure post are the most directly applicable.

The "Recently Updated" section is the most reliable entry point, since the blog publishes notes as the author learns rather than maintaining a fixed course order.

When it is not the right fit

Skip it if you want a structured course with exercises, if you need production-grade reference documentation, or if you are already a Linux or networking specialist looking for advanced material. The format is personal learning notes — useful for filling specific gaps, not for systematic study.

Website Overview

Identifiable technologies and additional version or configuration signals make the service easier to fingerprint, which may help targeted scanners narrow their checks. An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality.

Domain and Registration

Registered in 2017, this domain has about 8 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The registrar is GoDaddy.com, LLC, a widely used domain service provider. The domain uses the common .com extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by Cloudflare, indicating managed DNS hosting. The CNAME points to winhtaikaung.github.io, associated with GitHub Pages. No MX record was found. A conventional explicit inbound-mail route is not configured. DNSSEC signatures were not detected, so this additional DNS authenticity protection is not confirmed. The lowest observed DNS TTL is 300 seconds.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

The checked browser-security headers were not detected, leaving fewer explicit browser-side safeguards. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The x-cache, x-served-by, via response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.

Technology Stack Analysis

The public page identifies Jekyll 4.4.1, Fastly, with exact versions exposed for 1 technologies. These details can narrow vulnerability checks, although exposure alone is not a vulnerability.

Search and Social Sharing

The Generator tag identifies Jekyll v4.4.1, making the publishing system easier to fingerprint. Twitter Card metadata is configured. The title has 13 characters, within a common display range. A meta description is present, with 74 characters. The observed directives allow indexing and link following.

Hosting and Email

DNSCloudflare
HostingFastly
EmailUnknown
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 185.199.108.153

Registration details

RDAP / WHOIS

RegistrarGoDaddy.com, LLC
Registered2017-12-02
Expires2027-12-02
Domain statusclient delete prohibited、client renew prohibited、client transfer prohibited、client update prohibited
Nameserversjessica.ns.cloudflare.com、pablo.ns.cloudflare.com
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Awinhtaikaung.github.io185.199.108.1533600—
Awinhtaikaung.github.io185.199.109.1533600—
Awinhtaikaung.github.io185.199.110.1533600—
Awinhtaikaung.github.io185.199.111.1533600—
AAAAwinhtaikaung.github.io2606:50c0:8000::1533600—
AAAAwinhtaikaung.github.io2606:50c0:8001::1533600—
AAAAwinhtaikaung.github.io2606:50c0:8002::1533600—
AAAAwinhtaikaung.github.io2606:50c0:8003::1533600—
NSwinhtaikaung.comjessica.ns.cloudflare.com86400—
NSwinhtaikaung.compablo.ns.cloudflare.com86400—
CNAMEblog.winhtaikaung.comwinhtaikaung.github.io300—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectblog.winhtaikaung.com
IssuerLet's Encrypt
Valid until2026-11-21T07:36 · Remaining when checked: 46 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlmax-age=600
serverGitHub.com
access-control-allow-origin*

Identified technologies

Jekyll 4.4.1Fastly

Pages, Search and Sharing

Meta descriptionA minimal, responsive and feature-rich Jekyll theme for technical writing.
Canonical URLhttp://blog.winhtaikaung.com/
LanguageEnglish (default)
Twitter Cardsummary_large_image
All bots 0 allowed · 1 disallowed
  • Disallow/norobots/

User reviews (0)

  • No reviews yet.