<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged job</title>
<link>https://coderlegion.com/tag/job</link>
<description>Powered by Question2Answer</description>
<item>
<title>I Build Websites That Look Great, Load Fast, and Actually Work</title>
<link>https://coderlegion.com/31081/i-build-websites-that-look-great-load-fast-and-actually-work</link>
<description>&lt;p&gt;Hi, I’m Sawyer — a web developer and digital creator. I’m currently building websites for people, brands, and projects that need a clean, modern online presence.&lt;/p&gt;
&lt;p&gt;If you need a website that is simple to use, responsive on mobile, and built with a polished design, I’d love to help.&lt;/p&gt;
&lt;p&gt;What I Build&lt;br&gt;
Personal portfolio websites&lt;/p&gt;
&lt;p&gt;Business and service landing pages&lt;/p&gt;
&lt;p&gt;Sports and athlete profile sites&lt;/p&gt;
&lt;p&gt;Data-driven web applications&lt;/p&gt;
&lt;p&gt;React-based front-end projects&lt;/p&gt;
&lt;p&gt;Websites with clean UI, animations, and responsive layouts&lt;/p&gt;
&lt;p&gt;My Approach&lt;br&gt;
I focus on building websites that are:&lt;/p&gt;
&lt;p&gt;Modern and visually polished&lt;/p&gt;
&lt;p&gt;Mobile-friendly and responsive&lt;/p&gt;
&lt;p&gt;Fast and easy to navigate&lt;/p&gt;
&lt;p&gt;Built around your goals, not just generic templates&lt;/p&gt;
&lt;p&gt;Ready to deploy and share&lt;/p&gt;
&lt;p&gt;I enjoy taking an idea from concept to a real, working website — including planning the structure, designing the interface, building the frontend, and getting it live.&lt;/p&gt;
&lt;p&gt;Check Out My Work&lt;br&gt;
You can see my site here:&lt;/p&gt;
&lt;p&gt;👉 &lt;a rel=&quot;nofollow&quot; href=&quot;https://hiresawyer.base31.org&quot;&gt;https://hiresawyer.base31.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Let’s Build Something&lt;br&gt;
Whether you need a portfolio, a landing page, a sports-data project, or a custom website idea brought to life, feel free to reach out.&lt;/p&gt;
&lt;p&gt;I’m open to new projects and collaborations.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/31081/i-build-websites-that-look-great-load-fast-and-actually-work</guid>
<pubDate>Wed, 14 Oct 2026 20:21:55 +0000</pubDate>
</item>
<item>
<title>Is Your Unity Game Still Choking on a Single Thread?</title>
<link>https://coderlegion.com/20943/is-your-unity-game-still-choking-on-a-single-thread</link>
<description>
&lt;h2 id=&quot;is-your-unity-game-choking-unlock-multithreaded-power-with-the-job-system-and-burst-compiler&quot;&gt;Is Your Unity Game Choking? Unlock Multithreaded Power with the Job System and Burst Compiler&lt;/h2&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;In the rapidly evolving landscape of game development, the performance ceiling of single-threaded execution has become a major bottleneck. If your Unity game grapples with stuttering frame rates, slow AI, laggy physics, or sluggish procedural generation, chances are your heaviest computations are trapped on the main thread. While fundamental optimizations like caching &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GetComponent&lt;/code&gt; are important, they&amp;rsquo;re merely the first step. To truly unlock modern hardware&amp;rsquo;s potential and create ambitious, dynamic worlds, you need to graduate to Unity&amp;rsquo;s &lt;strong&gt;Job System&lt;/strong&gt; and &lt;strong&gt;Burst Compiler&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This isn&amp;rsquo;t about incremental gains; it&amp;rsquo;s about a paradigm shift. We&amp;rsquo;re talking about moving expensive calculations from sequential, slow &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Update()&lt;/code&gt; loops to parallel threads, leveraging low-level &lt;strong&gt;SIMD&lt;/strong&gt; (Single Instruction, Multiple Data) optimizations automatically provided by Burst. It&amp;rsquo;s 2026, and clinging to single-threaded logic for performance-critical tasks is no longer an option &amp;ndash; it&amp;rsquo;s an unforgivable sin against your game&amp;rsquo;s potential.&lt;/p&gt;

