<?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"><channel><title><![CDATA[Lukas's Devlog]]></title><description><![CDATA[A monthly notebook on digital identity, trust infrastructure, and engineering reality — written from Luxembourg.]]></description><link>https://blog.lukasjhan.com</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 13:38:30 GMT</lastBuildDate><atom:link href="https://blog.lukasjhan.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Contributing DCQL Null Matching to the EUDI Reference Wallet]]></title><description><![CDATA[On contributing code, for the first time, to the EU's official reference wallet ecosystem.

DCQL and Null Matching
For readers who don't work in digital identity, a very short primer. There's a query ]]></description><link>https://blog.lukasjhan.com/contributing-dcql-null-matching-to-the-eudi-reference-wallet</link><guid isPermaLink="true">https://blog.lukasjhan.com/contributing-dcql-null-matching-to-the-eudi-reference-wallet</guid><category><![CDATA[Europe]]></category><category><![CDATA[digital identity]]></category><category><![CDATA[eIDAS 2.0]]></category><category><![CDATA[EUDI]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Thu, 16 Apr 2026 01:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/67419acd69fb6b5b74617ac3/3e05a754-6e73-4a8f-841d-f85edd0009a5.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p><em>On contributing code, for the first time, to the EU's official reference wallet ecosystem.</em></p>
</blockquote>
<h2>DCQL and Null Matching</h2>
<p>For readers who don't work in digital identity, a very short primer. There's a query language that verifier services use to ask a wallet "show me this kind of credential, matching these conditions." It's called <strong>DCQL (Digital Credentials Query Language)</strong>, and it's defined in <a href="https://openid.net/specs/openid-4-verifiable-presentations-1_0.html">OpenID for Verifiable Presentations</a>.</p>
<p>One small feature of DCQL is <strong>null matching</strong>. When you query an array-typed field inside a credential — say, <code>nationalities</code> for someone who holds multiple citizenships — you can put <code>null</code> in the path to mean "match <strong>any element</strong> of this array":</p>
<pre><code class="language-json">{ 
    "path": ["nationalities", null], 
    "values": ["LU", "FR", "DE"] 
}
</code></pre>
<blockquote>
<p><em>Does the user's nationalities contain any of LU, FR, or DE?</em></p>
</blockquote>
<p>DCQL null matching applies to <strong>JSON-based credentials</strong> (such as SD-JWT VC). It does <strong>not</strong> apply to mdoc-based credentials, whose query structure is different and has no null wildcard concept. Everything in this post is about the JSON-based side.</p>
<h2>The Problem: the Official EUDI Reference Wallet Didn't Support Null Matching</h2>
<p>The iOS stack of the <a href="https://github.com/eu-digital-identity-wallet">EUDI Wallet reference implementation</a> — the official reference codebase maintained by the European Commission — did not support DCQL null matching. The same query that worked correctly against the Android stack silently failed on iOS.</p>
<p>So I fixed it and pushed the change upstream. The fix spanned two libraries, and both PRs were merged within days:</p>
<ul>
<li><p><a href="https://github.com/eu-digital-identity-wallet/eudi-lib-ios-openid4vp-swift/pull/179"><strong>PR 179 — eudi-lib-ios-openid4vp-swift</strong></a></p>
</li>
<li><p><a href="https://github.com/eu-digital-identity-wallet/eudi-lib-ios-wallet-kit/pull/313"><strong>PR 313 — eudi-lib-ios-wallet-kit</strong></a></p>
</li>
</ul>
<p>More than the technical details, what I want to share is <strong>how this contribution felt.</strong></p>
<h2>What It Means to Contribute to an Official Reference Implementation</h2>
<p>The EUDI Wallet reference implementation is the official codebase that every EU Member State builds on when shipping its own national wallet. And Europe is running it as <strong>open source</strong>. I genuinely love this.</p>
<p>It could have been done differently. The European Commission could have awarded a single closed-source vendor contract, or left each Member State to build from scratch. Instead, they chose to <strong>publish on GitHub, accept external contributions, and run a real review process.</strong> That means an outside engineer — someone who is neither part of any EU institution nor an officially selected vendor — can find a bug, open a pull request, and actually see the fix merged into a codebase that downstream national pilots will pick up.</p>
<p>That is not a trivial choice. Running public infrastructure as open source means absorbing the cost of external review, security scrutiny, and governance coordination. Choosing to do that anyway — and reviewing and merging external contributors' PRs within days — is, I think, one of the reasons the EU digital identity ecosystem is moving at the pace and quality it is today.</p>
<p>A sincere thank you to the EUDI maintainers for the fast review cycle. The feeling of <strong>"my work is welcome here"</strong> is what makes the next contribution happen. I felt that again this time, and it matters.</p>
<h2>What's Next</h2>
<p>EUDI isn't the only DCQL implementation missing null matching. Looking around the ecosystem, <strong>there seem to be quite a few places where this is still not supported</strong>. My plan is to slowly go through them and contribute fixes where I can. I'd like the digital identity ecosystem to reach a state where querying array fields of JSON-based credentials is something that just works — that's one of my small personal goals right now.</p>
<p>And most of all — Europe, thank you for running your public infrastructure in the open. 🇪🇺</p>
<hr />
<p><em>Links</em></p>
<ul>
<li><p><a href="https://github.com/eu-digital-identity-wallet/eudi-lib-ios-openid4vp-swift/pull/179"><em>PR 179 — eudi-lib-ios-openid4vp-swift</em></a></p>
</li>
<li><p><a href="https://github.com/eu-digital-identity-wallet/eudi-lib-ios-wallet-kit/pull/313"><em>PR 313 — eudi-lib-ios-wallet-kit</em></a></p>
</li>
<li><p><a href="https://openid.net/specs/openid-4-verifiable-presentations-1_0.html"><em>OpenID for Verifiable Presentations (DCQL)</em></a></p>
</li>
<li><p><a href="https://github.com/eu-digital-identity-wallet"><em>EUDI Wallet — European Commission</em></a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[A Year Later, in Singapore: Reflecting on IATA WDS 2026]]></title><description><![CDATA[Last September and November, I flew to Montreal and Geneva for the IATA Data & Tech PoC Workshop. We had a vision, a roadmap, and the belief that wallet-based digital identity could genuinely change h]]></description><link>https://blog.lukasjhan.com/a-year-later-in-singapore-reflecting-on-iata-wds-2026</link><guid isPermaLink="true">https://blog.lukasjhan.com/a-year-later-in-singapore-reflecting-on-iata-wds-2026</guid><category><![CDATA[iata]]></category><category><![CDATA[wds]]></category><category><![CDATA[digital identity]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Mon, 13 Apr 2026 01:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/67419acd69fb6b5b74617ac3/73319225-ca05-45ef-9344-1a5514521436.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last September and November, I flew to Montreal and Geneva for the IATA Data &amp; Tech PoC Workshop. We had a vision, a roadmap, and the belief that wallet-based digital identity could genuinely change how travelers move through airports and how airlines verify the partners they work with. What we didn't have yet was the thing every project needs to become real: a working demo, shown to the people who will actually use it.</p>
<p>This week, in Singapore, we had that demo. And it worked.</p>
<h2>The Project, One Year On</h2>
<p>The two projects I've been contributing to as part of <strong>Hopae</strong> — <a href="https://github.com/iata-poc/iata-dat-poc-c2-verifying-digital-identity-in-distribution-process"><em>Verifying Digital Identity in the Distribution Process</em></a> and <a href="https://github.com/iata-poc/iata-dat-poc-c2-di-contactless-travel"><em>Contactless Travel</em></a> — are part of the official IATA Proof of Concept Cycle 2. These are not side experiments. They're<br />pilots that airlines like <strong>Air Canada, British Airways, Qatar Airways, Japan Airlines, and Air New Zealand</strong> have bought into, alongside airports (Hong Kong International, Bangalore International) and technology partners ranging from Google Wallet and Amadeus to SITA, NEC, Tip.com and Infosys.</p>
<p>For the past months, the work has been quiet: specs, code, interoperability tests, long threads about edge cases in OpenID4VP and ISO 23220(Photo ID). You don't really feel the weight of what you're building until you're in a room with the airlines who asked for it.</p>
<p>At WDS this week, I felt it.</p>
<h2>The Presentation</h2>
<p>Seeing the work presented on stage — in front of the people who will carry this forward into production — was one of the most meaningful moments of my year. The presentation was excellent. Credit belongs to the entire consortium: the airlines who pushed for it, the tech partners who built it, and the standards people who made sure the pieces fit together.</p>
<p>But what struck me most wasn't the polish. It was realizing that an idea many of us have been quietly working on for years — <strong>that a traveler's digital identity can live in their wallet and work everywhere</strong> — is no longer theoretical. It has a working form. It has airlines that believe in it. And it has a path to production.</p>
<p>I've been contributing to digital identity across a lot of contexts: SD-JWT, ISO 18013, EUDI, wallet libraries. Aviation feels different. Aviation is <strong>global by nature</strong> — you<br />can't solve it one country at a time. Which makes contributing to it feel bigger, more fragile, and more consequential, all at once.</p>
<h2>After WDS: The OneID Workshop</h2>
<p>When WDS wrapped up, a group of us went to the <strong>OneID Workshop</strong> — IATA's initiative for a seamless, identity-based passenger journey across booking, check-in, bag drop, security, boarding, and border control.</p>
<p>The workshop was one of those rare conversations where everyone in the room is honest about the state of the transition. Not the marketing version — the real version. Where are we? What's working? What isn't? What are the parts that still keep us up at night, technically, operationally, and regulatorily?</p>
<p>I left with more energy than I walked in with. There's so much still to do, and so many thoughtful people doing it.</p>
<h2>Looking Forward</h2>
<p>Cycle 2 is a milestone, not a destination. The next PoC cycle will bring new challenges: deeper integration with legacy PSS stacks, more diverse wallet ecosystems, harder interoperability edges, and the regulatory alignment needed to move all of this from experimental to operational.</p>
<p>I'm genuinely excited to see where it goes. I'm grateful — to <strong>Hopae</strong> for the trust, to the <strong>IATA team</strong> for running a PoC process that actually produces working artifacts,<br />and to every engineer, product person, and policy contributor I've been lucky enough to work alongside over the past months.</p>
<p>Singapore was the moment this year of quiet work became visible. I can't wait for the next cycle.</p>
]]></content:encoded></item><item><title><![CDATA[Stop Building, Start Solving]]></title><description><![CDATA[In a startup, your most finite resource isn't money, it's time. And nothing wastes it faster than spending days building something that was never going to solve the actual problem.
There's a trap that]]></description><link>https://blog.lukasjhan.com/stop-building-start-solving</link><guid isPermaLink="true">https://blog.lukasjhan.com/stop-building-start-solving</guid><category><![CDATA[startup]]></category><category><![CDATA[Developer]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Tue, 31 Mar 2026 01:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/67419acd69fb6b5b74617ac3/f5d2f285-ea74-48a4-9354-616b14140918.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In a startup, your most finite resource isn't money, it's time. And nothing wastes it faster than spending days building something that was never going to solve the actual problem.</p>
<p>There's a trap that almost every startup engineer falls into at some point. A problem surfaces. You look at it, recognize a pattern, and think: <em>"Oh, I know what to do here."</em> So you start building. You move fast, you feel productive and three days later, you ship something that technically works, but doesn't actually fix anything.</p>
<p>The assumption was wrong from the start. You just didn't stop long enough to check it.</p>
<h2><strong>A story that still stings.</strong></h2>
<p>We had a recurring issue: certain features were failing in production, semi-randomly, often enough to erode user trust. The obvious answer seemed clear. We didn't have enough test coverage. So we invested time setting up an E2E test suite. It wasn't trivial. We wrote scenarios, wired up the pipeline, and got it running.</p>
<p>The failures kept happening.</p>
<p>After digging deeper, I finally found the real issue. It wasn't a lack of tests. It was that the underlying code structure made it <em>easy</em> for humans to make mistakes. The architecture had implicit assumptions baked in, no guardrails, and places where a small misstep would silently propagate into a bug. People weren't being careless. The structure was setting them up to fail.</p>
<p>Once we restructured that part of the system, adding explicit contracts, removing ambiguous states, making the wrong path harder to take than the right one. The failures stopped. Not because we caught more bugs, but because the bugs stopped being introduced in the first place.</p>
<p>The E2E tests were a reasonable guess. But they were solving for a symptom, not the cause. We lost real time before we stopped and asked the harder question: <em>what is actually broken here?</em></p>
<h2><strong>The real skill is finding what actually works</strong></h2>
<p>Before committing time to a solution, the question isn't <em>"does this make sense?"</em>, it's <em>"have I confirmed this actually solves the problem?"</em> Those are very different questions.</p>
<p>In practice, this means:</p>
<ul>
<li><p><strong>Define the problem precisely before touching code.</strong> Vague problems produce misdirected solutions.</p>
</li>
<li><p><strong>Validate your assumption cheaply first.</strong> A 30-minute spike or a quick test can save 3 days of wasted implementation.</p>
</li>
<li><p><strong>Ask "will this actually fix it?" — not "does this look right?"</strong> Intuition is a starting point, not a verdict.</p>
</li>
</ul>
<p>Startups don't fail because people weren't working hard enough. They often fail because people were working hard on the wrong things, convinced they were on the right track.</p>
<p>Problem-solving isn't about finding an answer that sounds good. It's about finding one that works and proving it before you bet your sprint on it.</p>
]]></content:encoded></item><item><title><![CDATA[A Few Months in Luxembourg: EUDI, Interoperability, and Everything In Between]]></title><description><![CDATA[I spent the last few months based in Luxembourg, and it turned out to be one of the more formative stretches of my career so far.
The main reason I was there was work, specifically, deep focus time on]]></description><link>https://blog.lukasjhan.com/a-few-months-in-luxembourg-eudi-interoperability-and-everything-in-between</link><guid isPermaLink="true">https://blog.lukasjhan.com/a-few-months-in-luxembourg-eudi-interoperability-and-everything-in-between</guid><category><![CDATA[ Luxembourg]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Thu, 26 Feb 2026 01:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/67419acd69fb6b5b74617ac3/6319a441-bde2-469d-8910-cae660bca661.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I spent the last few months based in Luxembourg, and it turned out to be one of the more formative stretches of my career so far.</p>
<p>The main reason I was there was work, specifically, deep focus time on the EUDI Wallet ecosystem. Being embedded in Europe made a real difference. Proximity to the people, the standards bodies, and the conversations happening in real time meant I could move faster and understand the context behind the spec decisions in a way that's hard to get remotely.</p>
<h2><strong>UNFOLD &amp; Interop Week in Paris</strong></h2>
<p>The highlight was traveling to Paris for the UNFOLD event and the interoperability week that followed. These gatherings brought together wallet providers, verifiers, and identity ecosystem players from across Europe. All trying to make their implementations actually talk to each other.</p>
<p>We came in with one goal: prove that our stack works with everyone else's. And we did. We achieved full interoperability with France Identité, and hit 100% interoperability across all participating implementations. Seeing the pieces click together across different teams, different tech stacks, and different national contexts, that was genuinely satisfying in a way that passing your own test suite never quite is.</p>
<h2><strong>Beyond the Work</strong></h2>
<p>Luxembourg itself surprised me. It's a small country, but the density of people doing interesting things, in tech, in policy, in finance, is remarkable. I met people from all over Europe and had conversations I wouldn't have had anywhere else.</p>
<p>And of course, being in the heart of Europe meant weekends could look like Paris, Brussels, or somewhere entirely unexpected. It gave me a different lens for understanding how Europe thinks about identity, privacy, and digital infrastructure, not just as technical problems, but as deeply cultural ones.</p>
]]></content:encoded></item><item><title><![CDATA[2025: A Year in Review]]></title><description><![CDATA[What a year.
Looking back, 2025 was packed — sometimes overwhelming, but always moving forward.

Conferences, Workshops, and Global Connections
I lost count of how many events I attended and presented at this year: IIW, EUDI Launchpad, FUNKE, UNFOLD,...]]></description><link>https://blog.lukasjhan.com/2025-a-year-in-review</link><guid isPermaLink="true">https://blog.lukasjhan.com/2025-a-year-in-review</guid><category><![CDATA[retro]]></category><category><![CDATA[yearinreview]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 28 Dec 2025 23:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/PAykYb-8Er8/upload/cf79b461f321e1f95b944012b22005f6.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>What a year.</p>
<p>Looking back, 2025 was packed — sometimes overwhelming, but always moving forward.</p>
<hr />
<h2 id="heading-conferences-workshops-and-global-connections">Conferences, Workshops, and Global Connections</h2>
<p>I lost count of how many events I attended and presented at this year: IIW, EUDI Launchpad, FUNKE, UNFOLD, WE BUILD workshop, and the IATA Data PoC face-to-face meeting. I also participate OpenID Foundation standards meetings one time, staying close to where the specifications are being shaped.</p>
<p>Each event was a chance to learn, share, and connect with people working on the same problems across the globe.</p>
<hr />
<h2 id="heading-projects-that-pushed-me">Projects That Pushed Me</h2>
<p>This year brought a diverse mix of projects:</p>
<ul>
<li><p>Building Korea's wallet standard</p>
</li>
<li><p>IATA Data PoC</p>
</li>
<li><p>WE BUILD</p>
</li>
<li><p>Applying VC technology to CBDC wholesale systems</p>
</li>
</ul>
<p>And beyond the technical work, I had the chance to lead a small team. That experience alone taught me more about myself than any single project could.</p>
<p>On top of that, I shipped two main products for the company, Hopae Connect &amp; Hopae Auth, both from zero to one. Building something from nothing, twice, in one year. That's something I'm proud of.</p>
<hr />
<h2 id="heading-looking-ahead-to-2025">Looking Ahead to 2025</h2>
<p>Did I accomplish everything I planned? No. But that's okay.</p>
<p>Next year, I want to focus on preparing for European compliance, building robust system architecture that runs smoothly in production, and taking another step forward in the EUDI space. I also want to grow as a team lead, not just managing, but actually leading well.</p>
<p>And to Tree, thank you for being such a great teammate this year. None of this would have been possible without you.</p>
<p>Here's to another year of building, 2026.</p>
]]></content:encoded></item><item><title><![CDATA[Open Source Summit Korea 2025 — What I Learned]]></title><description><![CDATA[On November 4th and 5th, I attended Open Source Summit Korea in Seoul. Hosted by the Linux Foundation, this event held special meaning for me. I'm a maintainer of SD-JWT-js under the OpenWallet Foundation, which is part of the Linux Foundation.

Wher...]]></description><link>https://blog.lukasjhan.com/open-source-summit-korea-2025-what-i-learned</link><guid isPermaLink="true">https://blog.lukasjhan.com/open-source-summit-korea-2025-what-i-learned</guid><category><![CDATA[Open Source]]></category><category><![CDATA[Linux]]></category><category><![CDATA[opensourcesummit]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 16 Nov 2025 23:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1768719958476/d44bcbae-ee6f-4fc0-8d4b-0b6a7a859f5b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>On November 4th and 5th, I attended Open Source Summit Korea in Seoul. Hosted by the Linux Foundation, this event held special meaning for me. I'm a maintainer of <a target="_blank" href="https://github.com/openwallet-foundation/sd-jwt-js">SD-JWT-js</a> under the OpenWallet Foundation, which is part of the Linux Foundation.</p>
<hr />
<h2 id="heading-where-is-open-source-headed-in-the-ai-era">Where Is Open Source Headed in the AI Era?</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1768720416488/f8546b32-8c17-4615-ab92-25ce6efcf3db.png" alt class="image--center mx-auto" /></p>
<p>The most striking takeaway from the sessions was realizing just how many AI-related open source projects are already thriving under the Linux Foundation. So much of the AI technology we interact with daily runs on open source, and the Linux Foundation provides the governance and sustainability to keep it going.</p>
<p>Open source isn't becoming less relevant in the AI era. it's becoming more essential. Transparency in models, reproducibility, community-driven improvement. All of these align directly with open source philosophy.</p>
<hr />
<h2 id="heading-a-conversation-with-daniela-the-potential-of-the-korean-community">A Conversation with Daniela — The Potential of the Korean Community</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1768720435460/2e58f44d-8a33-4864-a6fb-37aa6eeb7f77.png" alt class="image--center mx-auto" /></p>
<p>I had the chance to meet Daniela from Linux Foundation Decentralized Trust. On the 5th, she hosted an evening session, and I gave a presentation there as well. Our conversation centered on expanding the community in Korea, getting more Korean companies and developers involved in LFDT and growing the open source ecosystem here.</p>
<p>It's encouraging to see a global open source foundation taking interest in the Korean community. At the same time, it reminded me that we need to step up and contribute more actively.</p>
<hr />
<h2 id="heading-linus-torvalds-right-across-the-table">Linus Torvalds, Right Across the Table</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1768720454302/9519fc5f-704e-416b-8a76-197c3e46de9d.png" alt class="image--center mx-auto" /></p>
<p>That evening, I attended the Linux Foundation Dinner at OPENNG. And by some stroke of luck, I ended up sitting directly across from Linus Torvalds.</p>
<p>Of everything he shared, one thing stuck with me the most:</p>
<blockquote>
<p>"A lot of people will tell you what they want from your project, but you can't lose sight of your goal."</p>
</blockquote>
<p>When you maintain an open source project, requests and opinions come from everywhere, feature requests, suggestions about direction, sometimes criticism. All that feedback matters, but ultimately, you can't lose sight of the core problem the project set out to solve.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1768720481923/8a10c213-1970-495d-8184-4d4ca04fec2e.png" alt class="image--center mx-auto" /></p>
<p>This was something I'd been wrestling with as a maintainer. Hearing it directly from Linus gave those words a weight I won't forget.</p>
<hr />
<h2 id="heading-heading-home">Heading Home</h2>
<p>These two days were more than just a conference. I met people who share the same philosophy, and I got to see where I stand within the global open source ecosystem.</p>
<p>Meeting others with the same struggles at events like this gives me energy again. Open source, after all, isn't something you build alone. it's something you build with a community.</p>
<p>Don't lose sight of the goal. I'll keep Linus's words close.</p>
]]></content:encoded></item><item><title><![CDATA[Why "Perfect Code" Destroys Teams: The Coder's Trap]]></title><description><![CDATA[Many developers have a fundamental misconception: that making code perfect at this very moment is the ultimate goal. Like taking a photograph, they optimize, abstract, and apply every best practice to make their current code "beautiful."
But reality ...]]></description><link>https://blog.lukasjhan.com/why-perfect-code-destroys-teams-the-coders-trap</link><guid isPermaLink="true">https://blog.lukasjhan.com/why-perfect-code-destroys-teams-the-coders-trap</guid><category><![CDATA[startup]]></category><category><![CDATA[software development]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[System Architecture]]></category><category><![CDATA[System Design]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 05 Oct 2025 15:00:11 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Pyjp2zmxuLk/upload/590f973e32e98f1ead86c8871f774ce9.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Many developers have a fundamental misconception: that making code perfect at this very moment is the ultimate goal. Like taking a photograph, they optimize, abstract, and apply every best practice to make their current code "beautiful."</p>
<p>But reality isn't a photograph. It's a video. Systems continuously move and evolve. Today's perfect abstraction becomes tomorrow's shackle. Today's optimization becomes tomorrow's legacy.</p>
<h2 id="heading-the-art-of-trade-offs-every-decision-has-a-price">The Art of Trade-offs: Every Decision Has a Price</h2>
<p>There's no free lunch in software development. Every decision is a trade-off.</p>
<p>We must constantly weigh <strong>current debt vs. future debt</strong>. Choose a quick &amp; dirty solution now, and you'll move fast today but accumulate technical debt for tomorrow. Conversely, spend time on perfect abstractions and optimizations now, and you'll slow down current development while increasing costs.</p>
<p>The problem? Many coders reflexively choose the latter. Obsessed with "never creating technical debt," they sink into the swamp of over-abstraction. Ironically, this very behavior creates technical debt.</p>
<h2 id="heading-the-coders-stupid-decision-personal-satisfaction">The Coder's Stupid Decision: Personal Satisfaction</h2>
<p>Elegantly abstracted code. Perfectly applied design patterns. Every SOLID principle religiously followed. The developer who creates this "beautiful" code might feel immense satisfaction.</p>
<p>But from the team's perspective, it's a different story:</p>
<ul>
<li><p><strong>Comprehension barriers</strong>: New team members or other developers take 2-3x longer to understand the code</p>
</li>
<li><p><strong>Change resistance</strong>: Over-abstraction forces simple changes through multiple layers</p>
</li>
<li><p><strong>Debugging hell</strong>: When problems arise, it's overwhelming to figure out where to start tracing</p>
</li>
<li><p><strong>Over-engineering costs</strong>: Code made "extensible" for changes that will never actually happen</p>
</li>
</ul>
<p>This is the coder's stupid decision: prioritizing personal technical satisfaction over team productivity.</p>
<h2 id="heading-the-architects-perspective-evolving-systems">The Architect's Perspective: Evolving Systems</h2>
<p>True architects know that systems <strong>always change</strong>. So instead of perfect snapshots, they build evolvable systems. This mindset is especially critical in startups, where the entire business model might pivot next month, and every week of development time directly impacts runway.</p>
<p>Core considerations for architects:</p>
<h3 id="heading-1-changeability">1. Changeability</h3>
<p>"How easily can this code be changed?" matters more than "How perfect is this code?" Sometimes simple, intuitive code is easier to modify than sophisticatedly abstracted code.</p>
<h3 id="heading-2-team-capability">2. Team Capability</h3>
<p>Perfect code is meaningless if the team can't maintain it. Consider the team's current skill level, domain knowledge, and learning curve. Don't overplay your hand, attempting work beyond your team's current capabilities is a recipe for failure. Start with what you can realistically handle and grow from there.</p>
<h3 id="heading-3-time-constraints">3. Time Constraints</h3>
<p>Business doesn't wait. An 80% solution delivered in 2 weeks can be more valuable than a perfect solution delivered in 3 months.</p>
<h3 id="heading-4-cost-effectiveness">4. Cost-Effectiveness</h3>
<p>If pursuing technical perfection exceeds budget or results in negative ROI, the project itself becomes meaningless.</p>
<h2 id="heading-principles-of-pragmatic-design">Principles of Pragmatic Design</h2>
<h3 id="heading-1-just-enough-design">1. Just Enough Design</h3>
<p>Design only what's needed. Don't try to anticipate every future possibility. Remember YAGNI (You Aren't Gonna Need It).</p>
<h3 id="heading-2-progressive-enhancement">2. Progressive Enhancement</h3>
<p>Don't pursue perfection from the start. Improve incrementally. Start with an MVP, then refactor when actual requirements become clear.</p>
<h3 id="heading-3-team-first-approach">3. Team-First Approach</h3>
<p>"Ordinary" code that the entire team can work with comfortably beats "genius" code that only one person understands.</p>
<h3 id="heading-4-measure-dont-guess">4. Measure, Don't Guess</h3>
<p>Don't optimize based on speculation. Measure actual bottlenecks first, then improve. Premature optimization is the root of all evil.</p>
<h2 id="heading-survival-from-the-ai-the-end-of-simple-coders">Survival from the AI: The End of Simple Coders</h2>
<p>Here's an uncomfortable truth: simple coders obsessed with "perfect code" will soon be replaced by AI. Think about it. What does AI do best?</p>
<ul>
<li><p>Apply design patterns ✓</p>
</li>
<li><p>Follow best practices ✓</p>
</li>
<li><p>Generate boilerplate code ✓</p>
</li>
<li><p>Refactor according to rules ✓</p>
</li>
<li><p>Reproduce patterns from Stack Overflow ✓</p>
</li>
</ul>
<p>That's right. Everything these simple coders pride themselves on their "technical perfection". AI can already do better. GitHub Copilot, Cursor, Claude... they already write "textbook perfect code" faster and more accurately than humans.</p>
<h2 id="heading-conclusion-from-coder-to-architect">Conclusion: From Coder to Architect</h2>
<p>Becoming a good developer isn't just about building technical skills. It's about gaining the wisdom to view systems from a broader perspective, understand team and business context, and make appropriate trade-offs.</p>
<p>Coders see code. Architects see the entire system lifecycle. Coders pursue present perfection. Architects pursue future adaptability.</p>
<p>Do you want to be a photographer or a film director? Do you want to be replaced by AI or command it?</p>
<p>The choice is yours. But remember: the software we build is a living, evolving system. Not a perfect photograph, but an ongoing movie. And the director of that movie is the architect.</p>
]]></content:encoded></item><item><title><![CDATA[Reflections on IATA Data & Tech PoC Workshop in Montreal]]></title><description><![CDATA[I recently had the opportunity to participate in IATA's (International Air Transport Association) Data & Tech PoC Workshop in Montreal. It was a meaningful gathering where we discussed practical innovations for the aviation industry and explored ways...]]></description><link>https://blog.lukasjhan.com/reflections-on-iata-data-and-tech-poc-workshop-in-montreal</link><guid isPermaLink="true">https://blog.lukasjhan.com/reflections-on-iata-data-and-tech-poc-workshop-in-montreal</guid><category><![CDATA[digital identity]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 21 Sep 2025 15:00:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/rf6ywHVkrlY/upload/0d47899021e3c561b65a9bf5a44424f5.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I recently had the opportunity to participate in IATA's (International Air Transport Association) Data &amp; Tech PoC Workshop in Montreal. It was a meaningful gathering where we discussed practical innovations for the aviation industry and explored ways to bring them to life.</p>
<h2 id="heading-meeting-diverse-industry-stakeholders">Meeting Diverse Industry Stakeholders</h2>
<p>What struck me most about the workshop was the opportunity to meet representatives from various airlines and aviation industry companies. Seeing participants from different backgrounds and expertise come together to discuss common goals truly demonstrated the industry's collaborative spirit.</p>
<h2 id="heading-digital-identity-technology-from-theory-to-reality">Digital Identity Technology: From Theory to Reality</h2>
<p>The core focus of this workshop was <strong>Digital Identity Technology</strong>. Rather than merely discussing technical possibilities, we engaged in concrete and realistic discussions about how this technology could solve actual problems facing the aviation industry.</p>
<p>Ideas flowed about revolutionizing the complex and time-consuming processes from passenger identity verification to security screening and boarding procedures. The focus was particularly intense on finding solutions that could achieve both improved passenger experience and enhanced operational efficiency.</p>
<h2 id="heading-real-world-barriers-and-implementation-challenges">Real-World Barriers and Implementation Challenges</h2>
<p>However, the path to innovation was far from smooth. Beyond technical feasibility, there were numerous real-world barriers to overcome for actual implementation:</p>
<ul>
<li><p><strong>Legacy System Complexity</strong>: The compatibility issues with existing systems built over decades proved to be the biggest obstacle. With each airline and airport using different systems, integrating new digital identity technology required far more complexity than simply adding new technology.</p>
</li>
<li><p><strong>Varying Privacy Regulations by Country</strong>: What particularly impressed me was how personal data protection laws differ slightly from country to country. There was a real dilemma in satisfying GDPR and each nation's unique privacy regulations while providing seamless international aviation services.</p>
</li>
<li><p><strong>Balancing Security and Convenience</strong>: Finding the equilibrium between enhanced security and passenger convenience</p>
</li>
<li><p><strong>Cost and Investment</strong>: The enormous economic burden of industry-wide infrastructure changes</p>
</li>
</ul>
<h2 id="heading-understanding-aviation-industry-realities">Understanding Aviation Industry Realities</h2>
<p>Through this workshop, I gained a deeper understanding of the aviation industry's complex ecosystem. I came to appreciate the industry's unique characteristics, that it's not simply about implementing technology, but rather meeting the multifaceted requirements of safety, security, efficiency, and customer experience all at once.</p>
<p>Particularly, given the aviation industry's nature requiring international cooperation, I realized that innovation by individual companies alone has its limitations. True transformation requires industry-wide collaboration and standardized approaches.</p>
<h2 id="heading-the-journey-until-april-2025">The Journey Until April 2025</h2>
<p>This project is scheduled to continue until April next year. I'm genuinely excited and thrilled about the possibility of contributing to aviation industry innovation through this journey over the coming months.</p>
<p>Beyond simply developing technology, being able to contribute to solving real industry problems and improving passenger experiences brings great satisfaction.</p>
<h2 id="heading-closing-thoughts">Closing Thoughts</h2>
<p>Those few days in Montreal were truly precious. I was able to witness firsthand the efforts to bridge the gap between technology and reality, and the industry's passion for creating better aviation experiences.</p>
<p>I hope to continue participating in such meaningful projects, contributing to the digital transformation of the aviation industry. I want technology to become a tool that goes beyond simple innovation to actually improve people's lives.</p>
]]></content:encoded></item><item><title><![CDATA[Building Trust Infrastructure for the Digital Identity]]></title><description><![CDATA[As digital transformation accelerates across every sector of our lives, we're witnessing an unprecedented shift toward online interactions. From banking and healthcare to education and commerce, virtually every aspect of our daily activities is becom...]]></description><link>https://blog.lukasjhan.com/building-trust-infrastructure-for-the-digital-identity</link><guid isPermaLink="true">https://blog.lukasjhan.com/building-trust-infrastructure-for-the-digital-identity</guid><category><![CDATA[trust]]></category><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 03 Aug 2025 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/n95VMLxqM2I/upload/9616db3af3688acb427b8cba41f3aae0.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As digital transformation accelerates across every sector of our lives, we're witnessing an unprecedented shift toward online interactions. From banking and healthcare to education and commerce, virtually every aspect of our daily activities is becoming digitized. In this rapidly evolving landscape, <strong>digital identity</strong> has emerged as a critical foundation for our connected world.</p>
<p>However, for digital identity systems to function effectively, one element stands above all others: <strong>trust</strong>. We need reliable mechanisms to verify that digital credentials, certificates, and attestations are authentic and issued by trustworthy authorities.</p>
<h2 id="heading-the-current-challenge-fragmented-trust-systems">The Current Challenge: Fragmented Trust Systems</h2>
<p>Today's digital identity ecosystem suffers from severe fragmentation. Organizations and platforms have built their own isolated trust mechanisms, resulting in a landscape where interoperability between different systems is virtually non-existent.</p>
<p>Consider this common scenario: a digital diploma issued by a Korean university cannot be automatically verified by a German company's hiring system, or professional credentials from Canada remain unrecognizable to employers in Singapore. Each country has developed its own national digital identity framework with distinct technical standards and trust models, creating significant barriers that limit cross-border recognition and the global utility of digital credentials.</p>
<h2 id="heading-the-solution-open-trust-infrastructure-like-dns">The Solution: Open Trust Infrastructure Like DNS</h2>
<p>To address this challenge, we need <strong>universally accessible and interoperable trust infrastructure, similar to how DNS (Domain Name System) works</strong>. Just as DNS serves as the foundational infrastructure that enables the internet to function seamlessly across the globe, digital identity trust systems require an open, standardized approach.</p>
<h3 id="heading-the-power-of-open-source">The Power of Open Source</h3>
<p>The most effective path to building such infrastructure lies in <strong>open source development</strong>. This approach offers compelling advantages:</p>
<ul>
<li><p><strong>Transparency</strong>: Open code allows anyone to audit and verify the system's integrity</p>
</li>
<li><p><strong>Accessibility</strong>: No vendor lock-in ensures universal access and adoption</p>
</li>
<li><p><strong>Innovation</strong>: Global developer collaboration accelerates advancement and improvement</p>
</li>
<li><p><strong>Security</strong>: Community review strengthens security through collective scrutiny</p>
</li>
</ul>
<h2 id="heading-standardization-efforts-trust-registry-query-protocol">Standardization Efforts: Trust Registry Query Protocol</h2>
<p>In this context, the work of organizations developing standards like the <strong>Trust Registry Query Protocol</strong> becomes crucial. These protocols provide essential capabilities:</p>
<ul>
<li><p>Verification of digital credential issuing authorities</p>
</li>
<li><p>Standardized methods for querying trust information</p>
</li>
<li><p>Interoperability guarantees between diverse systems</p>
</li>
<li><p>Foundation for scalable, distributed trust networks</p>
</li>
</ul>
<h2 id="heading-building-the-foundation-for-tomorrow">Building the Foundation for Tomorrow</h2>
<p>The importance of trust services in digital identity systems extends far beyond security considerations. This infrastructure represents the backbone of digital society—the key that ensures equitable access to digital services for everyone.</p>
<p>When we establish open and interoperable trust infrastructure, we unlock tremendous potential:</p>
<ul>
<li><p><strong>For individuals</strong>: Safer, more convenient management of digital identities</p>
</li>
<li><p><strong>For businesses</strong>: More efficient and reliable service delivery</p>
</li>
<li><p><strong>For society</strong>: Reduced digital divides and enhanced inclusivity</p>
</li>
</ul>
<h2 id="heading-looking-ahead">Looking Ahead</h2>
<p>Just as DNS enabled the internet's explosive growth and global adoption, standardized and open digital identity trust infrastructure will serve as the foundation for the next generation of digital society. Achieving this vision requires not only technical standard development but also sustained collaboration among diverse stakeholders and continued commitment from open source communities.</p>
<p>The trust infrastructure we build today will serve as the bedrock of digital society for decades to come. This is precisely why it's essential to design these systems with openness and universal access as core principles from the very beginning.</p>
]]></content:encoded></item><item><title><![CDATA[OpenWallet Forum: Global Collaboration Opening the Future of Digital Identity]]></title><description><![CDATA[In an era of accelerating digital transformation, the OpenWallet Forum successfully held its first High-Level Panel Event on January 22, 2025, in Davos, Switzerland, setting a new milestone for digital trust and global interoperability. Hosted by the...]]></description><link>https://blog.lukasjhan.com/openwallet-forum-global-collaboration-opening-the-future-of-digital-identity</link><guid isPermaLink="true">https://blog.lukasjhan.com/openwallet-forum-global-collaboration-opening-the-future-of-digital-identity</guid><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 06 Jul 2025 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/StoseOTtSeM/upload/fcde041e306c49aef42edce6dae11757.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In an era of accelerating digital transformation, the OpenWallet Forum successfully held its first High-Level Panel Event on January 22, 2025, in Davos, Switzerland, setting a new milestone for digital trust and global interoperability. Hosted by the Swiss Confederation and jointly organized by the International Telecommunication Union (ITU) and the OpenWallet Foundation/Linux Foundation, this event brought together key stakeholders to discuss the critical need for interoperability in digital wallets and credentials.</p>
<h2 id="heading-julys-historic-gathering-global-digital-collaboration">July's Historic Gathering: Global Digital Collaboration</h2>
<p>The OpenWallet Foundation is co-hosting the '<a target="_blank" href="https://globaldigitalcollaboration.org/">Global Digital Collaboration</a>' event on July 1-2, 2025, in Geneva, Switzerland, alongside over 30 organizations.</p>
<p>As an open source maintainer, I'm very excited about the potential for diverse use case collaborations through this event.</p>
<h2 id="heading-interoperability-and-future-prospects">Interoperability and Future Prospects</h2>
<p>The Government Advisory Council (GAC) currently has 10 countries participating. The participation of such diverse nations in such a short time is truly impressive.</p>
<p>The OpenWallet Foundation's interoperability approach ensures user choice, security, and privacy while operating on a global scale.</p>
<p>The July 1-2 Global Digital Collaboration will be <strong>a major stepping stone for digital identity adoption and interoperability</strong>.</p>
<h2 id="heading-conclusion-toward-a-trustworthy-digital-future">Conclusion: Toward a Trustworthy Digital Future</h2>
<p>The efforts of the OpenWallet Forum and Foundation go beyond simply creating technical standards. They are fostering an internationally aligned ecosystem that provides trustworthy, open, and inclusive tools for a safe and sound global economy.</p>
<p>The Geneva event in July will be more than just a conference. It will be a historic moment opening a new era of digital trust. At the center of this future of digital identity that the world is creating together are the OpenWallet Forum and Foundation.</p>
<p><strong>The future of digital identity depends on interoperability. And that future is starting now.</strong></p>
]]></content:encoded></item><item><title><![CDATA[Developer Attitudes That Kill Startups]]></title><description><![CDATA[Speed and collaboration are the lifeblood of startups. Yet sometimes, a developer's problematic attitudes can hold back the entire team. Today, I want to share the toxic behaviors I've witnessed in startups and how we can fix them.
1. Passive Attitud...]]></description><link>https://blog.lukasjhan.com/developer-attitudes-that-kill-startups</link><guid isPermaLink="true">https://blog.lukasjhan.com/developer-attitudes-that-kill-startups</guid><category><![CDATA[startup]]></category><category><![CDATA[Developer]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 08 Jun 2025 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/oqStl2L5oxI/upload/04dd50ae6359f05d6b96bb967af593bf.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Speed and collaboration are the lifeblood of startups. Yet sometimes, a developer's problematic attitudes can hold back the entire team. Today, I want to share the toxic behaviors I've witnessed in startups and how we can fix them.</p>
<h2 id="heading-1-passive-attitude-i-only-do-what-im-told">1. Passive Attitude: "I Only Do What I'm Told"</h2>
<h3 id="heading-the-problem">The Problem</h3>
<p>Nothing is more fatal in a startup than hearing "That's not my job." Passive developers only execute explicit instructions, refusing to see the bigger picture. They spot bugs but think "Not my code, not my problem." They have improvement ideas but never share them.</p>
<h3 id="heading-the-right-direction">The Right Direction</h3>
<p><strong>Take ownership.</strong> Every startup member is a mini-CEO. Even when writing a single line of code, ask yourself: "What value does this bring to our product and users?" When you spot problems, present them with solutions. When you see better ways, speak up actively.</p>
<h2 id="heading-2-the-perfectionism-trap-i-cant-start-until-everything-is-100-ready">2. The Perfectionism Trap: "I Can't Start Until Everything Is 100% Ready"</h2>
<h3 id="heading-the-problem-1">The Problem</h3>
<p>"The requirements aren't fully clear yet," "How can I start when the design isn't perfect?" "We'll probably have to change this later anyway..."</p>
<p>Some developers live by these excuses. In startups, 100% perfect planning doesn't exist. Markets change daily, user feedback is unpredictable, and the product itself is a hypothesis. While waiting for perfection, competitors pass you by and opportunities disappear forever.</p>
<h3 id="heading-the-right-direction-1">The Right Direction</h3>
<p><strong>Execute at 70% readiness, improve the rest as you go.</strong> The startup mantra is 'Build-Measure-Learn.' Creating an MVP quickly and getting market feedback beats launching a "perfect" product a year later by a hundredfold.</p>
<p>You need the mindset of "Let's start with this and fix problems as they come." You can always refactor later, but missed opportunities never return.</p>
<h2 id="heading-3-communication-breakdown-my-way-is-best">3. Communication Breakdown: "My Way Is Best"</h2>
<h3 id="heading-the-problem-2">The Problem</h3>
<p>The most frustrating moments:</p>
<ul>
<li><p>The team decides on A in a meeting, but someone builds B anyway</p>
</li>
<li><p>When given feedback, responding with "You just don't understand"</p>
</li>
<li><p>Taking help for granted without expressing gratitude</p>
</li>
<li><p>Sulking and doing sloppy work when their opinion isn't accepted</p>
</li>
</ul>
<p>These attitudes destroy team trust and make collaboration impossible.</p>
<h3 id="heading-the-right-direction-2">The Right Direction</h3>
<p><strong>Listening and respect are fundamental.</strong> First, hear others out completely. If you disagree, try: "That's a good perspective, but what if we also consider this aspect?" And when someone helps you, express genuine gratitude. Small thank-yous transform team dynamics entirely.</p>
<h2 id="heading-4-information-hoarding-ill-keep-it-to-myself">4. Information Hoarding: "I'll Keep It to Myself"</h2>
<h3 id="heading-the-problem-3">The Problem</h3>
<p>Disasters created by developers who don't share information:</p>
<ul>
<li><p>Deadline bombshells: "Oh, actually I don't think I can finish this"</p>
</li>
<li><p>Delivering something completely different from requirements</p>
</li>
<li><p>Only reporting progress when explicitly asked</p>
</li>
<li><p>Struggling alone with problems until missing deadlines</p>
</li>
</ul>
<h3 id="heading-the-right-direction-3">The Right Direction</h3>
<p><strong>Practice transparent communication:</strong></p>
<ul>
<li><p>Share honest progress updates in daily standups</p>
</li>
<li><p>Ask for help immediately when stuck</p>
</li>
<li><p>Alert the team early about schedule changes</p>
</li>
<li><p>Document your work and share with the team</p>
</li>
</ul>
<p>Saying "I need help" isn't weakness. It's professionalism.</p>
<h2 id="heading-5-lack-of-accountability-its-not-my-fault">5. Lack of Accountability: "It's Not My Fault"</h2>
<h3 id="heading-the-problem-4">The Problem</h3>
<p>Developers who make excuses first, who blame others first, block the team's growth. "QA didn't catch it," "The specs weren't clear," "There wasn't enough time"—these excuses don't solve problems.</p>
<h3 id="heading-the-right-direction-4">The Right Direction</h3>
<p><strong>Own your mistakes and learn.</strong> When problems arise, have the courage to say: "I missed something there. Here's how I'll improve going forward." Mistakes are growth opportunities. What matters is not repeating them.</p>
<h2 id="heading-final-thoughts-attitude-determines-ability">Final Thoughts: Attitude Determines Ability</h2>
<p>In startups, the right attitude often matters more than exceptional coding skills. A growth mindset, open communication, and ownership. These create healthy development cultures.</p>
<p>Startups especially must move fast amid uncertainty. Rather than losing opportunities while pursuing perfection, we need to start now and rapidly iterate.</p>
<p>None of us are perfect. But we can strive to become better developers and better teammates. Why not start making small changes today?</p>
<p>Small attitude shifts create team-wide success. Let's build a better development culture together.</p>
]]></content:encoded></item><item><title><![CDATA[Time for Credential-Based Authentication]]></title><description><![CDATA[In April 2024, a massive hacking incident at SK Telecom, South Korea's largest mobile carrier, exposed fundamental vulnerabilities in our digital authentication systems. This incident provides a crucial opportunity to examine why we must transition t...]]></description><link>https://blog.lukasjhan.com/time-for-credential-based-authentication</link><guid isPermaLink="true">https://blog.lukasjhan.com/time-for-credential-based-authentication</guid><category><![CDATA[hacking]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[digital identity]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 25 May 2025 12:48:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/o0kPG3RirHs/upload/1b6a54eea96d385a1a1840d4ad10afae.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In April 2024, a massive hacking incident at SK Telecom, South Korea's largest mobile carrier, exposed fundamental vulnerabilities in our digital authentication systems. This incident provides a crucial opportunity to examine why we must transition to a credential-based authentication paradigm.</p>
<h2 id="heading-what-was-compromised">What Was Compromised?</h2>
<p>SK Telecom's core server, the HSS (Home Subscriber Server), was infected with sophisticated malware called BPFDoor, leading to the mass theft of the following information:</p>
<ul>
<li><p><strong>IMSI (International Mobile Subscriber Identity)</strong>: International mobile subscriber identification numbers</p>
</li>
<li><p><strong>IMEI (International Mobile Equipment Identity)</strong>: Device unique identifiers (uncertain if compromised)</p>
</li>
<li><p><strong>Authentication Keys</strong>: Core information used for SIM authentication</p>
</li>
<li><p><strong>MSISDN</strong>: Phone numbers</p>
</li>
<li><p><strong>Personal Information</strong>: Names, dates of birth, etc.</p>
</li>
</ul>
<p>Approximately 27 million IMSI records were confirmed compromised, meaning that information for most SKT subscribers was exposed. What's particularly concerning is that this information doesn't exist in isolation—it forms complete communication profiles when connected together.</p>
<h2 id="heading-what-attacks-became-possible">What Attacks Became Possible?</h2>
<h3 id="heading-the-threat-of-sim-swapping-and-usim-cloning">The Threat of SIM Swapping and USIM Cloning</h3>
<p>The most immediate threat enabled by this breach is SIM swapping attacks. Attackers can transfer a victim's phone number to their own SIM card, intercepting text-based authentication to access financial services or social media accounts.</p>
<p>More seriously, USIM cloning attacks became possible. Particularly when USIM cloning is combined with IMEI spoofing, it becomes extremely difficult for carriers to distinguish between legitimate users and attackers. While SKT claims to have strengthened their FDS (Fraud Detection System), this provides only probabilistic defense and cannot guarantee complete protection.</p>
<p>In practice, attackers can combine sophisticated social engineering attacks, such as impersonating government agencies to request device reboots, then attempting SIM swaps during those brief moments. Against such complex attacks, individual users find it nearly impossible to protect themselves.</p>
<h2 id="heading-fundamental-limitations-of-the-current-system">Fundamental Limitations of the Current System</h2>
<h3 id="heading-the-disaster-of-centralized-architecture">The Disaster of Centralized Architecture</h3>
<p>The current carrier-centric authentication system inherently relies on a centralized structure. Having all subscriber core information concentrated in a single HSS server represents an enormous security risk in itself. This incident demonstrates the realization of such structural vulnerabilities.</p>
<p>The bigger problem is that this information is static. Once generated, IMSI or authentication keys remain the same unless the SIM is replaced. Therefore, once compromised, they can be continuously exploited with no fundamental way to prevent it. This is why SKT decided to replace all customers' SIM cards.</p>
<p>However, SIM replacement cannot be a fundamental solution. If new SIMs are issued using the same structure and methods, the same problems can recur with another hack at any time. It's like replacing only the lock on a broken house while leaving the fence and security system unchanged.</p>
<h2 id="heading-credential-based-authentication-a-new-paradigm">Credential-Based Authentication: A New Paradigm</h2>
<h3 id="heading-the-era-of-self-sovereign-identity">The Era of Self-Sovereign Identity</h3>
<p>We need an entirely new approach. Credential-based authentication is based on the concept of Self-Sovereign Identity, where users directly manage their own digital identities. This represents not just a technical change, but a philosophical shift in how we manage identity in the digital age.</p>
<p>An ID Wallet is a digital wallet securely stored on a user's device, containing Verifiable Credentials. These credentials have dynamic characteristics—they can be created, used, and revoked as needed. Even if someone steals a credential, it's likely already expired or restricted to work only under specific conditions.</p>
<h3 id="heading-combining-device-binding-with-multi-factor-authentication">Combining Device Binding with Multi-Factor Authentication</h3>
<p>Device Binding is a crucial element of this system. It's not simply about software-level information, but binding identity to devices at the hardware level. Using hardware security modules like TPM (Trusted Platform Module) or Secure Elements makes it virtually impossible to clone authentication information without physically stealing the device.</p>
<p>Combining this with various authentication factors—biometrics, PINs—creates even stronger security. Even if attackers steal some information, they cannot succeed in authentication without the remaining factors. This provides a fundamentally different security level compared to the current single-factor (SIM) dependent system.</p>
<p>Additionally, credential-based systems enable 'Selective Disclosure.' For example, when accessing age-restricted services, instead of providing your entire resident registration number, you can present a credential that only proves "I am over 19 years old." This innovative approach simultaneously enhances both privacy protection and security.</p>
<h2 id="heading-conclusion-a-transition-we-can-no-longer-delay">Conclusion: A Transition We Can No Longer Delay</h2>
<p>The SKT hacking incident is not just a security breach—it reveals the structural limitations of our current digital authentication system. A system where 27 million people's information can be compromised at once is no longer sustainable.</p>
<p>The transition to credential-based authentication has already reached a technologically feasible level. W3C's DID (Decentralized Identifiers) and Verifiable Credentials standards are established, and notably, the W3C Verifiable Credentials Data Model 2.0 was officially published in May, 2025, providing an even stronger standards foundation. Many countries and companies are already conducting pilot projects based on these standards. What we need is not technology, but the will to accept and implement change.</p>
<p>Carriers must prepare to transform their role from managers of all authentication information to trusted authentication service providers. Governments must establish the legal and institutional frameworks to support new authentication systems. And we all must renew our understanding of what digital identity means and how it should be protected.</p>
<p>In the wake of the SKT incident, it's time to accelerate the transition to a safer, more user-centric digital authentication system. Before the next hack occurs, we must begin fundamental change.</p>
<hr />
<p><em>This article was written reflecting on the future of digital authentication following the SKT SIM hacking incident. Everyone's attention and participation are needed for a safer digital environment.</em></p>
]]></content:encoded></item><item><title><![CDATA[Presenting SD-JWT VCLD Implementation at IIW: From Conference Floor to Infinite Loop]]></title><description><![CDATA[Last week, I had the opportunity to present our team's implementation work on SD-JWT VCLD at the Internet Identity Workshop (IIW). This was a particularly meaningful experience as we were able to share real-world implementer feedback on a key compone...]]></description><link>https://blog.lukasjhan.com/presenting-sd-jwt-vcld-implementation-at-iiw-from-conference-floor-to-infinite-loop</link><guid isPermaLink="true">https://blog.lukasjhan.com/presenting-sd-jwt-vcld-implementation-at-iiw-from-conference-floor-to-infinite-loop</guid><category><![CDATA[standards]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[iiw]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 20 Apr 2025 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1758439247856/24b1b6a5-8df3-44c6-96a9-853902da6a69.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week, I had the opportunity to present our team's implementation work on SD-JWT VCLD at the Internet Identity Workshop (IIW). This was a particularly meaningful experience as we were able to share real-world implementer feedback on a key component of the OpenID4VP standard.</p>
<h2 id="heading-the-iiw-presentation">The IIW Presentation</h2>
<p>Our team has been working on implementing SD-JWT VCLD, which is specified in the OpenID for Verifiable Presentations (OpenID4VP) standard.</p>
<p>During our session at IIW, we focused on:</p>
<ul>
<li><p><strong>Implementation challenges</strong> we encountered while building our SD-JWT VCLD solution</p>
</li>
<li><p><strong>Technical feedback</strong> that could help improve the standard</p>
</li>
</ul>
<p>The discussion that followed was invaluable. Fellow implementers and standards experts shared their perspectives, and we engaged in productive debates about edge cases and potential improvements to the specification.</p>
<p>We also participated in the speed demo session, which was a great opportunity to showcase our implementation in action. Being able to demonstrate the actual working code alongside our feedback made our points more concrete and relatable.</p>
<h2 id="heading-openid-working-group-meeting-at-infinite-loop">OpenID Working Group Meeting at Infinite Loop</h2>
<p>The following day brought an exciting opportunity - participating in an OpenID Working Group meeting held at Apple's Infinite Loop campus. Being part of these technical discussions in person added a new dimension to our involvement in the standards community. The face-to-face format enabled deeper technical discussions and helped build stronger connections within the working group.</p>
<h2 id="heading-closing-thoughts">Closing Thoughts</h2>
<p>This experience reinforced the importance of implementer feedback in standards development. By building real implementations and sharing our experiences, we contribute to making these standards more robust and practical for widespread adoption.</p>
<p>It was truly exciting to contribute directly to standards development, and I want to express my appreciation to everyone working passionately to create better standards. Looking forward to continuing this journey and contributing more!</p>
]]></content:encoded></item><item><title><![CDATA[From "Design First" to "Prototype First"]]></title><description><![CDATA[In a previous post titled "How Design Docs Bridged Cultural Gaps in Our Global Startup Team", I shared how our team leveraged detailed documentation to improve cross-cultural collaboration. Today, I want to explore a different perspective that I've d...]]></description><link>https://blog.lukasjhan.com/from-design-first-to-prototype-first</link><guid isPermaLink="true">https://blog.lukasjhan.com/from-design-first-to-prototype-first</guid><category><![CDATA[Developer]]></category><category><![CDATA[software development]]></category><category><![CDATA[prototypes]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Thu, 06 Mar 2025 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/ieic5Tq8YMk/upload/3982c49aa12b3fa89a480b99f9cd720a.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In a previous post titled <a target="_blank" href="https://blog.lukasjhan.com/how-design-docs-bridged-cultural-gaps-in-our-global-startup-team">"How Design Docs Bridged Cultural Gaps in Our Global Startup Team"</a>, I shared how our team leveraged detailed documentation to improve cross-cultural collaboration. Today, I want to explore a different perspective that I've developed since then: the "Prototype First, Design Second" approach.</p>
<h2 id="heading-reconsidering-documentation-processes">Reconsidering Documentation Processes</h2>
<p>While design docs served us well in certain contexts, particularly with large, distributed teams, I've discovered their limitations in fast-paced, innovative environments:</p>
<ol>
<li><p><strong>Documentation can stall progress</strong> - In small, agile teams, documentation often becomes a bottleneck rather than an accelerator.</p>
</li>
<li><p><strong>Solutions emerge through building</strong> - When creating something truly new, theoretical planning only gets you so far. The most valuable insights come from building and iterating.</p>
</li>
<li><p><strong>Documentation can cement sub-optimal decisions</strong> - Detailed docs tend to create psychological commitment to initial approaches, making teams reluctant to pivot when necessary.</p>
</li>
</ol>
<h2 id="heading-the-prototype-first-design-second-philosophy">The "Prototype First, Design Second" Philosophy</h2>
<p>After experiencing the downsides of documentation processes, I've adopted a more pragmatic approach:</p>
<h3 id="heading-talk-with-code-not-docs">Talk with Code, Not Docs</h3>
<p>I've found that building a minimal, working solution first—even if imperfect—provides concrete material for discussion. Code becomes the primary communication medium, allowing team members to:</p>
<ul>
<li><p>Experience rather than imagine the solution</p>
</li>
<li><p>Identify practical issues that weren't apparent in theory</p>
</li>
<li><p>Contribute improvements based on tangible examples</p>
</li>
</ul>
<h3 id="heading-focus-on-solutions-not-architecture">Focus on Solutions, Not Architecture</h3>
<p>When faced with novel problems, starting with architecture design often leads to analysis paralysis. Instead:</p>
<ul>
<li><p>Build a simple implementation that addresses the core problem</p>
</li>
<li><p>Let the architecture emerge organically as you identify actual, not theoretical, constraints</p>
</li>
<li><p>Use working code as the foundation for more thoughtful planning</p>
</li>
</ul>
<h3 id="heading-embrace-a-hybrid-approach">Embrace a Hybrid Approach</h3>
<p>I haven't abandoned documentation entirely. Instead, I've found a balanced approach works best:</p>
<ul>
<li><p>Use lightweight documentation to capture key decisions and rationales</p>
</li>
<li><p>Build prototypes to validate assumptions before investing in detailed plans</p>
</li>
<li><p>Foster a "living documentation" culture where documented decisions are seen as part of an ongoing conversation rather than permanent fixtures, encouraging team members to challenge previous decisions whenever better solutions emerge</p>
</li>
</ul>
<h2 id="heading-real-world-results">Real-World Results</h2>
<p>This shift in approach has yielded surprising benefits:</p>
<ul>
<li><p><strong>Faster time-to-value</strong>: We're delivering usable features in days rather than weeks</p>
</li>
<li><p><strong>More innovative solutions</strong>: Hands-on building surfaces opportunities that planning sessions miss</p>
</li>
<li><p><strong>Increased team engagement</strong>: Engineers are more invested in solutions they've helped shape through building</p>
</li>
<li><p><strong>Better adaptability</strong>: We pivot more easily when early implementations reveal new insights</p>
</li>
</ul>
<h2 id="heading-from-theory-to-practice">From Theory to Practice</h2>
<p>My journey from "Design First" to "Prototype First" wasn't straightforward. I encountered several challenges that forced me to refine this approach:</p>
<h3 id="heading-challenge-1-maintaining-coherence">Challenge 1: Maintaining Coherence</h3>
<p>Prototype first occasionally led to inconsistent implementations across features. To address this, we introduced:</p>
<ul>
<li><p>Regular code review sessions focused on architectural patterns</p>
</li>
<li><p>Lightweight design principles documented after successful implementations</p>
</li>
<li><p>Shared libraries built from proven solutions</p>
</li>
</ul>
<h3 id="heading-challenge-2-knowledge-transfer">Challenge 2: Knowledge Transfer</h3>
<p>Without comprehensive documentation, onboarding new team members became challenging. Our solution:</p>
<ul>
<li><p>Well-commented code that explains the "why" behind decisions</p>
</li>
<li><p>Periodic architecture overview sessions based on existing implementations</p>
</li>
<li><p>Just enough documentation that captures key design decisions after they're validated</p>
</li>
</ul>
<h2 id="heading-the-refined-approach">The Refined Approach</h2>
<p>What I've ultimately arrived at is a more nuanced process that combines the best of both worlds:</p>
<ol>
<li><p><strong>Build a minimal working solution</strong> to address the core problem</p>
</li>
<li><p><strong>Review and refine</strong> based on actual usage and feedback</p>
</li>
<li><p><strong>Document key decisions and patterns</strong> that emerge from successful implementations</p>
</li>
<li><p><strong>Scale the solution</strong> with the benefit of practical experience</p>
</li>
</ol>
<h2 id="heading-conclusion">Conclusion</h2>
<p>My evolution from advocating detailed upfront design to embracing a "Prototype First, Design Second" approach reflects a deeper understanding of how software development actually works in practice. While documentation remains valuable, I've found that the most effective teams use it as a tool to capture wisdom gained through building, rather than as a prerequisite for creation.</p>
<p>The best conversations happen around working code, not theoretical documents. By letting solutions emerge through building and experimenting, we've created better products faster, while still maintaining the cohesion and knowledge sharing that documentation provides.</p>
]]></content:encoded></item><item><title><![CDATA[Breaking Down Barriers in Digital Identity]]></title><description><![CDATA[Introduction
Digital Identity has emerged as a crucial infrastructure in the modern digital economy, creating new business opportunities and enhancing our lives through identity verification, credentials, and access control. However, after working in...]]></description><link>https://blog.lukasjhan.com/breaking-down-barriers-in-digital-identity</link><guid isPermaLink="true">https://blog.lukasjhan.com/breaking-down-barriers-in-digital-identity</guid><category><![CDATA[Open Source]]></category><category><![CDATA[digital identity]]></category><category><![CDATA[mdl]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Thu, 20 Feb 2025 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/ivG8LkDrtjs/upload/822dfabf2bf815b9aaeb5af277078b9c.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>Digital Identity has emerged as a crucial infrastructure in the modern digital economy, creating new business opportunities and enhancing our lives through identity verification, credentials, and access control. However, after working in this field for two years, I've observed significant barriers to adoption that continue to persist.</p>
<h2 id="heading-current-challenges-in-digital-identity-adoption">Current Challenges in Digital Identity Adoption</h2>
<p>The main challenges organizations face when implementing Digital Identity solutions include:</p>
<ol>
<li><p>High Implementation Costs: Extended development periods and difficulties in securing specialized talent due to technical complexity</p>
</li>
<li><p>Lack of Interoperability: Limited scalability due to compatibility issues between different systems</p>
</li>
<li><p>Sustainability Issues: Complex maintenance and update procedures making operations difficult</p>
</li>
</ol>
<p>The root cause of these problems ultimately comes down to the "lack of appropriate infrastructure" - particularly the shortage of developer-friendly tools and frameworks.</p>
<h2 id="heading-solution-developer-friendly-open-source-tools">Solution: Developer-Friendly Open Source Tools</h2>
<p>My proposed solution is the development and distribution of "developer-friendly open source tools" that adhere to the following core principles:</p>
<h3 id="heading-1-simply-working">1. Simply Working</h3>
<p>Looking at successful authentication/authorization SaaS products like Furo or Clerk, we can see the importance of "simply working." They provide an environment that works immediately after project creation. In contrast, current Digital Identity frameworks require lengthy configuration lists before you can even start.</p>
<p>Think about React.js - you create a project with <code>create-react-app</code> or <code>vite</code>, type <code>npm start</code>, and immediately see results in your browser. Digital Identity tools should work the same way. Instead of wrestling with lengthy configuration documents, developers should be able to start with defaults and customize progressively.</p>
<h3 id="heading-2-zero-protocol-knowledge-required">2. Zero Protocol Knowledge Required</h3>
<p>When implementing JWT, developers don't need to read RFC 6749 or 6750. They just find the <code>jsonwebtoken</code> library and set the secret and payload. Similarly with React - you learn by manipulating HTML tags and CSS values without understanding the internal workings.</p>
<p>Currently, Digital Identity libraries are only used by a small number of developers who understand the underlying standards and protocols. However, 99% of web developers aren't familiar with these underlying standards. They just want to focus on their business logic.</p>
<h3 id="heading-3-security-by-design">3. Security by Design</h3>
<p>Consider CORS - it enforces security rules by default, and exceptions must be explicitly configured. You can't turn off CORS. Similarly, Digital Identity tools should provide security by default while guiding users on why these security measures are necessary and how they can achieve their business objectives within these security boundaries.</p>
<h2 id="heading-implementation-example">Implementation Example</h2>
<p>Based on these principles, I started the <a target="_blank" href="https://github.com/lukasjhan/Verifiable-Digital-Credentials">Verifiable Digital Credentials</a> project, which features:</p>
<ul>
<li><p>Ready-to-use default configurations</p>
</li>
<li><p>Simple APIs that don't require protocol knowledge</p>
</li>
<li><p>Built-in security by design</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The field of Digital Identity holds immense potential, but its complexity shouldn't be a barrier to adoption. By focusing on developer experience and providing the right tools, we can make this technology more accessible and practical for everyone. Through open source communities and easily accessible resources, we can build a more inclusive and efficient digital identity ecosystem.</p>
]]></content:encoded></item><item><title><![CDATA[How Design Docs Bridged Cultural Gaps in Our Global Startup Team]]></title><description><![CDATA[When our startup began developing a new software product that had never been attempted before, we faced a unique challenge. Not only were we building something completely new, but we were doing it with a team spread across different continents and cu...]]></description><link>https://blog.lukasjhan.com/how-design-docs-bridged-cultural-gaps-in-our-global-startup-team</link><guid isPermaLink="true">https://blog.lukasjhan.com/how-design-docs-bridged-cultural-gaps-in-our-global-startup-team</guid><category><![CDATA[team]]></category><category><![CDATA[Startups]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 19 Jan 2025 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/iPp_KIsFBnI/upload/95795285b688842870106e88a5ed0ac1.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When our startup began developing a new software product that had never been attempted before, we faced a unique challenge. Not only were we building something completely new, but we were doing it with a team spread across different continents and cultural backgrounds. This is the story of how we used design docs to transform our cross-cultural collaboration.</p>
<h2 id="heading-the-initial-challenge">The Initial Challenge</h2>
<p>In the early days of our product development, we struggled with some common yet critical issues:</p>
<ul>
<li><p>Different interpretations of product requirements</p>
</li>
<li><p>Varying approaches to user experience design</p>
</li>
<li><p>Conflicting ideas about technical implementation</p>
</li>
<li><p>Misaligned expectations about project timelines</p>
</li>
</ul>
<p>What made these challenges particularly difficult was that we were building something without existing market references. Each team member had their own vision of how the product should work, influenced by their cultural background and local market understanding.</p>
<h2 id="heading-breaking-point-and-solution">Breaking Point and Solution</h2>
<p>The wake-up call came when we realized we had spent three weeks building features based on completely different interpretations of the same product discussions. Our daily standups and weekly planning sessions weren't enough - something had to change.</p>
<p>That's when we developed our systematic approach to design documents. But these weren't your typical technical specs. We created what we called "Context-Rich Design Docs."</p>
<h3 id="heading-our-documentation-framework">Our Documentation Framework:</h3>
<pre><code class="lang-plaintext">1. Problem Definition
   - Current user pain points
   - Market context by region
   - Success metrics

