<?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[Developing Dev]]></title><description><![CDATA[Developing Dev]]></description><link>https://hashnode.eddiehinkle.com</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 12:26:45 GMT</lastBuildDate><atom:link href="https://hashnode.eddiehinkle.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Most software engineers start by thinking about the code. Instead, start with the why so you solve the right problem the first time.]]></title><description><![CDATA[Every software engineer has that moment.
You are assigned a feature requirement. It could be a Jira ticket or a sticky note. You first start brainstorming if this is possible, how you would achieve it, and how much time it might take.
But before you ...]]></description><link>https://hashnode.eddiehinkle.com/most-software-engineers-start-by-thinking-about-the-code-instead-start-with-the-why-so-you-solve-the-right-problem-the-first-time</link><guid isPermaLink="true">https://hashnode.eddiehinkle.com/most-software-engineers-start-by-thinking-about-the-code-instead-start-with-the-why-so-you-solve-the-right-problem-the-first-time</guid><category><![CDATA[Career]]></category><category><![CDATA[Developer]]></category><category><![CDATA[technology]]></category><dc:creator><![CDATA[Eddie Hinkle]]></dc:creator><pubDate>Sat, 07 Jan 2023 20:05:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1673184976374/b5208245-ed49-4782-b9a7-4272b400df0c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every software engineer has that moment.</p>
<p>You are assigned a feature requirement. It could be a Jira ticket or a sticky note. You first start brainstorming if this is possible, how you would achieve it, and how much time it might take.</p>
<p>But before you start thinking through the technical implementation, you need to step back and ask "why"?</p>
<h2 id="heading-asking-why-saves-you-time-because-it-prevents-you-from-building-the-wrong-solution">Asking "why" saves you time because it prevents you from building the wrong solution.</h2>
<p>Often by nature, there are some technical assumptions built into a requirements ticket.</p>
<p>However, those writing software requirements sometimes don't clearly understand what is and isn't possible. There may be a better solution that is either faster or more user-friendly that has not been thought of or assumed to be impossible. As the software engineer building the feature, understanding why a requirement exists allows you to validate that the best solution (given all the variables) is being selected.</p>
<p>As a software engineer, you are the technical subject matter expert (yes, even if you're new).</p>
<h2 id="heading-understanding-why-opens-up-alternative-ways-to-build-the-feature">Understanding "why" opens up alternative ways to build the feature.</h2>
<p>Even if the requirements you're given are correct, there are many assumptions you may make based on what is or isn't listed in the ticket.</p>
<p>It is so important to never make an assumption. Assumptions lead to faulty technical decision-making. This feature may be a stop-gap and will need to change in 6 months. You save yourself and your company time by asking questions and unlocking those things that other stakeholders may not think to volunteer. This complete understanding of the problem and solution allows you to make the right technical trade-offs.</p>
<p>You aren't really doing your whole job as a software engineer if you are just building what people ask rather than what people need.</p>
<h2 id="heading-after-asking-why-enough-times-youll-build-an-understanding-and-intuition-about-your-customers-and-their-needs">After asking "why" enough times, you'll build an understanding and intuition about your customers and their needs.</h2>
<p>The sweet spot for software engineers is when they understand their customers and their needs deeply.</p>
<p>When that happens, engineers can suggest ideas that product managers or designers might not have considered. This collaboration between engineering, product, and design makes unique software exist. So embrace being a collaborative, product-focused engineer.</p>
<p>Ask "why" and make your product better.</p>
]]></content:encoded></item><item><title><![CDATA[Think Like A Dev]]></title><description><![CDATA[Things have been pretty busy, and I want to sit back down and write some more posts soon. But in the mean time, I wanted to share some exciting news about one reason I’ve been so busy!
I’ve been working with Maven, a company that specializes in live ...]]></description><link>https://hashnode.eddiehinkle.com/think-like-a-dev</link><guid isPermaLink="true">https://hashnode.eddiehinkle.com/think-like-a-dev</guid><category><![CDATA[learning]]></category><category><![CDATA[Career]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[Web Development]]></category><dc:creator><![CDATA[Eddie Hinkle]]></dc:creator><pubDate>Fri, 14 Oct 2022 13:57:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/Uduc5hJX2Ew/upload/v1665755738572/DLywcNF86.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Things have been pretty busy, and I want to sit back down and write some more posts soon. But in the mean time, I wanted to share some exciting news about one reason I’ve been so busy!</p>
<p>I’ve been working with Maven, a company that specializes in live community-based courses, to develop a 2-week intensive to help early-in-career developers learn the essentials about what it means to be a software engineer.</p>
<p><strong>Most people think they need to learn the right programming language … but what you really need is to learn how to solve problems with code!</strong></p>
<p>Programming languages come and go, but I want take a deep-dive into what it means to write code confidently, break-down problems, and collaborate with other software engineers.</p>
<p>I would love it if you would take 3 minutes to answer a couple of questions about your struggles learning to program.</p>
<p>I'd love to share an early preview of the course as we get closer to time!</p>
<p>Also when the course is released, anyone on the waitlist will get a special 50% early bird rate.</p>
<p><a target="_blank" href="https://6yjql9rns9f.typeform.com/to/vXtf2B4v">Share your thoughts using this form</a></p>
]]></content:encoded></item><item><title><![CDATA[How does this continuous learning thing work?]]></title><description><![CDATA[So here’s the thing, no matter how you learned software development, either in a degree program, through self-reaching, or by using a bootcamp-style program; one big risk is that what you learned yesterday isn’t necessarily going to help you tomorrow...]]></description><link>https://hashnode.eddiehinkle.com/how-does-this-continuous-learning-thing-work</link><guid isPermaLink="true">https://hashnode.eddiehinkle.com/how-does-this-continuous-learning-thing-work</guid><category><![CDATA[learning]]></category><category><![CDATA[Career]]></category><dc:creator><![CDATA[Eddie Hinkle]]></dc:creator><pubDate>Fri, 23 Sep 2022 16:42:09 GMT</pubDate><content:encoded><![CDATA[<p>So here’s the thing, no matter how you learned software development, either in a degree program, through self-reaching, or by using a bootcamp-style program; one big risk is that what you learned yesterday isn’t necessarily going to help you tomorrow.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1663951366223/WCbunA6sC.jpg" alt="brooke-cagle-g1Kr4Ozfoac-unsplash.jpg" /></p>
<p>Tech is consistently changing. In fact, even just skills in general fall away. According to <a target="_blank" href="https://www2.deloitte.com/content/dam/Deloitte/global/Documents/About-Deloitte/central-europe/ce-global-human-capital-trends.pdf">Deloitte’s 2017 Global Human Capital Trends report</a>, the half life of a skill is five years. That’s it. If you don’t keep learning and growing, your skills will continue to reduce over the years.</p>
<p>The solution is continuous learning. It’s a fancy phrase, you probably hear it around in Agile groups or fancy business seminars. But what does it mean for you, and how can it help you level up your game?</p>
<p>I want to share a framework to think about how you approach continuous learning, as well as some tips on what kinds of resources you can use and some methods to encourage yourself to keep at it!</p>
<h2 id="heading-4-es-of-continuous-learning">4 E’s of Continuous Learning</h2>
<p>The framework I want to share is the 4 E’s of Continuous Learning: Education, Experience, Exposure, and Environment.</p>
<p><strong>Education</strong> is most commonly what you think of when think about learning. This is a discrete event and it a starts and stops. It’s your online courses, tutorials, YouTube videos, etc. This is definitely an essential part of continuous learning, routinely reading or watching new materials that will expose you to other points or view or new technologies. But continuous learning is not just about traditional forms of education.</p>
<p><strong>Experience</strong> is what happens over the course of your regular working hours. Are you investigating a new potential technology for the company? Trying to figure out how you all can implement a CI/CD pipeline to make your deployments easier?</p>
<p>If you aren’t having opportunities to learn while doing your work, try to look for new projects where you can volunteer to investigate something or take charge or a project that is a bit outside your normal wheelhouse. This allows your learning to be more than just watching or reading, but really getting your hands dirty.</p>
<p><strong>Exposure</strong> is about the relationships on which you learn. Do you routinely discuss what you are learning with your co-workers? Do you have other friends in the tech industry that work at different companies? What about engaging with other developers on Tech Twitter or having a mentor?</p>
<p>These are all ways that you get exposed to learning in a different way. That’s because we are relational people and our brain is hardwired to retain information presented by others. By ensuring that you have routine exposure to others’ thoughts and ideas in the tech industry through personal relationships, you are learning even when you don’t realize it!</p>
<p><strong>Environment</strong> is the final form of learning. Over time you work with different technologies at work. Maybe your company is using JavaScript and they decide to do a migration to TypeScript? The tools and technologies that you interact with during your job creates the environment for your learning. Do you use CI/CD? What is the tech stack at your job? What software is used for version control, BitBucket, GitHub, GitLab, or some homegrown monstrosity?</p>
<p>If there are teams or projects that use tech you don’t get to experience in your normal job, see if there is an opportunity to shift into those projects, even for a short time. If your company isn’t consistently moving its tech stack and platform forward, you could be falling behind the industry. If you have been at your job long enough that you are no longer learning from the environment, and your company doesn’t seem to be progressing, it may be time to look for another job.</p>
<h2 id="heading-many-ways-to-learn">Many ways to learn</h2>
<p>As you can tell, there are so many ways to learn. Traditional education, Experience in your daily work, Exposure to different people and ideas and the Environment in which you operate. These pieces all work together to ensure that you are consistently and consistently learning. If most of these avenues aren’t actually providing new learning, then you’ll likely stagnate.</p>
<p>So how do you ensure you have a healthy dose of learning? There’s many ways but here’s some suggestions.</p>
<h3 id="heading-6-tips-for-learning-resources">6 Tips for Learning Resources</h3>
<ol>
<li><em> <strong>Read a tech article daily</strong> </em>. Use Twitter, Matter or Daily.Dev. Even just reading a single interesting article every work day will only take a couple of minutes but it will guarantee exposure to new ideas.</li>
<li><em> <strong>Read 4-6 books a year</strong> </em>. Make sure you mix up the topics. some topics could be: languages, frameworks, agile methodologies. Include a book from a parallel field like UX design or project management. Also include books on what they refer to as soft skills.</li>
<li><em> <strong>Take a course once a year</strong> </em>. Something like Epic React or CSS for JS.</li>
<li><em> <strong>You learn better when you teach</strong> </em>. So teach something routinely, either in person at meetups, on your blog or on YouTube. The great part is that people give you feedback which ends up being more exposure.</li>
<li><em> <strong>Build yourself a professional network of peers using Twitter or LinkedIn</strong> </em>. Build relationships, understand what they are doing at their companies.</li>
<li><em> <strong>Get yourself a mentor</strong> </em>. Either ask someone that you know of, or use a resource like ADPList or MentorCruise.</li>
</ol>
<h3 id="heading-5-ways-to-motivate-yourself">5 ways to motivate yourself</h3>
<p>It’s easy to procrastinate or forget to incorporate learning regularly. So I have some suggest methods to keep yourself on track.</p>
<ol>
<li><p><strong>Create a learning calendar</strong>.<br />Plan out what topics or things you want to learn each month. By giving themes to a month of learning it helps you focus and allows the resources to build on each other. CSS September, anyone? If you do time-blocking, make sure you actually have a set time in your time-blocks for each day.</p>
</li>
<li><p><strong>Choose your learning materials and sources wisely</strong>.<br />Anyone can record a video or post a tweet thread. What is their background, what makes them trust worthy? The higher quality the content you’re consuming, the more you’ll get out of it and the more you’ll want to continue.</p>
</li>
<li><p><strong>Gamify the learning progress</strong>.<br />Rewarding yourself for every completed book or course will subconsciously motivate you to keep learning.</p>
</li>
<li><p><strong>Get a mentor, like I mentioned earlier</strong>.<br />There can be an over-emphasis on courses and videos with everything we have available on the internet. To really grow you need someone more experienced that can give guidance and career advice. Mentors can offer encouragement and instill confidence in a way that a course can’t.</p>
</li>
<li><p><strong>Participate in learning groups</strong>.<br />The power of community in learning is immeasurable. Why do universities and bootcamps all teach in classes or cohorts? More than just learning it is the collective sharing of ideas and perspectives that leads to continuous learning and growth. So find some type of community to talk in. A book club, Twitter space, or Discord server.</p>
</li>
</ol>
<h2 id="heading-just-keep-learning">Just keep learning</h2>
<p>If you remember one thing from this email it’s this: if we aren’t learning, we’re stagnating. That’s a phrase I’ve had on my resume for years, because I believe it. I’ve had a huge personal focus on learning throughout the entire career... really, my entire life. Your mind is like water, if sits too long, it smells. But if you keep it running, you have a nice refreshing stream.</p>
]]></content:encoded></item><item><title><![CDATA[Creating auto-complete types without restricting values in TypeScript]]></title><description><![CDATA[The problem
In my current role, we build internal libraries for use by our front-end developers. For a new library we're building we needed to do something I hadn't ever done before. Our library is in TypeScript and we wanted to provide IDE suggestio...]]></description><link>https://hashnode.eddiehinkle.com/creating-auto-complete-types-without-restricting-values-in-typescript</link><guid isPermaLink="true">https://hashnode.eddiehinkle.com/creating-auto-complete-types-without-restricting-values-in-typescript</guid><category><![CDATA[TypeScript]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[webdev]]></category><dc:creator><![CDATA[Eddie Hinkle]]></dc:creator><pubDate>Wed, 14 Sep 2022 00:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1663190768167/N0S8COCoE.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-the-problem">The problem</h2>
<p>In my current role, we build internal libraries for use by our front-end developers. For a new library we're building we needed to do something I hadn't ever done before. Our library is in TypeScript and we wanted to provide IDE suggestions for the values of a parameter, but we couldn't actually restrict the value of that parameter. This is because 90% of the time, the value would be a couple of obvious values, however, the other 10% of the time, we had no way to predict what the value would be!</p>
<h2 id="heading-the-challenge">The challenge</h2>
<p>You would think that the solution would be simple. But it wasn't.</p>
<p>If you are familiar with TypeScript the initial problem seems easy. We need to declare a list of insects that you can use. This is easily accomplished by defining a Union Type.</p>
<pre><code><span class="hljs-keyword">type</span> Insect <span class="hljs-operator">=</span> <span class="hljs-string">'scorpion'</span> <span class="hljs-operator">|</span> <span class="hljs-string">'cockroach'</span> <span class="hljs-operator">|</span> <span class="hljs-string">'caterpillar'</span>;
</code></pre><p>The thing that's missing is that if I find a new insect and try to use it, I can't:</p>
<pre><code><span class="hljs-keyword">const</span> foundInsect: Insect = <span class="hljs-string">'bee'</span>;
</code></pre><p>That would cause an error.</p>
<p>Well, there is a type that would accept any of these strings, right?</p>
<pre><code><span class="hljs-keyword">const</span> foundInsect: <span class="hljs-keyword">string</span> = <span class="hljs-string">'bee'</span>;
</code></pre><p>This would work, but we lose our IDE suggestions because now the IDE thinks we should just add <em>any</em> string value.</p>
<p>The next assumption is if we have our Insect type as a union, why don't we just include the string type? That's one of the first things I thought to try!</p>
<pre><code><span class="hljs-keyword">type</span> Insect <span class="hljs-operator">=</span> <span class="hljs-string">'scorpion'</span> <span class="hljs-operator">|</span> <span class="hljs-string">'cockroach'</span> <span class="hljs-operator">|</span> <span class="hljs-string">'caterpillar'</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">string</span>;