&lt;h3 id=&quot;code-layout-and-walkthrough-embracing-parallelism&quot;&gt;Code Layout and Walkthrough: Embracing Parallelism&lt;/h3&gt;

&lt;p&gt;The core principle of the Job System is to define small, atomic units of work that can be executed independently across multiple threads. This is achieved through the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IJob&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IJobParallelFor&lt;/code&gt; interfaces, combined with &lt;strong&gt;NativeArray&lt;/strong&gt; for safe, high-performance data transfer.&lt;/p&gt;

&lt;p&gt;Let&amp;rsquo;s illustrate with a common scenario: updating the positions of thousands of entities. Instead of iterating in a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MonoBehaviour&lt;/code&gt;&amp;rsquo;s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Update()&lt;/code&gt; loop, we offload this to a job:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Define Your Job Struct:&lt;/strong&gt;
First, create a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;struct&lt;/code&gt; that implements &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IJobParallelFor&lt;/code&gt;. This interface is ideal for tasks that involve processing a collection of data in parallel. Crucially, mark your struct with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;[BurstCompile]&lt;/code&gt; to enable the Burst Compiler&amp;rsquo;s magic.&lt;/p&gt;

&lt;div class=&quot;language-csharp highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Unity.Jobs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Unity.Collections&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Unity.Burst&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;UnityEngine&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// For Vector3&lt;/span&gt;

&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;BurstCompile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;MoveEntitiesJob&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;IJobParallelFor&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;// Input and output data must be NativeArray types for thread safety&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ReadOnly&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NativeArray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;InputPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NativeArray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OutputPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DeltaTime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Speed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;// The Execute method runs for each index in the scheduled range&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;Execute&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;currentPos&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;InputPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// Example: Move entities forward along Z-axis&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;currentPos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Speed&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DeltaTime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; 
        &lt;span class=&quot;n&quot;&gt;OutputPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;currentPos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;[BurstCompile]&lt;/code&gt;&lt;/strong&gt;: This attribute tells Unity to compile this job using the Burst Compiler. Burst automatically transforms your C# code into highly optimized machine code, often leveraging SIMD instructions to process multiple data points simultaneously.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NativeArray&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/strong&gt;: These are unmanaged arrays that live outside of the C# garbage collector. They are crucial for thread-safe data access and communication between jobs and the main thread. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;[ReadOnly]&lt;/code&gt; ensures the job can&amp;rsquo;t accidentally modify input data, enhancing safety and optimization.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Execute(int index)&lt;/code&gt;&lt;/strong&gt;: This is the core logic. For an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IJobParallelFor&lt;/code&gt; job, this method is called for each index in the collection you&amp;rsquo;re processing. The Job System automatically distributes these calls across available threads.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Schedule and Complete Your Job:&lt;/strong&gt;
From a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MonoBehaviour&lt;/code&gt; or a manager script, you&amp;rsquo;ll prepare your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NativeArray&lt;/code&gt; data, create an instance of your job, schedule it, and then wait for its completion.&lt;/p&gt;

