<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[WEI ZHANG]]></title><description><![CDATA[Fullstack developer, Technology-driven enthusiast, Creativity-driven engineer]]></description><link>https://i.zhang-wei.me/</link><image><url>https://i.zhang-wei.me/favicon.png</url><title>WEI ZHANG</title><link>https://i.zhang-wei.me/</link></image><generator>Ghost 1.18</generator><lastBuildDate>Wed, 08 Apr 2026 21:13:18 GMT</lastBuildDate><atom:link href="https://i.zhang-wei.me/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Unknown-Week 1]]></title><description><![CDATA[<div class="kg-card-markdown"><ul>
<li>
<p>Concept:<br>
Optimistic lokcing VS Pessimistic locking<br>
Warm cache VS Cold cache<br>
Thundering Herd Problem<br>
Multi-region cache mechanism<br>
Application level cache VS DB level cache<br>
Cache invalidation solution<br>
Race condition<br>
Read after write (RAW)</p>
</li>
<li>
<p>Tool:<br>
consul<br>
zookeeper<br>
Kong<br>
Hadoop daemon</p>
</li>
</ul>
</div>]]></description><link>https://i.zhang-wei.me/unknown-week-1/</link><guid isPermaLink="false">5ae6712657d4ba0014f1cfb7</guid><dc:creator><![CDATA[Wei Zhang]]></dc:creator><pubDate>Mon, 30 Apr 2018 01:34:37 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><ul>
<li>
<p>Concept:<br>
Optimistic lokcing VS Pessimistic locking<br>
Warm cache VS Cold cache<br>
Thundering Herd Problem<br>
Multi-region cache mechanism<br>
Application level cache VS DB level cache<br>
Cache invalidation solution<br>
Race condition<br>
Read after write (RAW)</p>
</li>
<li>
<p>Tool:<br>
consul<br>
zookeeper<br>
Kong<br>
Hadoop daemon</p>
</li>
</ul>
</div>]]></content:encoded></item><item><title><![CDATA[About Me 👋]]></title><description><![CDATA[<div class="kg-card-markdown"><!-- Chatra {literal} -->
<script>
    (function(d, w, c) {
        w.ChatraID = 'B9uEhnybHQggjjTGT';
        var s = d.createElement('script');
        w[c] = w[c] || function() {
            (w[c].q = w[c].q || []).push(arguments);
        };
        s.async = true;
        s.src = (d.location.protocol === 'https:' ? 'https:': 'http:')
        + '//call.chatra.io/chatra.js';
        if (d.head) d.head.</script></div>]]></description><link>https://i.zhang-wei.me/about-me/</link><guid isPermaLink="false">5a1a63a72c89600014f16e60</guid><category><![CDATA[intropage]]></category><dc:creator><![CDATA[Wei Zhang]]></dc:creator><pubDate>Sun, 26 Nov 2017 06:48:27 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><!-- Chatra {literal} -->
<script>
    (function(d, w, c) {
        w.ChatraID = 'B9uEhnybHQggjjTGT';
        var s = d.createElement('script');
        w[c] = w[c] || function() {
            (w[c].q = w[c].q || []).push(arguments);
        };
        s.async = true;
        s.src = (d.location.protocol === 'https:' ? 'https:': 'http:')
        + '//call.chatra.io/chatra.js';
        if (d.head) d.head.appendChild(s);
    })(document, window, 'Chatra');
</script>
<!-- /Chatra {/literal} -->
<p>I'm very open minded to learn and try new stuff. &quot;<strong>Learning by doing</strong>&quot; is my favourite way of touching new things. And I believe failure is always good, it gets me success.</p>
<h3>Highlight At Work(Latest -> Oldest)</h3>
<ul>
<li>
<p>Joined TraceLink <strong>PaaS</strong> product team (3rd generation platform):</p>
<ul>
<li>Designed and implemented first version <strong>Graphql</strong> server, along with schema standard and customize directives</li>
<li>Designed first version <strong>AuthZ</strong> service (also being first generation OPA user</li>
</ul>
</li>
<li>
<p>Joined TraceLink ET platform team (2nd generation platform, internal use only):</p>
<ul>
<li>Designed general <strong>rate limiter lib</strong> for all eng teams (no idea how many of them are still using my lib lol, but it's still a very interesting experience)</li>
<li>Built bunch of internal support tools that help TraceLink developers debug their applications on our platform (I really enjoy building these small tools to improve productivity)</li>
</ul>
</li>
<li>
<p>Joined Vecna VPS team (Patient Information System for VA Medical Centers)</p>
</li>
</ul>
<p>P.S. I'm always looking for interesting and challenging side project to work on. Contact me if you need DEV :)</p>
<h3>Programming Languages</h3>
<p>Java<br>
Node.js<br>
Javascript<br>
PHP<br>
C#<br>
Rego<br>
Solidity</p>
<h3>Frameworks</h3>
<p>Vert.x<br>
DropWizard<br>
Express.js<br>
Mocha.js<br>
Spring<br>
Struts<br>
Angular.js (v1.5)<br>
Codeigniter<br>
.NET</p>
<h3>HTML</h3>
<p>HTML<br>
CSS</p>
<h3>Databases</h3>
<p>MongoDB<br>
MySQL<br>
Postgresql<br>
Redis</p>
<h3>Tools</h3>
<p>Git<br>
Kubernetes<br>
Helm<br>
Bitbucket<br>
Jira<br>
Jenkins<br>
Kibana<br>
Splunk<br>
Intellij<br>
WebStorm<br>
Eclipse<br>
Sublime Text<br>
Tomcat<br>
Nginx</p>
<h3>OS</h3>
<p>macOS<br>
Ubuntu</p>
<h3>Daily Reading</h3>
<p>Medium<br>
Producthunt<br>
HackerNews<br>
Crunchbase</p>
<hr>
<p>When I'm not in front of a computer screen, I'm probably playing soccer ⚽, taking care of my three chinchillas 🐹🐹🐹 and watching 📺 TV series on Netflix/HBO/Hulu/Amazon Prime.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Hello World!]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Hellllllllllllllllo!</p>
</div>]]></description><link>https://i.zhang-wei.me/hello-world/</link><guid isPermaLink="false">5a1a638c2c89600014f16e5d</guid><category><![CDATA[blog]]></category><dc:creator><![CDATA[Wei Zhang]]></dc:creator><pubDate>Sun, 26 Nov 2017 06:47:57 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>Hellllllllllllllllo!</p>
</div>]]></content:encoded></item></channel></rss>