const foundInsect: Insect <span class="hljs-operator">=</span> <span class="hljs-string">'bee'</span>;
</code></pre><p>At first look, this seems like it should work. We define our list of approved values and we also allow it to be a string.</p>
<p>This won't throw an error, but it turns out ... we still lost our IDE suggestions!</p>
<p>It turns out that</p>
<pre><code><span class="hljs-keyword">type</span> Insect <span class="hljs-operator">=</span> <span class="hljs-string">'scorpion'</span> <span class="hljs-operator">|</span> <span class="hljs-string">'cockroach'</span> <span class="hljs-operator">|</span> <span class="hljs-string">'caterpillar'</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">string</span>;
</code></pre><p>gets simplified down to</p>
<pre><code><span class="hljs-keyword">type</span> Insect <span class="hljs-operator">=</span> <span class="hljs-keyword">string</span>;
</code></pre><p>which means no IDE suggestions for us!</p>
<p>That is when I discovered <a target="_blank" href="https://github.com/microsoft/TypeScript/issues/29729">this issue on the TypeScript GitHub repo</a>, where this problem has been discussed at length.</p>
<p>The problem is, we need to say that the final segment, "string", includes all strings <em>except</em> the ones we've defined. By doing that, TypeScript understands that it needs to hold on to the original literal string types that we define upfront.</p>
<p>The solution, provided by <a target="_blank" href="https://github.com/spcfran">@spcfran</a> and <a target="_blank" href="https://github.com/manuth">@manuth</a> is:</p>
<pre><code><span class="hljs-class"><span class="hljs-keyword">type</span> <span class="hljs-title">LiteralUnion&lt;T</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">string</span> <span class="hljs-title">|</span> <span class="hljs-title">number&gt;</span> </span>= <span class="hljs-type">T</span> | <span class="hljs-type">Omit</span>&lt;<span class="hljs-type">T</span>, <span class="hljs-type">T</span>&gt;;
</code></pre><p>Which works wonders!</p>
<h2 id="heading-the-solution">The solution</h2>
<p>All together you end up with:</p>
<pre><code><span class="hljs-keyword">type</span> LiteralUnion<span class="hljs-operator">&lt;</span>T extends <span class="hljs-keyword">string</span> <span class="hljs-operator">|</span> number<span class="hljs-operator">&gt;</span> <span class="hljs-operator">=</span> T <span class="hljs-operator">|</span> Omit<span class="hljs-operator">&lt;</span>T, T<span class="hljs-operator">&gt;</span>;