&lt;div class=&quot;language-csharp highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;UnityEngine&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Unity.Jobs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Unity.Collections&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;EntityMover&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;MonoBehaviour&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EntityCount&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10000&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;MovementSpeed&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;5f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NativeArray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_entityPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// Stores current positions&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NativeArray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_newPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;   &lt;span class=&quot;c1&quot;&gt;// Stores results from the job&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;JobHandle&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_jobHandle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;bool&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_jobScheduled&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;Start&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// Initialize NativeArrays. Always remember to dispose them!&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;_entityPositions&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NativeArray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EntityCount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Allocator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Persistent&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;_newPositions&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NativeArray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EntityCount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Allocator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Persistent&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

        &lt;span class=&quot;c1&quot;&gt;// Populate initial positions (example)&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EntityCount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;++)&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;_entityPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;Range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(-&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;50f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;50f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;Range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(-&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;50f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;50f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;Update&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(!&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_jobScheduled&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;c1&quot;&gt;// Create and configure the job&lt;/span&gt;
            &lt;span class=&quot;kt&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;job&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;MoveEntitiesJob&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;InputPositions&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_entityPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;OutputPositions&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_newPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;DeltaTime&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;deltaTime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;Speed&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;MovementSpeed&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;

            &lt;span class=&quot;c1&quot;&gt;// Schedule the job. The second parameter (64) is the innerloopBatchCount.&lt;/span&gt;
            &lt;span class=&quot;c1&quot;&gt;// It suggests how many iterations Burst should process in a single batch.&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;_jobHandle&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;job&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;Schedule&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EntityCount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;_jobScheduled&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_jobHandle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;IsCompleted&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;c1&quot;&gt;// Wait for the job to complete and retrieve results&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;_jobHandle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;Complete&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt; 

            &lt;span class=&quot;c1&quot;&gt;// Copy the results back to the original array for next frame's input&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;_newPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CopyTo&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_entityPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

            &lt;span class=&quot;c1&quot;&gt;// Now _entityPositions contains the updated data, which can be&lt;/span&gt;
            &lt;span class=&quot;c1&quot;&gt;// used to update actual GameObjects, renderers, etc.&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;_jobScheduled&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// Ready to schedule again next frame&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;OnDestroy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// Always dispose NativeArrays when no longer needed to prevent memory leaks!&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_entityPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;IsCreated&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_entityPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;Dispose&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_newPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;IsCreated&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_newPositions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;Dispose&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Allocator.Persistent&lt;/code&gt;&lt;/strong&gt;: Specifies how the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NativeArray&lt;/code&gt; memory is managed. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Persistent&lt;/code&gt; means it lives until manually disposed. Other options like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Temp&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;TempJob&lt;/code&gt; are for shorter-lived allocations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;job.Schedule(EntityCount, 64)&lt;/code&gt;&lt;/strong&gt;: This enqueues the job to be run. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;EntityCount&lt;/code&gt; is the total number of iterations. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;64&lt;/code&gt; is the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;innerloopBatchCount&lt;/code&gt;, which helps the Job System and Burst optimize task distribution.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_jobHandle.Complete()&lt;/code&gt;&lt;/strong&gt;: This is a synchronization point. It forces the main thread to wait until the job finishes. For optimal performance, schedule jobs as early as possible and call &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Complete()&lt;/code&gt; as late as possible, allowing the main thread to perform other tasks concurrently.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Embracing Unity&amp;rsquo;s Job System and Burst Compiler means moving beyond basic optimizations and tapping into the full potential of modern multi-core processors. You&amp;rsquo;re not just making your existing game faster; you&amp;rsquo;re enabling entirely new possibilities: hundreds of dynamic NPCs, massive physics simulations, incredibly reactive worlds, and complex procedural elements, all without sacrificing framerate. Stop being intimidated by the shift from traditional &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MonoBehaviour&lt;/code&gt; patterns. Dive into &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NativeArray&lt;/code&gt;s and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IJobParallelFor&lt;/code&gt; &amp;ndash; your game, and your players, will thank you for liberating its potential. The future of high-performance Unity development is parallel; it&amp;rsquo;s time to join it.&lt;/p&gt;