2. Proposed Solution
   - Core functionality
   - Regional considerations
   - Technical approach
   - User experience goals

3. Implementation Details
   - Phase-wise breakdown
   - Regional adaptations
   - Testing requirements
   - Success criteria
</code></pre>
<h2 id="heading-the-results">The Results</h2>
<p>After implementing this documentation approach for six months:</p>
<ul>
<li><p>Feature development time reduced by 40%</p>
</li>
<li><p>Rework requests dropped by 75%</p>
</li>
<li><p>Team satisfaction scores improved by 60%</p>
</li>
<li><p>Sprint completion rate increased from 65% to 90%</p>
</li>
</ul>
<h2 id="heading-why-design-docs-worked">Why Design Docs Worked</h2>
<p>The success came from creating a shared understanding before writing any code:</p>
<ol>
<li><p><strong>Asynchronous Deep Thinking</strong>: Team members could process information and provide thoughtful feedback without time zone pressure.</p>
</li>
<li><p><strong>Visual Communication</strong>: Diagrams and wireframes helped bridge language gaps and clarify complex concepts.</p>
</li>
<li><p><strong>Cultural Context</strong>: Explicit documentation of cultural considerations helped prevent misunderstandings.</p>
</li>
<li><p><strong>Single Source of Truth</strong>: All decisions and their rationale were recorded and easily referenceable.</p>
</li>
</ol>
<h2 id="heading-key-takeaways-for-global-teams">Key Takeaways for Global Teams</h2>
<p>If you're working with a cross-cultural team:</p>
<ol>
<li><p>Start with clear documentation before jumping into implementation</p>
</li>
<li><p>Use visuals extensively - they transcend language barriers</p>
</li>
<li><p>Document assumptions and cultural considerations explicitly</p>
</li>
<li><p>Create flexible frameworks that can adapt to different perspectives</p>
</li>
<li><p>Regular review and update cycles for living documents</p>
</li>
</ol>
<h2 id="heading-looking-forward">Looking Forward</h2>
<p>This approach didn't just help us build a better product - it helped us build a stronger, more cohesive team. We're now able to tackle complex features with confidence, knowing we have a solid foundation for cross-cultural collaboration.</p>
]]></content:encoded></item><item><title><![CDATA[Reflecting on My Master's Journey: Authentication, Privacy, and Beyond]]></title><description><![CDATA[As I look back on this transformative year, I'm filled with a sense of accomplishment and excitement for the future. I recently completed my master's degree, focusing on a topic that lies at the intersection of digital privacy and user empowerment: d...]]></description><link>https://blog.lukasjhan.com/reflecting-on-my-masters-journey-authentication-privacy-and-beyond</link><guid isPermaLink="true">https://blog.lukasjhan.com/reflecting-on-my-masters-journey-authentication-privacy-and-beyond</guid><category><![CDATA[Master degree in cybersecurity]]></category><category><![CDATA[privacy]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Thu, 05 Dec 2024 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1733576563082/05cec3c6-7aed-4ae4-bb3d-f37b2c003741.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As I look back on this transformative year, I'm filled with a sense of accomplishment and excitement for the future. I recently completed my master's degree, focusing on a topic that lies at the intersection of digital privacy and user empowerment: designing an enhanced authentication system that puts users back in control of their personal information.</p>
<h2 id="heading-my-research-journey">My Research Journey</h2>
<p>My thesis, titled "Designing an Authentication System with Enhanced User Control over Personal Information: Focused on OIDC and Selective Disclosure Techniques," delved into one of the most pressing challenges in our digital age. As our lives become increasingly interconnected through digital platforms, the need for robust yet user-centric authentication systems has never been more critical.</p>
<p>Through my research, I explored how OpenID Connect (OIDC) could be leveraged alongside selective disclosure techniques to create an authentication framework that respects user privacy while maintaining security. This journey taught me far more than just technical knowledge – it opened my eyes to the complex balance between security, usability, and privacy in digital systems.</p>
<h2 id="heading-key-learnings">Key Learnings</h2>
<p>The most valuable lessons from my master's research weren't just about the technical aspects of authentication systems. I learned the importance of:</p>
<ul>
<li><p>Putting users first in security system design</p>
</li>
<li><p>Understanding the delicate balance between convenience and privacy</p>
</li>
<li><p>Appreciating how theoretical concepts translate into real-world applications</p>
</li>
<li><p>Collaborating with peers and mentors to solve complex problems</p>
</li>
</ul>
<h2 id="heading-looking-toward-the-future">Looking Toward the Future</h2>
<p>As I reflect on this achievement, I find myself increasingly drawn to the academic path. The challenges and discoveries I encountered during my master's research have ignited a passion for deeper exploration in this field. This has led me to an important decision: I want to pursue a Ph.D.</p>
<p>The world of digital authentication and privacy is evolving rapidly, and there are still many unsolved challenges waiting to be addressed. I believe that doctoral research would allow me to contribute meaningfully to this field and help shape the future of digital privacy and security.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>My master's journey has been more than just an academic achievement – it's been a stepping stone toward a greater purpose. As I consider the possibility of doctoral studies, I'm excited about the opportunity to dive deeper into research and contribute to advancing the field of digital authentication and privacy.</p>
]]></content:encoded></item><item><title><![CDATA[Reflections from Internet Identity Workshop 2024: Where Innovation Meets Collaboration]]></title><description><![CDATA[A Year of Global Identity Conversations
2024 marked a significant year in my professional journey as I had the privilege of attending both sessions of the Internet Identity Workshop (IIW) in San Francisco - in April and October. These workshops prove...]]></description><link>https://blog.lukasjhan.com/reflections-from-internet-identity-workshop-2024-where-innovation-meets-collaboration</link><guid isPermaLink="true">https://blog.lukasjhan.com/reflections-from-internet-identity-workshop-2024-where-innovation-meets-collaboration</guid><category><![CDATA[iiw]]></category><category><![CDATA[Identity]]></category><category><![CDATA[conference]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Sun, 24 Nov 2024 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1733058581216/7bc2db22-fde7-491f-9601-f4f0438ac91c.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-a-year-of-global-identity-conversations">A Year of Global Identity Conversations</h2>
<p>2024 marked a significant year in my professional journey as I had the privilege of attending both sessions of the Internet Identity Workshop (IIW) in San Francisco - in April and October. These workshops proved to be more than just technical conferences; they were vibrant hubs of innovation, collaboration, and cross-cultural exchange in the digital identity space.</p>
<h2 id="heading-the-power-of-open-dialogue">The Power of Open Dialogue</h2>
<p>What makes IIW truly unique is its unconventional format. Instead of traditional presentations, the workshop embraces an open, collaborative approach to solving complex technical challenges. This format creates an environment where:</p>
<ul>
<li><p>Ideas flow freely between participants</p>
</li>
<li><p>Solutions emerge through collective wisdom</p>
</li>
<li><p>Different perspectives challenge existing assumptions</p>
</li>
<li><p>Innovation happens organically through discussion</p>
</li>
</ul>
<h2 id="heading-global-perspectives-on-digital-identity">Global Perspectives on Digital Identity</h2>
<p>One of the most enriching aspects of IIW was the exposure to various international approaches to digital identity. Each country's unique challenges and solutions provided valuable insights into the global identity landscape. Our team had the opportunity to share South Korea's innovative approach, particularly our esports use case, which generated significant interest among participants.</p>
<h3 id="heading-spotlight-on-our-innovation">Spotlight on Our Innovation</h3>
<p>The enthusiastic response to our esports use case presentation highlighted how different industries can leverage digital identity solutions in unexpected ways. The intersection of gaming, identity, and security sparked fascinating discussions about potential applications in other sectors.</p>
<h2 id="heading-mobile-driving-license-mdl-a-growing-focus">Mobile Driving License (MDL): A Growing Focus</h2>
<p>A notable trend across both workshops was the increasing emphasis on Mobile Driving License technology. The depth and breadth of MDL-related discussions have inspired new directions for our future work. The potential applications and implications of MDL technology present exciting opportunities for innovation in the digital identity space.</p>
<h2 id="heading-personal-growth-through-global-exchange">Personal Growth Through Global Exchange</h2>
<p>These workshops provided more than just technical knowledge; they offered:</p>
<ul>
<li><p>Exposure to diverse problem-solving approaches</p>
</li>
<li><p>Opportunities to challenge and refine existing ideas</p>
</li>
<li><p>Valuable networking with global identity experts</p>
</li>
<li><p>Fresh perspectives on familiar challenges</p>
</li>
</ul>
<h2 id="heading-looking-forward">Looking Forward</h2>
<p>The experiences and insights gained from IIW have shaped both my understanding of digital identity and my vision for future projects. The focus on MDL technology, in particular, has opened new avenues for exploration and innovation in our work.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The Internet Identity Workshop represents more than just a conference - it's a testament to the power of collaborative problem-solving and open dialogue in advancing digital identity solutions. As we move forward with our projects, particularly in the MDL space, the lessons and connections made at IIW will continue to influence and inform our approach.</p>
<p><em>The journey through IIW 2024 has reinforced that the future of digital identity lies not just in technical solutions, but in the power of global collaboration and open dialogue.</em></p>
]]></content:encoded></item><item><title><![CDATA[Building KRDS-React: Enhancing Digital Government Services Through Accessible UI Components]]></title><description><![CDATA[I'm excited to share a significant milestone in our journey to improve digital government services in Korea. Over the past month, our team has developed KRDS-React, an open-source React component library aligned with Korean digital government service...]]></description><link>https://blog.lukasjhan.com/building-krds-react-enhancing-digital-government-services-through-accessible-ui-components</link><guid isPermaLink="true">https://blog.lukasjhan.com/building-krds-react-enhancing-digital-government-services-through-accessible-ui-components</guid><category><![CDATA[Open Source]]></category><category><![CDATA[Design Systems]]></category><category><![CDATA[React]]></category><category><![CDATA[UI]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Tue, 12 Nov 2024 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1733057202480/811810cd-1c10-4c77-b0ca-a320815b4d4b.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I'm excited to share a significant milestone in our journey to improve digital government services in Korea. Over the past month, our team has developed KRDS-React, an open-source React component library aligned with Korean digital government service UI/UX guidelines. This project, which earned recognition from the National Information Society Agency (NIA), represents our commitment to making government digital services more accessible and user-friendly.</p>
<h2 id="heading-project-overview">Project Overview</h2>
<p>KRDS-React (<a target="_blank" href="https://github.com/KRDS-community/krds-react">GitHub Repository</a>) is a specialized React component library designed to help developers build government digital services that are both accessible and user-friendly. Our library currently offers about 20 components, each crafted with careful attention to web standards and accessibility guidelines.</p>
<h2 id="heading-key-features-and-principles">Key Features and Principles</h2>
<h3 id="heading-web-standards-compliance">Web Standards Compliance</h3>
<p>In developing KRDS-React, we prioritized adherence to modern web standards, ensuring that our components work seamlessly across different platforms and browsers. This commitment to standards helps maintain consistency and reliability in government digital services.</p>
<h3 id="heading-accessibility-first">Accessibility First</h3>
<p>Accessibility isn't just a feature – it's a fundamental principle of our library. Every component is designed and tested to ensure:</p>
<ul>
<li><p>Screen reader compatibility</p>
</li>
<li><p>Keyboard navigation support</p>
</li>
<li><p>WCAG compliance</p>
</li>
<li><p>Clear focus indicators</p>
</li>
<li><p>Proper ARIA attributes</p>
</li>
</ul>
<h3 id="heading-user-experience">User Experience</h3>
<p>Our components are designed to provide:</p>
<ul>
<li><p>Intuitive interactions</p>
</li>
<li><p>Consistent behavior patterns</p>
</li>
<li><p>Responsive design</p>
</li>
<li><p>Performance optimization</p>
</li>
<li><p>Clear feedback mechanisms</p>
</li>
</ul>
<h2 id="heading-impact-and-recognition">Impact and Recognition</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1733057297969/0f13ccb0-8565-4689-8740-1315ecfd932a.jpeg" alt class="image--center mx-auto" /></p>
<p>The project's significance was acknowledged by the National Information Society Agency (NIA), which presented us with a letter of appreciation. This recognition validates our approach and encourages us to continue improving digital government services.</p>
<h2 id="heading-future-vision">Future Vision</h2>
<p>While we're proud of our current suite of 20 components, we see this as just the beginning. Our roadmap includes:</p>
<ul>
<li><p>Expanding the component library</p>
</li>
<li><p>Enhancing documentation and examples</p>
</li>
<li><p>Gathering community feedback</p>
</li>
<li><p>Continuous accessibility improvements</p>
</li>
<li><p>Performance optimization</p>
</li>
</ul>
<h2 id="heading-commitment-to-better-digital-services">Commitment to Better Digital Services</h2>
<p>This project represents more than just a technical achievement – it's about making government digital services more accessible to everyone. By providing these tools, we hope to:</p>
<ul>
<li><p>Enable faster development of accessible websites</p>
</li>
<li><p>Promote consistent user experiences across services</p>
</li>
<li><p>Raise awareness about web accessibility</p>
</li>
<li><p>Foster a community of developers committed to accessible design</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>KRDS-React demonstrates how open-source initiatives can contribute to better public services. We invite developers, designers, and anyone interested in improving government digital services to join us in this endeavor. Together, we can create more accessible and user-friendly digital experiences for all citizens.</p>
<hr />
<p><em>The source code is available on</em> <a target="_blank" href="https://github.com/KRDS-community/krds-react"><em>GitHub</em></a><em>. We welcome contributions and feedback from the community.</em></p>
]]></content:encoded></item><item><title><![CDATA[Insights from Next-Generation Authentication Research Group Seminar]]></title><description><![CDATA[As a speaker at the recent Next-Generation Authentication Research Group seminar, hosted by the Korea Information Security Society, I had the opportunity to present on the future of digital identity authentication through the lens of open source init...]]></description><link>https://blog.lukasjhan.com/insights-from-next-generation-authentication-research-group-seminar</link><guid isPermaLink="true">https://blog.lukasjhan.com/insights-from-next-generation-authentication-research-group-seminar</guid><category><![CDATA[Seminars and Workshops]]></category><category><![CDATA[Security]]></category><category><![CDATA[authentication]]></category><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Lukas J Han]]></dc:creator><pubDate>Wed, 23 Oct 2024 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1733056523527/b11a9475-fab7-4a0f-940a-c3a30b4b09df.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1733056619782/74e8c766-b54c-4a9d-b984-b722b74c829c.jpeg" alt class="image--center mx-auto" /></p>
<p>As a speaker at the recent Next-Generation Authentication Research Group seminar, hosted by the Korea Information Security Society, I had the opportunity to present on the future of digital identity authentication through the lens of open source initiatives. This presentation explored how both European and American organizations are leveraging open source technologies to build robust digital identity infrastructures.</p>
<h2 id="heading-global-open-source-digital-identity-initiatives">Global Open Source Digital Identity Initiatives</h2>
<h3 id="heading-european-developments">European Developments</h3>
<p>The European digital identity landscape is undergoing significant transformation through open source initiatives. These projects demonstrate a commitment to transparency, interoperability, and community-driven development in creating digital identity solutions.</p>
<ul>
<li><p><a target="_blank" href="https://eu-digital-identity-wallet.github.io/eudi-doc-architecture-and-reference-framework/latest/arf/">European Digital Identity Wallet Architecture and Reference Framework</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/EWC-consortium">EU Digital Identity Wallet Consortium (EWC)</a></p>
</li>
</ul>
<h3 id="heading-american-approach">American Approach</h3>
<p>In the United States, various organizations and government agencies are similarly embracing open source solutions for digital identity infrastructure. This approach reflects a growing recognition of the importance of collaborative development in creating secure and scalable identity systems.</p>
<ul>
<li><a target="_blank" href="https://github.com/stateofca/opencred">opencred</a></li>
</ul>
<h2 id="heading-benefits-of-open-source-in-digital-identity">Benefits of Open Source in Digital Identity</h2>
<h3 id="heading-transparency-and-trust">Transparency and Trust</h3>
<p>Open source solutions provide unprecedented transparency in security implementations, allowing for community review and validation of security measures.</p>
<h3 id="heading-cost-effectiveness">Cost-Effectiveness</h3>
<p>The adoption of open source technologies can significantly reduce implementation costs while maintaining high security standards.</p>
<h3 id="heading-community-driven-innovation">Community-Driven Innovation</h3>
<p>The collaborative nature of open source development enables rapid innovation and improvement through contributions from diverse experts worldwide.</p>
<h2 id="heading-security-considerations">Security Considerations</h2>
<h3 id="heading-supply-chain-security">Supply Chain Security</h3>
<p>One critical aspect discussed was the importance of securing the open source supply chain. Recent incidents have highlighted the need for:</p>
<ul>
<li><p>Careful vetting of dependencies</p>
</li>
<li><p>Regular security audits</p>
</li>
<li><p>Monitoring for potential vulnerabilities</p>
</li>
<li><p>Implementation of secure update mechanisms</p>
</li>
</ul>
<h2 id="heading-personal-growth-and-reflections">Personal Growth and Reflections</h2>
<p>Preparing for and delivering this presentation was an invaluable experience in my professional journey. The research process deepened my understanding of digital identity systems and open source security considerations. Beyond the technical aspects, this opportunity helped me develop my presentation skills and ability to communicate complex security concepts to a specialized audience. The preparation process challenged me to think critically about the future of digital identity authentication and helped me grow both as a security professional and as a presenter.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The seminar provided a platform not only to share insights about open source technologies in digital identity authentication but also to grow professionally. The experience reinforced the importance of continuous learning and knowledge sharing in the rapidly evolving field of cybersecurity and authentication.</p>
]]></content:encoded></item></channel></rss>