<span class="hljs-keyword">type</span> Insect <span class="hljs-operator">=</span> <span class="hljs-string">'scorpion'</span> <span class="hljs-operator">|</span> <span class="hljs-string">'cockroach'</span> <span class="hljs-operator">|</span> <span class="hljs-string">'caterpillar'</span>;

const foundInsect: LiteralUnion<span class="hljs-operator">&lt;</span>Insect<span class="hljs-operator">&gt;</span> <span class="hljs-operator">=</span> <span class="hljs-string">'bee'</span>;
</code></pre><p>The first type, LiteralUnion is what's called a Generic. It needs a second type to be fully defined. In that definition, the letter T represents whatever type you provided.</p>
<p>So LiteralUnion takes another type called "T" which can extend either a string or a number. Then LiteralUnion defines itself as either: the type, or everything that doesn't match the type.</p>
<p>That's a bit abstract, so let's dive a little deeper.</p>
<p>The second type, Insect is just what we've been working with. It's a Union type, so it says that a value can be "A or B or C". In this case, we're saying the value can be <code>scorpion</code> OR <code>cockroach</code> OR <code>caterpillar</code>.</p>
<p>When we combine these two types: <code>LiteralUnion&lt;Insect&gt;</code> we're saying that the generic type for LiteralUnion is going to be Insect. so <code>T = 'scorpion' | 'cockroach' | 'caterpillar'</code>. This means that ultimately when the LiteralUnion's type is: <code>T</code> OR <code>OMIT T</code>, we essentially get:<code>type LiteralUnion = 'scorpion' | 'cockroach' | 'caterpillar' | OMIT&lt;string, 'scorpion' | 'cockroach' | 'caterpillar'&gt;</code>, which is exactly what we need in order for TypeScript to hold on to all the types for them to be used by the IDE to suggest them as options!</p>
]]></content:encoded></item><item><title><![CDATA[How to make a plan for your career]]></title><description><![CDATA[I spent a large chunk of my career making the worst mistake for career development: I didn’t have a plan.

A lot of people have a plan for their life. Being a software engineer wasn’t the clear plan for me for a long time. Programming started as a ho...]]></description><link>https://hashnode.eddiehinkle.com/how-to-make-a-plan-for-your-career</link><guid isPermaLink="true">https://hashnode.eddiehinkle.com/how-to-make-a-plan-for-your-career</guid><category><![CDATA[Career]]></category><category><![CDATA[planning]]></category><category><![CDATA[life]]></category><dc:creator><![CDATA[Eddie Hinkle]]></dc:creator><pubDate>Sat, 10 Sep 2022 00:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1663009598605/i0C9cNOTs.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I spent a large chunk of my career making the worst mistake for career development: I didn’t have a plan.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1663009598605/i0C9cNOTs.jpeg" alt="Image description" /></p>
<p>A lot of people have a plan for their life. Being a software engineer wasn’t the clear plan for me for a long time. Programming started as a hobby for me and then was a side hustle in college. Ultimately I thought I would end up doing something in cyber forensics or cyber security. But I just kind of made decisions as they came up. I quit college because I was bored, worked full-time at the Apple Store, and moved to Maryland to live with my parents at 24. Not exactly what every 24-year-old plans on doing.</p>
<p>But then I applied and got a job as a Geospatial Software Engineer, it turns out, that all of my side hustles from college had created a pretty great resume, which was nice since they didn’t give much money!</p>
<p>As new opportunities came up, I decided about them, but it all felt very random until I was at a company that had a horrible manager. When that manager had to step down due to personal reasons, I realized it was an amazing opportunity. I hadn’t planned on management, I hadn’t planned much of anything in advance. But I felt I could do better at managing the team than he did. So I applied internally, got the position, and then realized I needed to find out how to manage people.</p>
<p>I grew and thrived in that role, but it also made me realize my career could be more than just working in “Senior Engineer” type positions at random companies for the next 20-30 years, which is what I had just assumed without thinking much about it. Instead, I could actually do important jobs that made an impact and even work at big or well-known companies.</p>
<p>This started the most exciting part of my career. I’ve done people management for several years, building a team from 2 people to 8 people, and ended up moving on because I knew I wanted to get into big tech. I’m at Glassdoor now and loving it! I never would have imagined I would be on a trajectory to lead and manage engineering teams much less as part of big well-known tech companies. But my realization that I was now a manager in charge of other people’s careers made me start to actually think about careers and career progression.</p>
<h2 id="heading-have-a-long-term-idea-and-a-short-term-plan">Have a long-term idea and a short-term plan.</h2>
<p>You need both short-term and long-term plans. Not having a short-term plan will slow your progress and take longer to get where you want to, but a short-term plan without a long-term idea 💡 means every year might have you headed in a different direction rather than making strategic moves towards your ultimate goal.</p>
<p>That is why it’s important to pair both your short-term plan, which allows you to make intentional choices, while your long-term idea keeps you from getting sidetracked on something that seems good but will take you down a different path.</p>
<p>That’s easier said than done! No worries, let’s talk briefly about 3 essential steps that can help you make a basic plan for your career.</p>
<h2 id="heading-1-start-with-the-end-in-mind">1. Start with the end in mind</h2>
<p>“What do you want to be when you grow up?” is a question that adults ask kids but that makes no sense. There are so many possibilities, how is a kid supposed to know!</p>
<p>So how can I expect you to plan 5 years ahead?!?</p>
<p>At least that’s what several people asked when I tweeted about having a career plan.</p>
<p>The key is to figure out where you want to be or what you want to do. There is a Japanese idea called Ikigai, which is about a person’s reason for being or purpose.</p>
<p>This framework, Ikigai, is a great way to start brainstorming where you want to be at the pinnacle of your career. The key is finding what sits in the center of four overlapping areas of your life:</p>
<ul>
<li>What you can be paid for</li>
<li>What you are good at</li>
<li>What you love</li>
<li>What the world needs</li>
</ul>
<p>Obviously you may not be able to get a job in 5 years that fits in the center of all four of those pieces, but if you identify what the center looks like, your 5 year idea can move you closer there than you are today.</p>
<p>In my view, it’s best to actually try to move more into the circles in a clock-wise function. This means you start with what you can get paid for. It’s important to take care of your Provision. Then you can double down and get good at it, embracing Proficiency. Once you’ve showed that, you typically open up new doors to shift into what you love, using your Passion. Finally, at the pinnacle of your career the hope is that you’ll be able to be in a position that helps provide something the world needs and thus have an Impact.</p>
<h2 id="heading-2-choose-one-significant-change-over-the-next-year-that-gets-you-closer">2. Choose one significant change over the next year that gets you closer</h2>
<p>We often over-estimate what we can do in shorter time periods but we under-estimate how that compounds in the longer time periods. So the goal should be to accomplish one major change in a year. Something that requires several steps and moving parts and that makes a meaningful step towards your 5 year goal.</p>
<p>For example, think about things like:</p>
<ul>
<li>Is there a big promotion you’re close to?</li>
<li>Is there a necessary skill you’re missing or have very little experience with?</li>
<li>Is there some area that you haven’t gotten to work in?</li>
</ul>
<h2 id="heading-3-define-4-milestones-that-will-get-you-to-your-1-year-plan">3. Define 4 milestones that will get you to your 1 year plan</h2>
<p>A year is both quick and a long time. It’s quick in terms of your life and a decade, however it’s a long-time in the day to day. To bridge that gap, you should set shorter goals, I recommend quarterly goals, that are smaller steps that can get you to your year long plan.</p>
<p>If you are working to get a promotion, then your goals should focus on ensuring you’ve been part of projects or other things that you’ll be able to use in your promotion packet or discussion.</p>
<p>If you’re trying to expand a skill, you’ll probably want to learn about it, then find a project to use it in. You’ll want to be sure and have a period where someone can give you feedback, because that’s the only way to learn and grow, and then implement that feedback actively.</p>
<p>Whatever your plan for this next year, it’s likely something that can be broken down into smaller chunks that can be tackled on a quarterly basis.</p>
<p>Don’t experience the same mistake I did, choose to invest in your future by setting up an action plan for your career today! Figure out where you are at in the Ikigai framework, and figure out what the next area you want to grow into is.</p>
<p>Provision, a job that pays? Proficiency, becoming good at your job? Passion, a job you love? Impact, a job that provides for a need in the world?</p>
<p>Choose where you want to be in 5 years and what that might look like. Make a plan for where you want to be at the end of this year and then set quarterly goals to get yourself there!</p>
<p>Just remember by developing an intentional plan, you are ensuring consistent growth. Consistent growth is the key to long-term success!</p>
<p>I’d love to hear your questions or your goals!</p>
]]></content:encoded></item></channel></rss>