</description>
<category>Other</category>
<guid isPermaLink="true">https://coderlegion.com/20943/is-your-unity-game-still-choking-on-a-single-thread</guid>
<pubDate>Thu, 18 Jun 2026 19:45:36 +0000</pubDate>
</item>
<item>
<title>Software Hiring Poll</title>
<link>https://coderlegion.com/20521/software-hiring-poll</link>
<description>&lt;p&gt;Software hiring runs on folklore. There is actual research on what works and what doesn't. Most of the industry has never seen it.&lt;br&gt;
There's a body of peer-reviewed research on how technical interviews work, what they actually measure, and where they fail. Most people I talk to, on both sides of the table, have never read any of it.&lt;br&gt;
I have create a short survey to see what people across the industry have experienced and what they know about the research.&lt;br&gt;
The form has three sections. Experience profile, multiple choice on the literature and a few open-ended scenarios.&lt;br&gt;
About ten minutes.&lt;br&gt;
Anonymous. No email collection.&lt;br&gt;
Open to candidates, interviewers, both, or neither.&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSd8-jo8ALuA7TuG9iP-8dnPgFfBywP7JXMI3xa2DEq-kV5CRw/viewform&quot;&gt;https://docs.google.com/forms/d/e/1FAIpQLSd8-jo8ALuA7TuG9iP-8dnPgFfBywP7JXMI3xa2DEq-kV5CRw/viewform&lt;/a&gt;&lt;br&gt;
Share the form and help me get better results.&lt;/p&gt;
</description>
<category>Discussions</category>
<guid isPermaLink="true">https://coderlegion.com/20521/software-hiring-poll</guid>
<pubDate>Sat, 13 Jun 2026 19:36:29 +0000</pubDate>
</item>
<item>
<title>AI Developer | API Integration | Full Stack - Updated my portfolio website</title>
<link>https://coderlegion.com/17440/ai-developer-api-integration-full-stack-updated-my-portfolio-website</link>
<description>&lt;p&gt;AI Automation and Agents Developer building intelligent systems and modern web applications. Passionate about machine learning, deep learning, and creating next-gen autonomous agents.&lt;/p&gt;
&lt;p&gt;I am a self-taught AI Automation and Agents Developer from Remote. I build intelligent systems, chatbots, and modern web applications with blockchain integration. My expertise includes Machine Learning, Deep Learning, NLP, Smart Contracts, Web3 development, and Full-Stack Web Development with React, Next.js, Node.js, Solidity, and Python. I specialize in creating decentralized applications (dApps), DeFi solutions, and autonomous AI agents. Currently building next-gen AI Agents and JARVIS-like Personal Assistants. Code is poetry, AI is the canvas.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/17440/ai-developer-api-integration-full-stack-updated-my-portfolio-website</guid>
<pubDate>Mon, 11 May 2026 15:07:35 +0000</pubDate>
</item>
<item>
<title>A regular Monday</title>
<link>https://coderlegion.com/7744/a-regular-monday</link>
<description>&lt;p&gt;Monday felt simple and steady. I spent most of the day working on my resume and thinking about the projects I have built over time. Even though it seemed like normal work, it reminded me why these things matter much more than they look.&lt;/p&gt;
&lt;p&gt;I started by rewriting my resume. I cleaned up sentences, removed unnecessary words, and tried to make every point clear and direct. While doing this, I realised how important a resume really is. It is often the first thing someone sees before they even meet you. It decides whether they think you are worth a second look. Just a page or two, but it carries the weight of years of work. That thought made me pay more attention to the finer details.&lt;/p&gt;
&lt;p&gt;I also reviewed my past projects in a broader way. Instead of focusing on the technical parts, I tried to understand what each one said about me as a person and as a developer. Some showed problem-solving, some showed consistency, and some showed that I can follow through on an idea. It made me see that projects are not just tasks you complete, they are quiet reflections of your growth.&lt;/p&gt;
&lt;p&gt;As the day went on, I kept thinking about how important it is to present things properly. Skills matter, but how you talk about them matters too. A project can be strong, but if you do not explain it well, it loses half its impact. A resume can be filled with good work, but if it is cluttered, people miss the real parts. I understood that presentation is not about exaggeration, it is about helping others see your effort clearly.&lt;/p&gt;
&lt;p&gt;By the evening, my resume looked cleaner and more honest. I felt more confident about the way I presented myself. The whole day felt like a small reminder that improving the way you show your work is also a part of the work itself.&lt;/p&gt;
&lt;p&gt;A regular Monday, nothing fancy, but a meaningful one.&lt;/p&gt;
</description>
<category>Resume Writing</category>
<guid isPermaLink="true">https://coderlegion.com/7744/a-regular-monday</guid>
<pubDate>Mon, 24 Nov 2025 18:45:12 +0000</pubDate>
</item>
</channel>
</rss>