<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss/pretty-feed-v3.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>LindaKat Writes</title><description>The musings and knowledge sharing of Linda Thompson</description><link>https://lindakat.com/</link><language>en-us</language><item><title>An Origin Story</title><link>https://lindakat.com/blog/origin-story/</link><guid isPermaLink="true">https://lindakat.com/blog/origin-story/</guid><description>A quick walkthrough of my history, then thoughts on where I&apos;m at today and where I want to go.</description><pubDate>Wed, 08 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;To start with total honesty, I don&apos;t know what I want to do right now.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I want to be working as a software dev and playing games at night. Occasionally going on hikes with my partner and dog, or hanging out with friends. But the specifics of how to find that next job, what sub-section of the field it should be in, what industry, all that stuff - not so clear.&lt;/p&gt;
&lt;p&gt;That&apos;s also a lot of the inspiration for starting a blog again - the ability to track my career as an actual path, celebrating the highs, sharing through the lows, and documenting the exploration of what I hope is a long career in software.&lt;/p&gt;
&lt;p&gt;But let&apos;s back up for a minute.&lt;/p&gt;
&lt;h2&gt;A Little History&lt;/h2&gt;
&lt;p&gt;Hi. I&apos;m Linda. Welcome to my little space on the internet. I&apos;m so glad you&apos;re here! 😊&lt;/p&gt;
&lt;p&gt;I started exploring the idea of software engineering as a career back in 2016 by taking free online courses. I quickly fell in love with being able to build websites and see my creations in near real time. Through the next 6 years, I studied and built projects whenever I had the energy after my day job.&lt;/p&gt;
&lt;p&gt;Then the pandemic hit, and I was forced to make a choice - go back to the job that was draining me for years only 2 months into the pandemic, or quit and actually try to make this career switch into tech happen. I chose the latter, and I&apos;m forever proud of myself for taking the riskier choice.&lt;/p&gt;
&lt;p&gt;I went to college (and finished a bachelor&apos;s degree) for general music - honestly as useless as it sounds, although I did gain a lot through my experiences. I have regrets around finishing this degree, but I got to learn and play with so many instruments and made friends and had my first real taste of independence. I learned to fend for myself and do what was needed to keep myself afloat. But I knew I didn&apos;t want to be a performer (I&apos;m not competitive enough) and I learned I didn&apos;t want to teach, so my options were slim.&lt;/p&gt;
&lt;p&gt;I mostly did random retail / customer service / office administration jobs. I got to work at some cool places, like developing film at pharmacies, a piano store, and a print store. But lots of those places also were either directly toxic to my mental health or it was blaringly obvious that we were all only there for a paycheck and were expendable. None of it was stuff I was proud of - it was just a job. I wanted more.&lt;/p&gt;
&lt;h2&gt;Recent Experience&lt;/h2&gt;
&lt;p&gt;It took a year of actively searching through the pandemic, but I landed my first role in May of 2021. I was an apprentice, then a full time software engineer, then hit level 2 in my 2+ years with that company. I truly loved my time there - there was a strong culture of respect and learning and giving back to others, and it was such a fun experience. We only parted due to a layoff, which can happen at any company even if they love you. We parted on good terms, which I&apos;m thankful for.&lt;/p&gt;
&lt;p&gt;But even in my last year there, I&apos;d felt myself stagnating. I knew I&apos;d grown so much from being actively employed and paid to do software, but I couldn&apos;t figure out what to dig into next, and I was painfully aware of how things were slowing down. Even still, when I&apos;m now a free agent and can dig into anything or go anywhere, I still just...don&apos;t know.&lt;/p&gt;
&lt;h2&gt;The Path Ahead&lt;/h2&gt;
&lt;p&gt;So that&apos;s a lot of what I hope this blog will be.&lt;/p&gt;
&lt;p&gt;An exploration of my career options, how I&apos;m feeling on certain ideas, where I think I want to go and why.&lt;/p&gt;
&lt;p&gt;Sharing the ups and downs of the journey, and being able to see my career path develop over the years.&lt;/p&gt;
&lt;p&gt;And also a place to share things I&apos;m learning or find interesting.&lt;/p&gt;
&lt;p&gt;I&apos;m confident a new job will come along when it&apos;s time. I know that sounds a little clichè and naive, but I mean it. I&apos;m completely confident in my ability to build projects and persist through the pain of the job search process and eventually find a place that feels right and gives me an offer. I&apos;ve done it before, afterall, so I know it&apos;s possible. But it&apos;s also tough and I&apos;m human, and I want to talk through that side as well. I&apos;m an optimistic realist, after all - I know progress is never linear, but I want to talk through the good and the bad of it all, be transparent in who I am.&lt;/p&gt;
&lt;p&gt;So, if you see this post - I&apos;m glad to have you along for the journey. 💞 I hope I&apos;ll keep sharing posts that you find interesting and helpful! And if not, that&apos;s ok too. In the end I&apos;m writing for myself, so if I&apos;m the only person I help here I&apos;m perfectly okay with that.&lt;/p&gt;
&lt;p&gt;Now, let&apos;s go build and share all the things!
&lt;/p&gt;
</content:encoded></item><item><title>My THAT Conference Experience</title><link>https://lindakat.com/blog/my-that-experience/</link><guid isPermaLink="true">https://lindakat.com/blog/my-that-experience/</guid><description>My favorite moments and takeaways from THAT Conference!</description><pubDate>Wed, 07 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;TL;DR - THAT Conference is incredible and if you have the opportunity to go, you should!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I had the honor of attending THAT Conference in Round Rock, TX last week. It was my first in person, multi-day conference and I could not have asked for a better experience!&lt;/p&gt;
&lt;p&gt;If you&apos;d like to learn more about the conference in general, I encourage you to check out &lt;a href=&quot;https://thatconference.com/&quot;&gt;their website&lt;/a&gt;. In this post I&apos;m going to share my intention going into the conference, my favorite moments, and the takeaways I learned.&lt;/p&gt;
&lt;h2&gt;Intentions and Experiences&lt;/h2&gt;
&lt;p&gt;I went into THAT Conference with one main goal - &amp;lt;strong&amp;gt;make friends&amp;lt;/strong&amp;gt;. I&apos;ve been employed as a developer for 2 years and I&apos;ve been chatting with people online about development for closer to 7. But I&apos;ve met so few people in real life, and my personal friend network is almost non-existent at the moment. While I very much treasure the communities and friends I&apos;ve made online and never want the option to connect digitally to go away, it can be hard to have deeper conversations through text. And especially right now, when I&apos;m unemployed and really need some connections to help me find whatever&apos;s next, getting to be seen as a real human was the most important thing to me. And wow did I deliver on that!&lt;/p&gt;
&lt;p&gt;I have to give myself some huge kudos for sticking with my intention for three straight days. For a lot of people, introducing yourself to someone new or walking up to join an active conversation may be no big deal. But this is something I&apos;ve never felt comfortable with.&lt;/p&gt;
&lt;p&gt;AND YET.&lt;/p&gt;
&lt;p&gt;I did this so many times over the course of the week, and each time was welcomed into the circle and felt like people were genuinely interested in meeting me. It was mind blowing and yet I got so good at it by the end of our time together! I&apos;m really proud of myself for not giving in to my own fears and worries and putting myself out there.&lt;/p&gt;
&lt;h3&gt;Open Space&lt;/h3&gt;
&lt;p&gt;Along with this - I decided to host an open space on documenting your journey in tech!&lt;/p&gt;
&lt;p&gt;Open spaces were a neat thing about THAT - anyone in attendance could decide on a topic they wanted to discuss with people, write it on a sticky note, and put that on a board that showed available times and tables. Then you&apos;d sit down at the table and whoever was interested could stop by and chat about it. There was a huge range of topics, technical and otherwise, and it was really neat to see so many people have ideas to share.&lt;/p&gt;
&lt;p&gt;Mine was based on my first talk I did last October on the same topic (documenting your journey). I&apos;d been getting so much value from others and was riding the high of being so proud of myself for talking to so many people that I really wanted to try and give back. I was SO nervous the night before and the whole next day until it was time for mine. I had one of my breakfast buddies stop by and we had a really nice chat all about why it&apos;s worth documenting your career, ways you can do it, and also just general life and how to navigate around Notion and Discord. 😊 It was such a nice time and I can still hardly believe that I actually went through with it!&lt;/p&gt;
&lt;h3&gt;After Hours&lt;/h3&gt;
&lt;p&gt;The last talk of the each day wrapped up at 5 PM so everyone could hang out afterwards. The first two days had planned activities, but even on the third I was able to spend time with some of my new friends. This was honestly one of the parts I felt the most nervous about, but each night was so much fun!&lt;/p&gt;
&lt;p&gt;The first night was happy hour, where I got to chat with some of the crew, tease my old boss about meeting one of her good friends, and realize that one of the guys looks a lot like Jensen Ackles. It was light hearted and fun, and when it was time for me to leave it was easy for me to say my goodbyes and slip away.&lt;/p&gt;
&lt;p&gt;The second night was a big barbeque. I ate with a whole new group of people, a few that have been on my fangirl list to meet. We had a lot of fun conversation, and ended the meal playing a goofy TikTok game and laughing our heads off. I hadn&apos;t remembered how long it had been since I&apos;d been able to just goof off and laugh with people.&lt;/p&gt;
&lt;p&gt;The third night I got invited to go get tacos with some of the second night group and some new folks. I was still getting to meet new people even after the event was officially over! The conversation flowed like I was hanging out with people I&apos;ve known for years, ranging from light hearted to deeper topics and ending with our whole group playing Draw Battle together.&lt;/p&gt;
&lt;p&gt;All three nights were filled with laughter and connection. It felt like I belonged there. That&apos;s not a feeling I&apos;ve had often, so it&apos;s also not one I take lightly. It was incredible to feel so welcomed and comfortable around such a wonderful group of people.&lt;/p&gt;
&lt;h3&gt;Starstruck&lt;/h3&gt;
&lt;p&gt;Probably the most life affirming things were the random compliments and absolute acceptance I felt from meeting some of the people I&apos;ve followed and looked up to online for a long time. Only a few had I even had actual interactions with through smaller meetups, and even then there was no guarantee they&apos;d remember me.&lt;/p&gt;
&lt;p&gt;But I had some of the sweetest interactions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/marktechson&quot;&gt;Mark Techson&lt;/a&gt; told me he was proud of me and really lifted me up about the path I took into tech.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/AbbeyPerini&quot;&gt;Abbey Perini&lt;/a&gt; gave me a sticker (he&apos;s already on my laptop).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/shaundai&quot;&gt;Shaundai Person&lt;/a&gt; told me I was exuding positivity.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/jamesqquick&quot;&gt;James Quick&lt;/a&gt; helping me with his Astro course and offering to introduce me to anyone I wanted.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/bradgarropy&quot;&gt;Brad Garropy&lt;/a&gt; saw me wearing a shirt he designed and said he almost wore the same one that day. 😁&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/emmycacao&quot;&gt;Emmy Cao&lt;/a&gt; recognizing me from a women in tech meetup she&apos;d spoken at months before.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/jen_ayy_&quot;&gt;Jenny Truong&lt;/a&gt; inviting me to eat with her and being an all around sweet and fun person.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/TejasKumar_&quot;&gt;Tejas Kumar&lt;/a&gt; saying he was glad we got to meet and encouraging me.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/DavidKPiano&quot;&gt;David Khourshid&lt;/a&gt; liking my pusheen coding shirt and offering to help with any XState problems I might run into on an open source project I&apos;m considering updating.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Plus so many of them offered to connect me with others, or boosted my looking for work posts, or offered help in some other way. I&apos;d been following a lot of these people online for so long because of the authentic nature they shared, and it was so refreshing to meet them in person and see that it&apos;s real. I&apos;m still blown away.&lt;/p&gt;
&lt;h3&gt;Strangers to Friends&lt;/h3&gt;
&lt;p&gt;I also really value all the people I met who I either had briefly chatted with before online or that I&apos;d never met. It was so interesting getting to learn everyone&apos;s stories and hear all of the different paths people have taken to lead them here.&lt;/p&gt;
&lt;p&gt;Special shoutouts to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My breakfast crew, Roxy and Sharon! We ate together all three mornings and it was really nice to have that little bit of consistency to start the day. Truly delightful ladies. 💖&lt;/li&gt;
&lt;li&gt;Kabrina, who hyped me up every time she saw me and was so lovely, and her daughter, who wanted to eat breakfast with us the first morning because we were a table full of women and was excited to do her own open space!&lt;/li&gt;
&lt;li&gt;Sarah and Ryan, the two people I&apos;d actually talked to before. It&apos;s rare I get to meet my online friends so it was really nice getting to chat with them in person.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And there&apos;s so many other people I met that aren&apos;t listed here. For every single one of you - thank you for being so awesome!&lt;/p&gt;
&lt;h2&gt;Takeaways&lt;/h2&gt;
&lt;p&gt;I went into this conference expecting to be exposed to some new ideas and potentially improving my knowledge on others, and that for sure happened.&lt;/p&gt;
&lt;p&gt;I got to hear talks about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How file downloads work&lt;/li&gt;
&lt;li&gt;Building and testing GitHub actions&lt;/li&gt;
&lt;li&gt;Content creation&lt;/li&gt;
&lt;li&gt;AI and the next generation of web apps&lt;/li&gt;
&lt;li&gt;Using LinkedIn for career growth&lt;/li&gt;
&lt;li&gt;Git internals in VS Code&lt;/li&gt;
&lt;li&gt;Designing for augmented reality&lt;/li&gt;
&lt;li&gt;Cultivating confidence&lt;/li&gt;
&lt;li&gt;Data and storytelling&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also got to hear a lot of life experiences, and more vulnerable and candid conversations than I would have expected. Everyone opened up to each other so easily - it really did feel like a large family gathering, or like the best parts of a summer camp.&lt;/p&gt;
&lt;h3&gt;Daily Intentions&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/TheClarkSell&quot;&gt;Clark Sell&lt;/a&gt;, the event host, did such a great job at helping us define our intentions for the day. He talked to us for a few minutes before introducing the keynote speaker each morning, and it was a great way to get ready for the day&apos;s talks.&lt;/p&gt;
&lt;p&gt;He started the first day asking us four questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Why are you here?&lt;/li&gt;
&lt;li&gt;Who do you want to meet?&lt;/li&gt;
&lt;li&gt;What can you give?&lt;/li&gt;
&lt;li&gt;What will you do after?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And each day he asked us to remember our answers, and see if we were honoring them. I did and continue to hold true to my answers!&lt;/p&gt;
&lt;p&gt;A few other key quotes from Clark&apos;s intros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;Confine yourself to the present&quot;&lt;/li&gt;
&lt;li&gt;&quot;What&apos;s old is new again&quot; (as a middle-aged career changer, this is my new life motto lol)&lt;/li&gt;
&lt;li&gt;&quot;The people in this room are the people that are meant to be here&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Shaundai&apos;s Keynote&lt;/h3&gt;
&lt;p&gt;Shaundai has such a great sense of humor. I loved her archery analogy for transferable skills. She compared each skill we have to an arrow in our quiver, then reminded us that there are three steps to actually shooting our arrows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ready: show the relevance of our skill&lt;/li&gt;
&lt;li&gt;Aim: sell the value of it, not the features&lt;/li&gt;
&lt;li&gt;Fire: tell a story&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Her talk inspired me to change how I think of and talk about my core skills. She also finally put a phrase to my love of puzzles - pattern matching! I can&apos;t put into words how long I&apos;ve tried to define that better and failed, so I&apos;m really excited I have a phrase for it now. lol!&lt;/p&gt;
&lt;p&gt;You can watch her talk here: https://www.youtube.com/watch?v=qcKK2Yyr4nE&lt;/p&gt;
&lt;h3&gt;Danny&apos;s Keynote&lt;/h3&gt;
&lt;p&gt;Danny had a very relatable story of his transition into tech, and used a great technique of swapping his name with someone else&apos;s name, both well known people in the industry and people that are breaking into the field.&lt;/p&gt;
&lt;p&gt;Other great points from his talk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mental exhaustion is different from physical exhaustion&lt;/li&gt;
&lt;li&gt;We&apos;re allowed to be a priority in our own life&lt;/li&gt;
&lt;li&gt;&quot;A conversation lasts longer than when the voices end&quot;&lt;/li&gt;
&lt;li&gt;&quot;Be a connector for the unconnected&quot;&lt;/li&gt;
&lt;li&gt;A reminder that we can choose our influencers&lt;/li&gt;
&lt;li&gt;Fail, pivot, grow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also didn&apos;t realize he&apos;s in the Dallas area, and runs a meetup! So I&apos;ve got a potential new group of friends to meet soon.&lt;/p&gt;
&lt;p&gt;You can watch his talk here: https://www.youtube.com/watch?v=pgFBitwKd6g&lt;/p&gt;
&lt;h3&gt;Clark&apos;s Keynote&lt;/h3&gt;
&lt;p&gt;Clark&apos;s story was very moving. He made a great point multiple times throughout the conference that we don&apos;t want to try and offer people solutions, but rather share our experiences. He was so open and vulnerable with us, and I definitely teared up a few times.&lt;/p&gt;
&lt;p&gt;My favorite points from his talk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;Play the tape forward - is it the life you want?&quot;&lt;/li&gt;
&lt;li&gt;&quot;Be the designer of your own life&quot;&lt;/li&gt;
&lt;li&gt;&quot;Is this a one time and one time only event? or a one time, any time event?&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can watch his talk here: https://www.youtube.com/watch?v=_w8B2B-xyYI&lt;/p&gt;
&lt;h3&gt;Talks and Spaces&lt;/h3&gt;
&lt;p&gt;I got to hear a lot of deep dives into specific topics during the talks and open spaces which was really cool. I also was able to hear some more open-ended talks about telling stories and life experiences.&lt;/p&gt;
&lt;p&gt;I took some notes during most of these, but I honestly didn&apos;t try to make myself remember everything from it. I wanted to focus on being more present, and often when I&apos;m trying to take notes I end up falling behind in the conversation and getting confused. So for most of these I was simply present, and just wrote down a handful of key phrases when they really stuck out to me.&lt;/p&gt;
&lt;p&gt;These are a few of the phrases that really resonated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;Authenticity is key&quot;&lt;/li&gt;
&lt;li&gt;&quot;Creating content is a first round interview at scale&quot;&lt;/li&gt;
&lt;li&gt;&quot;This is the least known I&apos;ll ever be&quot; (HUGE reminder that now is the best time to be learning and making mistakes)&lt;/li&gt;
&lt;li&gt;&quot;Only people who are worse than you will judge you&quot;&lt;/li&gt;
&lt;li&gt;&quot;When we think something is magic, we release our responsibility to be involved with it&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Overall, I cannot recommend this conference enough! For me this was a one time and one time only experience. I&apos;ll definitely attend more conferences and continue to grow these new friendships. But the timing and size of the conference were exactly what I needed right now. For whatever reason, I was in just the right mindset to put myself out there completely. I left this trip feeling like I&apos;d finally found my people, and they&apos;d welcomed me in with open arms. That feeling is rare, and I&apos;m doing everything I can to hold onto these memories as I&apos;m back in my normal day to day.&lt;/p&gt;
&lt;p&gt;While I don&apos;t know that I&apos;ll be able to make it to the Wisconsin event this summer, I&apos;m for sure going to do everything possible to ensure I make it back to the Texas event next year. I hope I get to see a lot of these new friends again and also meet more friendly faces!&lt;/p&gt;
</content:encoded></item><item><title>Code Breaker now live in the Arcade!</title><link>https://lindakat.com/blog/code-breaker-live-arcade/</link><guid isPermaLink="true">https://lindakat.com/blog/code-breaker-live-arcade/</guid><description>Play the new Code Breaker game on my arcade site now!</description><pubDate>Sat, 02 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been working on my arcade site a little more lately, and it&apos;s been a blast. I really want to have it polished enough and ready to talk about on my portfolio by the end of the year, and I made some solid progress towards that goal this week!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Arcade is a work in progress right now. Please don&apos;t mind the imperfections as you&apos;re viewing it. Thanks. ❤&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;A little history&lt;/h2&gt;
&lt;p&gt;A few years back, I stumbled onto this &quot;Code Breaker&quot; game tutorial from CodeSchool, that walked you through building out a guessing game in vanilla JavaScript. At the time, I was still freshly learning JavaScript so building out a game sounded like a great idea!&lt;/p&gt;
&lt;p&gt;The game itself is fairly straight forward - you&apos;re trying to guess a 4 digit code in 10 guesses. Each guess, you get to see what you guessed and a little guide to show if that number is in the right place, in the code but not this exact place, or not in the code at all (think Wordle). And then when the game is over it shows you the actual number.&lt;/p&gt;
&lt;h2&gt;Updates and why now&lt;/h2&gt;
&lt;p&gt;Fast forward a few years and I ended up creating &lt;a href=&quot;/blog/building-snake-html-canvas-js&quot;&gt;my version of Snake&lt;/a&gt; with inspiration from a different online course. I decided I wanted a space to keep all these little games that were so fun to build, so I created &lt;a href=&quot;https://lindakat-arcade.netlify.app/&quot;&gt;my Arcade&lt;/a&gt;! My goal with this is to have a space to share any little games I create, either on my own or from tutorials, and use the site to help show more of my &quot;gamer girl&quot; side and my range of skills.&lt;/p&gt;
&lt;p&gt;The Arcade is built with Astro, so I can take advantage of their &lt;a href=&quot;https://docs.astro.build/en/concepts/islands/&quot;&gt;islands architecture&lt;/a&gt; to write my games in any JavaScript framework I want! This way I can learn or reinforce different frameworks, and still share them all on the same site with minimal issues. It&apos;s so very cool.&lt;/p&gt;
&lt;p&gt;Finding myself currently in the market for a new job, I knew I wanted more projects to share on my portfolio. So I decided I want to use the Arcade to be a way to showcase my skills and personality in one, and it will be a lot more fun to talk about with other people too!&lt;/p&gt;
&lt;h2&gt;Progress thoughts&lt;/h2&gt;
&lt;p&gt;Porting the code itself over into an Astro component was fairly straight forward, but it&apos;s honestly not ideal the way it is.&lt;/p&gt;
&lt;p&gt;Both Snake and Code Breaker have the same issue - all their logic lives in a script tag directly in an Astro component, which makes it globally available. And since they share the same layout, I&apos;m running into issues with Code Breaker getting an error in the console from Snake, and vice versa. Both scripts are running no matter which game is actually being viewed, and so the event listeners and query selectors can&apos;t find the items (obviously, because that game isn&apos;t open). It doesn&apos;t actually break anything on the site since you won&apos;t be able to interact with those errored elements anyways, but it&apos;s still annoying. I don&apos;t want errors in my console! 😆&lt;/p&gt;
&lt;p&gt;The way to fix that is to move a lot of the actual game logic into the Astro script area (so it&apos;s not global anymore) or into separate components so each game then has to pull in their own components and maybe they won&apos;t conflict as much? I&apos;m not sure yet. There&apos;s a ticket for it, after I spent a short amount of time seeing if I could quickly fix it. lol&lt;/p&gt;
&lt;p&gt;The only other complaint I really had with porting the game over was adding a lot of assertions to appease TypeScript. Lots of assuring it that these elements would exist, because I was directly creating them in the template right above it. It&apos;s not ideal, and again I think if I can figure out how to move a lot of the logic to the actual &lt;code&gt;.astro&lt;/code&gt; file script area, and leave the client-side &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag to just the event listeners and query selectors, then that might help with a lot of this.&lt;/p&gt;
&lt;p&gt;Everything else was more of a pleasure to deal with! I had to make some logic adjustments to restart the game and keep the page from refreshing since it&apos;s now a subpage inside another page. I squabbled a bit with some icon libraries before just grabbing unicode characters for the hint icons. lol And a few weird little style issues because I create a lot of the HTML within the JavaScript so changes in the &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; tag didn&apos;t take.&lt;/p&gt;
&lt;h2&gt;Wrapup&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://lindakat-arcade.netlify.app/code-breaker/&quot;&gt;Code Breaker is now live on the Arcade site and ready to play&lt;/a&gt;! I have a few things I&apos;d still like to improve (as always), but it&apos;s in a &quot;good enough to go live&quot; stage now so we&apos;re moving forward with it! Enjoy!&lt;/p&gt;
</content:encoded></item><item><title>Building Snake with HTML Canvas and JS</title><link>https://lindakat.com/blog/building-snake-html-canvas-js/</link><guid isPermaLink="true">https://lindakat.com/blog/building-snake-html-canvas-js/</guid><description>I made my own version of Snake! Here&apos;s what I learned in the process.</description><pubDate>Fri, 08 Jan 2021 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Background &amp;amp; Setting&lt;/h2&gt;
&lt;p&gt;While going through Wes Bos&apos; &lt;a href=&quot;https://beginnerjavascript.com&quot;&gt;Beginner JavaScript&lt;/a&gt; course, the first big project we did was creating an Etch a Sketch (&lt;a href=&quot;https://codepen.io/lindakatcodes/pen/ZEWRPMo&quot;&gt;here&apos;s my implementation&lt;/a&gt;)! It was so much fun, and gave me an idea - I could create the Snake game in a similar way!&lt;/p&gt;
&lt;p&gt;If you&apos;ve never heard of or played Snake before, it&apos;s an old phone game where you control a snake. You start off small, and you move around the board and try to eat pieces of food. For each piece you eat, your body grows a little bigger. If you hit the side of the game board or your body, the game is over. It sounds simple, but once your body gets long enough it can be tricky!&lt;/p&gt;
&lt;p&gt;&amp;lt;img
src=&quot;https://media1.tenor.com/images/14ea3c45f66ec873f5ee9cf1abfd0340/tenor.gif&quot;
alt=&quot;Snake being played on a Nokia phone&quot;
/&amp;gt;&lt;/p&gt;
&lt;p&gt;Since the Etch a Sketch also involves drawing lines on the screen, I figured I could use the same methods to create Snake! It&apos;s something I&apos;ve wanted to play with making for awhile, but always seemed like too much work. Going through the course exercise made me realize that maybe it was more do-able than I thought!&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Tech Used&lt;/h2&gt;
&lt;p&gt;The real star of this game is the HTML &lt;code&gt;canvas&lt;/code&gt; element. This is an element that lets you draw complex shapes on the screen. I had heard of the &lt;code&gt;canvas&lt;/code&gt; element before, but really hadn&apos;t had a use case for it. But once we used it in the course exercise, it seemed like the perfect &quot;canvas&quot; (get it?? lol) for building this game! This also uses some fairly straight forward vanilla JavaScript.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Lessons Learned&lt;/h2&gt;
&lt;p&gt;Holy buckets, I learned a lot while working on this - it turned out to be a bit more difficult than I thought! Here&apos;s a few of the little gotchas I ran into.&lt;/p&gt;
&lt;h3&gt;Setting the lineCap is important&lt;/h3&gt;
&lt;p&gt;I thought the food style was a good place to start - it&apos;s just a single small square that goes to one spot, then moves to a new spot when the snake triggers it.&lt;/p&gt;
&lt;p&gt;I set my &lt;code&gt;lineWidth&lt;/code&gt; and &lt;code&gt;fillStyle&lt;/code&gt; for the food, made a little random number function to get a random x and y, and put in the code that (I thought) would show a little square of food on the canvas. Saved and...nothing! This had worked in the Etch a Sketch project - why wasn&apos;t it working now?&lt;/p&gt;
&lt;p&gt;Turns out, you need to adjust the &lt;code&gt;lineCap&lt;/code&gt; to be something &lt;em&gt;other&lt;/em&gt; than the default for a single point to show. If you&apos;re drawing a full line it will work without the &lt;code&gt;lineCap&lt;/code&gt; adjustment, but for this single point I had to set it to &apos;square&apos;, and then it showed up.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;foodCtx.lineWidth = SIZE;
foodCtx.fillStyle = &quot;#27ae60&quot;;
foodCtx.lineCap = &quot;square&quot;;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Making the snake grow properly&lt;/h3&gt;
&lt;p&gt;For this game, your snake starts as a single spot, then grows as it eats. The body also needs to stay a consistent length, until the food trigger makes it bigger. So it needs to move to new spots, and maintain it&apos;s length.&lt;/p&gt;
&lt;p&gt;Not really sure why it took me a bit to work out, but in the end I decided the best way to track the snake was to keep an array of my moves, as well as a variable storing the current length of the snake.&lt;/p&gt;
&lt;p&gt;Basically, each time the snake moves, the moves array needs to update. It needs to add the new move to the array, and then it needs to remove the oldest move from the array. Then the line can be adjusted from the updated array list. This lets it always show as a certain length, and makes it relatively easy to grow as well!&lt;/p&gt;
&lt;p&gt;I also made sure to check the length of the moves array - when we first eat a piece of food, our array isn&apos;t going to be as long as the new body length needs to be yet, so we don&apos;t want to remove anything.&lt;/p&gt;
&lt;h3&gt;Covering the old moves&lt;/h3&gt;
&lt;p&gt;The other part of making the snake body move is covering up or removing the moves we no longer need. I felt like completely erasing and redrawing the snake each move would cause too much jumpiness. So my next thought was to just change the line color to white (the background color) and draw over the old moves. But I kept getting these ghosting artifacts, like it wasn&apos;t fully covering up the old moves.&lt;/p&gt;
&lt;p&gt;This was super weird to me, since the width and placement of the path were the same as before, and (at least from what I could tell) there wasn&apos;t a stroke on the path that I might be missing. I solved this by simply increasing the size of the path width to 5 points bigger than the regular snake size, and it covered it completely.&lt;/p&gt;
&lt;p&gt;Though, now that I&apos;m writing this, I&apos;m seeing another option that might work nicely! Which ties into another decision I made in creating this...&lt;/p&gt;
&lt;h3&gt;Multiple canvases and z index&lt;/h3&gt;
&lt;p&gt;I had read that separating multiple drawings onto separate canvases and layering them over each other can be better for performance, especially if one needs to be adjusted a lot and one doesn&apos;t. I used this technique, putting the food on one canvas, and the snake on another. Since I stored the coordinate values for both and the canvases were the same size, detecting collisions was still easy.&lt;/p&gt;
&lt;p&gt;What I mentioned and didn&apos;t think of until now is that I might have been able to make a third canvas that stored the removed values! Then I could have had that line draw over the removed points in white, and I may not have run into the artifacting issues I had drawing on top of an already existing path. I&apos;ll have to test this out later!&lt;/p&gt;
&lt;p&gt;I also ran into the importance of setting the correct z index for canvases. I layered the snake canvas over the food canvas at first, and when the snake would run over the edge of the food (if the new food generated next to the tail of the snake), when an old snake body part would be painted over it would also paint over a portion of the food. Setting the food canvas on top prevents this.&lt;/p&gt;
&lt;h3&gt;Detecting body hits&lt;/h3&gt;
&lt;p&gt;Detecting if the snake head has run into one of the game board edges was easy - I know the width and height of the board, so I just check for hitting zeroes or hitting the width/height numbers.&lt;/p&gt;
&lt;p&gt;Detecting the body hits was also seemingly easy - I had an array of all the locations of the body points, after all. But the thing that always seems to trip me up in JavaScript is searching through objects - and naturally, I was storing each coordinate as an object of x and y values.&lt;/p&gt;
&lt;p&gt;I thought the &lt;code&gt;.includes&lt;/code&gt; method on arrays would work great for this - however, it can&apos;t read into the objects, so it didn&apos;t work. Turns out, what I needed was the &lt;code&gt;.find&lt;/code&gt; method instead!&lt;/p&gt;
&lt;p&gt;Using &lt;code&gt;.find&lt;/code&gt;, you can look at each point in your array, and see if you have a particular key that matches a particular value. Using this, it was actually as easy as I thought to detect if the current head ran into a value in the body array - just had to find the right JavaScript method to do it!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if (body.find((point) =&amp;gt; point.x === headX &amp;amp;&amp;amp; point.y === headY)) {
  gameStatusUi.innerHTML = `
    Game over! &amp;lt;br&amp;gt;
    Hit your body.
    `;
  endGame();
  return;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Setting canvas focus&lt;/h3&gt;
&lt;p&gt;The last issue I ran into was starting a new game. The game starts automatically when you load the page, but once that game ended I wanted a way for people to start again. So I set up a restart button, and got the board clearing and the necessary values resetting, so you always start from a score of zero with fresh coordinates.&lt;/p&gt;
&lt;p&gt;But...I couldn&apos;t get the game to actually show moves on new rounds! It was the weirdest thing to me. And arrow keys, which had the default event prevented, were now not preventing the default (an arrow key&apos;s default is to move the viewport around). Something wasn&apos;t right.&lt;/p&gt;
&lt;p&gt;I stumbled on the answer to this by accident - during one of my attempts, I clicked on the screen, and suddenly the arrow keys were making the snake move! Then I had one of those &quot;ah ha&quot; moments - the canvas must be losing keyboard focus!&lt;/p&gt;
&lt;p&gt;Turns out, this was exactly it! I adjusted my start game function to explicitly set the snake canvas to have focus as the last thing. And then everything worked just like I wanted it to. :)&lt;/p&gt;
&lt;h2&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;In all, this took me about 7.5 hours to create. Which...feels like a lot to me, honestly, but involves a lot of reading of the &lt;code&gt;canvas&lt;/code&gt; specs, troubleshooting various things, and a little bit of styling, documentation, and code rearranging. So all in all, not that bad - and definitely faster than I could have created it a year ago. :) Progress is progress!&lt;/p&gt;
&lt;p&gt;There&apos;s always room for improvement - I might eventually test out the third canvas idea, and I would like to make it so that once the game starts, the snake moves automatically in the last given direction (like the original does) - but overall, I&apos;m very pleased with how this turned out. :)&lt;/p&gt;
&lt;p&gt;You can view the code for the full game &lt;a href=&quot;https://github.com/lindakatcodes/minisites/tree/main/snake&quot;&gt;on my GitHub here&lt;/a&gt;. And you can &lt;a href=&quot;https://snake-mini.netlify.app/&quot;&gt;play my version yourself here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;img src=&quot;https://i.imgur.com/txjQiqg.png&quot; alt=&quot;View of my version of snake&quot; /&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>2024 Year in Review</title><link>https://lindakat.com/blog/2024-year-in-review/</link><guid isPermaLink="true">https://lindakat.com/blog/2024-year-in-review/</guid><description>Another year in review post. Here&apos;s to putting this one behind us!</description><pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import PostImageWrapper from &quot;@components/PostImageWrapper.astro&quot;;
import atwwdLive from &quot;../../assets/blog/2024-review/atwwd-live.jpg&quot;;
import jessicaLinda from &quot;../../assets/blog/2024-review/jessica-linda.jpg&quot;;
import cycFriends from &quot;../../assets/blog/2024-review/ladies-cyc-1.jpg&quot;;
import legoFortnite from &quot;../../assets/blog/2024-review/lego-fortnite-crafting.png&quot;;
import lindaAbbey from &quot;../../assets/blog/2024-review/linda-abbey.jpg&quot;;
import lindaCheeto from &quot;../../assets/blog/2024-review/linda-cheeto.jpg&quot;;
import lindaHair from &quot;../../assets/blog/2024-review/linda-hair.jpg&quot;;
import lindaJacob from &quot;../../assets/blog/2024-review/linda-jacob.jpg&quot;;
import lindaShaundai from &quot;../../assets/blog/2024-review/linda-shaundai.png&quot;;
import onceHuman from &quot;../../assets/blog/2024-review/oh-timers.png&quot;;
import ornaments from &quot;../../assets/blog/2024-review/pet-ornaments.jpg&quot;;
import sadGirlSet from &quot;../../assets/blog/2024-review/sad-girl-set.jpg&quot;;
import techLadies from &quot;../../assets/blog/2024-review/tech-ladies-dallas.jpg&quot;;
import thatCollage from &quot;../../assets/blog/2024-review/that-collage.jpg&quot;;
import tracyLindaRob from &quot;../../assets/blog/2024-review/tracy-linda-rob.jpg&quot;;
import winspear from &quot;../../assets/blog/2024-review/winspear.jpg&quot;;&lt;/p&gt;
&lt;p&gt;I don&apos;t get the sense that 2024 was a particularly great year for anyone, myself included. I certainly hoped I wasn&apos;t going to end it the same way I started it - unemployed and bummed out. Yet here I am, still in the same boat.&lt;/p&gt;
&lt;p&gt;That&apos;s also not quite true. I am still unemployed and very bummed out about it. But I&apos;ve learned more about myself, had some soul-filling experiences, and am still hopeful. These signs tell me there&apos;s still a chance for me, and I&apos;m not giving up.&lt;/p&gt;
&lt;p&gt;There is no clear good and bad for me this year. Just memories and growing pains. So for this post, I&apos;d like to highlight the memories I want to remember, and do some reflection on the year as a whole.&lt;/p&gt;
&lt;h2&gt;My favorite memories of 2024&lt;/h2&gt;
&lt;p&gt;Without a doubt, the best parts of this year involved the people I got to meet.&lt;/p&gt;
&lt;p&gt;I started the year with the amazing THAT Conference. I &lt;a href=&quot;/blog/my-that-experience/&quot;&gt;wrote about my full experience in a previous post&lt;/a&gt;, and I still stand by it. What a great time.&lt;/p&gt;
&lt;p&gt;&amp;lt;PostImageWrapper images={[
{
pic: lindaAbbey,
caption: &quot;Posing with Abbey Perini&quot;,
alt: &quot;Linda and Abbey stand next to each other, smiling at the camera.&quot;,
},
{
pic: lindaShaundai,
caption: &quot;Cheesin&apos; with Shaundai Person&quot;,
alt: &quot;Linda and Shaundai stand next to each other, grinning at the camera.&quot;,
},
{
pic: thatCollage,
caption: &quot;Featuring the breakfast crew Sharon and Roxy, THE Mark Techson, and a group pic from Taylor Desseyn&apos;s talk&quot;,
alt: &quot;A collage of photos. Top left shows Mark Techson and Linda smiling into the camera. Top right is four rows of people grinning at the camera, all there to hear Taylor Desseyn talk. Bottom left is a white board that says &apos;THAT Conference&apos; and has the signatures of the attendees in various colors. Bottom right shows Linda, Sharon, and Roxy smiling at the camera together.&quot;,
}
]} /&amp;gt;&lt;/p&gt;
&lt;p&gt;I got to meet the lovely Jessica Wilkins in person, which was such a treat.&lt;/p&gt;
&lt;p&gt;I went to a local Tech Ladies meetup, where I got to see a giant Cheetos statue and hang out with funny, smart ladies partly in the meeting room and partly in the basement due to a tornado warning. Oh Texas. lol&lt;/p&gt;
&lt;p&gt;&amp;lt;PostImageWrapper images={[
{
pic: jessicaLinda,
caption: &quot;Walking around with Jessica Wilkins&quot;,
alt: &quot;Jessica and Linda grin into the camera from a grassy park sidewalk.&quot;,
},
{
pic: lindaCheeto,
caption: &quot;Look at how big this statue is!&quot;,
alt: &quot;Linda poses with her arms outstretched towards a statue twice her size of a thumb, forefinger, and middle finger pointing towards the sky and holding a neon orange Cheetos puff, complete with cheese dust on the finger pads.&quot;,
},
{
pic: techLadies,
caption: &quot;The Tech Ladies group posing in the basement during the tornado warning&quot;,
alt: &quot;Four rows of ladies in tech stand together smiling for the camera in a bright room with white walls, gray carpet, and blue ceiling.&quot;,
}
]} /&amp;gt;&lt;/p&gt;
&lt;p&gt;I got to participate in the Journeys conference, and was able to be a small contributor to helping a family deal with a major health scare. I rarely get to actually help with things like this, so even though my part was small getting to play a part at all made me feel good.&lt;/p&gt;
&lt;p&gt;I went to two live events that had nothing to do with my career. The first was seeing Richard Dawkins, the second was seeing one of my favorite podcasts And That&apos;s Why We Drink. Very different vibes lol but I really enjoyed both of them.&lt;/p&gt;
&lt;p&gt;&amp;lt;PostImageWrapper images={[
{
pic: winspear,
caption: &quot;The lovely Winspear Opera House where Richard Dawkins spoke&quot;,
alt: &quot;Center stage is a blue background dramatically lit, with two chairs and a table on the stage in front of it. Red walls and tan seating surrounds the stage. Hanging from the ceiling is a stunning chandelier made of long, thin rods of warm white light.&quot;,
},
{
pic: atwwdLive,
caption: &quot;A screenshot from Instagram of Em and Christine on stage&quot;,
alt: &quot;On stage sit the two hosts of the And That&apos;s Why We Drink podcast, Em and Christine. The stage is decorated with ghost hunting equipment and red chairs, white spotlights in front of the hosts and dark blue lights and curtain behind them. Above them hangs a giant screen with their tour logo on it, a ghost and skeleton sitting in green armchairs facing each other with candles and spooky paraphernalia around them.&quot;,
}
]} /&amp;gt;&lt;/p&gt;
&lt;p&gt;I built two mini-sites for games I enjoy. The first was a companion site to build crafting lists in Lego Fortnite. This site was short lived but gave me a little intro to AstraDB and vector databases. The second was a timer reset countdown site for Once Human. Short and sweet NextJS site - at least if you don&apos;t count the handful of time/date bugs I had to go back in and fix after I launched it. lol&lt;/p&gt;
&lt;p&gt;&amp;lt;PostImageWrapper images={[
{
pic: legoFortnite,
caption: &quot;Lots of items to craft in Lego Fortnite&quot;,
alt: &quot;A four column list of checkboxes and item names white text on a black background, with a cherry red and dark gray button set below to generate the crafting list.&quot;,
},
{
pic: onceHuman,
caption: &quot;Played with grids and colors for these Once Human timers&quot;,
alt: &quot;Four boxes fill the screen, showing an icon, name, and timer for different timer resets. The icons and border for each box are in primary colors.&quot;,
}
]} /&amp;gt;&lt;/p&gt;
&lt;p&gt;Then I ended the year with another amazing conference, Commit Your Code. I saw most of the friends I made in January, made a few new friends and met important people from my career in person, all at the same time. I didn&apos;t write a blog for this one but did do a series of LinkedIn posts about the talks I attended, so &lt;a href=&quot;https://www.linkedin.com/search/results/content/?fromMember=%5B%22ACoAAAnWzpUBgMRlgU1cuy0pWn0YvCu3d-DUADw%22%5D&amp;amp;keywords=%23commityourcode&amp;amp;sortBy=%22date_posted%22&quot;&gt;if you&apos;re interested you can see those on LinkedIn&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;lt;PostImageWrapper images={[
{
pic: tracyLindaRob,
caption: &quot;First time meeting the CEO and manager from my first tech job in person!&quot;,
alt: &quot;Tracy, Linda, and Rob stand side by side beaming into the camera.&quot;,
},
{
pic: lindaJacob,
caption: &quot;Talking printing and art with Jacob Ashley&quot;,
alt: &quot;Linda and Jacob are mid conversation across a table filled with Jacob&apos;s artwork. There are bags with a sad computer on them, stickers galore, game patches, and more.&quot;,
},
{
pic: cycFriends,
caption: &quot;So very happy to have met so many new friends this year&quot;,
alt: &quot;Multiple faces grin into the camera in a close up selfie style.&quot;,
},
]} /&amp;gt;&lt;/p&gt;
&lt;h2&gt;Reflecting on the year&lt;/h2&gt;
&lt;p&gt;This year is a difficult one to pick wins or losses from. It was a very muddled, messy year overall for me. But even in the muck there are lessons we can learn. I found a few reflection-style questions that sounded interesting, so I wanted to answer those here.&lt;/p&gt;
&lt;p&gt;&amp;lt;p class=&quot;question&quot;&amp;gt; What are three (or more!) accomplishments you made in 2024? What personal strengths led you to these accomplishments? &amp;lt;/p&amp;gt;&lt;/p&gt;
&lt;p&gt;I expanded my network. I intentionally went into THAT with the goal of talking to other people, forcing myself to step into conversations and introduce myself. Putting myself out there like that is not something that comes naturally to me, so to have the bravery to do it and be so warmly welcomed each time I did was such a blessing. And I saw this same effect at Commit Your Code as well, even with less intention to put myself out there. It is growing, and I appreciate everyone in it.&lt;/p&gt;
&lt;p&gt;I&apos;m still here, and still trying. I knew this year was going to be a struggle since my layoff wasn&apos;t fresh, but I didn&apos;t realize just how impacted my mental health was from it all (and still is if I&apos;m being honest). I wish I could say that I gave the job search my all and it&apos;s all been out of my control, but that wouldn&apos;t be the complete truth. I have tried and have been rejected - but I&apos;ve also had to let myself slow way, way down and be ok with simply surviving most days. My current best isn&apos;t what my &quot;true&quot; best has been in the past, and it&apos;s hard to come to terms with that. But it IS still my best right now, which is all I can do. I&apos;m not giving in, and this won&apos;t defeat me. I will work in tech again.&lt;/p&gt;
&lt;p&gt;I read 24 books this year. They were all fiction, a mix of fantasy, romance, and thrillers. I really do love reading, and am really pleased I got to read as much as I did this year.&lt;/p&gt;
&lt;p&gt;&amp;lt;p class=&quot;question&quot;&amp;gt; How did you show up for yourself this year, and how can you show up for yourself right now? &amp;lt;/p&amp;gt;&lt;/p&gt;
&lt;p&gt;I do think I gained some deeper understandings about myself this year. I&apos;ve been letting myself feel all the hard feelings around my career and life, no matter how often they keep popping up, and trying to just feel them and let them go. It&apos;s a work in progress. I&apos;ve also started realizing I&apos;m very likely some form of neuro-divergent, and trying to lean into understanding some of that and viewing a lot of my life through a different lens.&lt;/p&gt;
&lt;p&gt;The biggest thing I know I&apos;m missing right now is structure. I do my best work when I have a schedule and routine to follow, and being on my own it&apos;s very difficult for me to both come up with that structure and to follow it. So this will be a huge way I can show up for myself in the coming year that will allow me to finally start seeing forward progress again.&lt;/p&gt;
&lt;p&gt;&amp;lt;p class=&quot;question&quot;&amp;gt; What can you forgive yourself for from this past year? What mistakes did you make that you can learn from? &amp;lt;/p&amp;gt;&lt;/p&gt;
&lt;p&gt;I forgive myself for missed opportunities. For the open positions I knew sounded good and I would&apos;ve loved but just could not get myself to get it together enough to apply for. For all the mean thoughts I&apos;ve had about my struggles to do the job search things that other people seem to do effortlessly.&lt;/p&gt;
&lt;p&gt;I keep thinking about a post I made on Twitter back in April or May about a project I was going to do and live stream, that I then....never did. I forgive myself for that as well. I was trying to put myself out there and do the thing scared, because I do still hold this idea in my head of streaming, both coding and playing games. I don&apos;t even have a good reason for myself for why I never did it. I could say it&apos;s that I don&apos;t particularly care about the project anymore which is true. Or that I got nervous, that my equipment isn&apos;t right, that the idea of being perceived and critiqued became too much to overcome. Some aspects of all of those are true, but none of them are the deciding factor in why it never happened. It just...didn&apos;t. And it&apos;s hard not to think that me not following through on this public statement is part of why my career has stalled.&lt;/p&gt;
&lt;p&gt;So I forgive myself for all of that. I know not to post things before I do them because I do struggle with the follow through and it makes me look bad. So a reminder for myself on that. But it also likely wasn&apos;t a noticeable thing to anyone but me, and that&apos;s ok too. Today&apos;s world moves much faster than I do, so I can almost always start fresh and succeed.&lt;/p&gt;
&lt;h2&gt;The year ahead&lt;/h2&gt;
&lt;p&gt;I think part of why this year felt so aimless was that I didn&apos;t set any goals or intentions for myself. Part of me actually still agrees with this idea and likes it, but I&apos;m also feeling the itch to &quot;start fresh&quot; and have something defined to work towards. I don&apos;t know what this will be just yet - I just got done saying I don&apos;t do well when I talk about things before they happen! lol So whatever I decide for this, it&apos;ll likely stay private until I make solid progress on it.&lt;/p&gt;
&lt;p&gt;But I think the big thing for this year is going to be finding my own rhythm. I love organization and goal setting and routine, even as I struggle to hold myself accountable to them and also love the freedom of going with the flow and letting each day be different. So finding the balance between these aspects of myself, finding the way to build on my skills and specialize and actively job search in a way that doesn&apos;t make me lose my mind will be key. That&apos;s the real goal - how can I make this career sustainable for me, in all the different stages? I aim to find the answer to that this year.&lt;/p&gt;
&lt;p&gt;&amp;lt;PostImageWrapper images={[
{
pic: lindaHair,
caption: &quot;I dyed my hair purple this summer!&quot;,
alt: &quot;A close up of Linda showing off her freshly dyed brown and violet purple hair.&quot;,
},
{
pic: sadGirlSet,
caption: &quot;Completed my Mintlodica Sad Girl set this year&quot;,
alt: &quot;A white keyboard features a black, pastel blue, and white key cap set. The keyboard sits on top of a dark gray desk mat with curled sleeping cats in pastel blue and green and small broken hearts and stars in various pastel colors.&quot;,
},
{
pic: ornaments,
caption: &quot;My mother-in-law painted these of my precious babies!&quot;,
alt: &quot;Two round wooden disks with a small hole in the top center with red and white string through it. The left disk has a painting of a tan and white english shepard. The right disk has a painting of a gray, tan, and white long haired cat. Their names are written along the right side of each disk, Gizmo on the left, Pip on the right.&quot;,
}
]} /&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>2023 Year in Review</title><link>https://lindakat.com/blog/2023-year-review/</link><guid isPermaLink="true">https://lindakat.com/blog/2023-year-review/</guid><description>Reflecting on the year behind and what I can bring with me into the new year.</description><pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;2023 was not the best year to me.&lt;/p&gt;
&lt;p&gt;It was a year of smaller amounts of growth, stagnation, and heartbreak. I&apos;ve learned myself better and am starting to notice some mind shifts happening that are going to lead to great things down the road.&lt;/p&gt;
&lt;p&gt;So let&apos;s dig into what happened and see what we can learn from it.&lt;/p&gt;
&lt;h2&gt;The Good&lt;/h2&gt;
&lt;p&gt;The biggest life event this year was bringing Gizmo into our lives. He&apos;s completely changed our household, and it&apos;s already hard to imagine how things were without him. There&apos;s been a ton of hardship around adjusting to having a puppy and training him in the way we need him to be, but there&apos;s also been so much joy and happiness. He&apos;s so smart and sweet and his annoyances, while big to us, are not that terrible in the wider scheme of things. We really lucked out and found the best boy for our first dog as adults!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Other fun life wins from the year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I think I actually made some new friends this year. I definitely had some coffee chats and great Discord convos with some awesome folks!&lt;/li&gt;
&lt;li&gt;Got to take my niece to her first ever concert (Melanie Martinez).&lt;/li&gt;
&lt;li&gt;The Texas Rangers won the World Series for the first time ever! (Yes I know I&apos;m not directly involved in this lol but they&apos;re my favorites and it was so fun to watch.)&lt;/li&gt;
&lt;li&gt;Went to an in person meetup in October to hear &lt;a href=&quot;https://twitter.com/JanelleCShane&quot;&gt;Janelle Shane&lt;/a&gt; talk about what AI can and can&apos;t do! Really interesting talk, and I actually chatted with people (including Janelle!) before and after, which is huge for me!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Even though growth felt a lot slower career-wise this year, looking back I definitely did keep leveling up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I learned and played around with new frameworks (XState and Shopify).&lt;/li&gt;
&lt;li&gt;I attended classes, studied for, and passed the Contentful Partnership exam (all within 2 weeks).&lt;/li&gt;
&lt;li&gt;I did some open source work, building out a starter kit for &lt;a href=&quot;https://starter.dev&quot;&gt;starter.dev&lt;/a&gt; in Vue and XState, and helping get a complex Angular project ready to be open sourced and fixing some existing issues.&lt;/li&gt;
&lt;li&gt;Also did some private company work, mostly focused around the company&apos;s blog and how posts are discovered and displayed.&lt;/li&gt;
&lt;li&gt;I got to write a recommendation algorithm from scratch! This was such a fun rabbit hole to go down, and I&apos;m actually really pleased with how it turned out and the solution I came up with. Bonus points that I got compliments from multiple developers afterwards for how well commented and organized the code is!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And I was able to keep investing in my side projects and network too:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I gave my first public presentation at the Women in Tech mentoring session in October!&lt;/li&gt;
&lt;li&gt;I migrated my personal site (the site you&apos;re on right now!) from Nuxt to Astro, and started using &lt;a href=&quot;https://frontmatter.codes/&quot;&gt;FrontMatter&lt;/a&gt; as my CMS. Also a fresh coat of paint for the styles, and a new light theme!&lt;/li&gt;
&lt;li&gt;I added more games to my arcade site, and made great progress on some design changes so that it can relaunch early this year.&lt;/li&gt;
&lt;li&gt;I got to take and complete the &lt;a href=&quot;https://www.joyofreact.com/&quot;&gt;Joy of React&lt;/a&gt; course, which was a wonderful resource.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The best part of so many of these things is that they layer and impact each other. I was able to use the stuff I was learning in Joy of React and while studying for the Contentful exam to improve the projects and codebases I was working on more than once. I got a lot of practice understanding large codebases and taking the frustration to euphoria pipeline. lol Working on all these tasks I created a lot of architecture design docs, which gave me great talking points that I used in my presentation on documenting your progress. It all feeds into each other, and it&apos;s really nice when you can directly see how.&lt;/p&gt;
&lt;h2&gt;The Bad&lt;/h2&gt;
&lt;p&gt;Like most people, I have some general gripes about the year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adjusting to our first dog, and a puppy no less, has been &lt;em&gt;a lot&lt;/em&gt; and has caused more than it&apos;s share of disagreements and tense moments in the house. We&apos;re reaching a good point here thank goodness, but to act like it wasn&apos;t rough wouldn&apos;t be the truth.&lt;/li&gt;
&lt;li&gt;I knew I felt stuck in my current role earlier this year, but I didn&apos;t know enough to know what to do about it. I was looking outward too much, hoping others would be able to guide me because I sure don&apos;t know what the heck I&apos;m doing most of the time. lol But that wasn&apos;t fruitful or fair to anyone else. It&apos;s ok and normal to be curious how others do things and what their &quot;secrets&quot; are for success, but at some point you have to handle it for yourself, and I didn&apos;t.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But I got hit hard 4 times this year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Early February, my partner&apos;s dad passed away.&lt;/li&gt;
&lt;li&gt;Early June, my stepmom passed away.&lt;/li&gt;
&lt;li&gt;End of June, we had to make the choice of rehoming one of the two puppies we got because we just couldn&apos;t properly handle two.&lt;/li&gt;
&lt;li&gt;Mid August, I got laid off from my first (and best) tech job.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It just didn&apos;t stop this year, and I don&apos;t think I realized for a very long time just how badly it all affected me. Any one of these situations would be emotionally draining for lots of people, and I dealt with one every few months this year. It&apos;s no wonder I&apos;ve been striving so hard just to have some calm in each day.&lt;/p&gt;
&lt;h2&gt;The Lessons&lt;/h2&gt;
&lt;p&gt;So, what can I use from this year? Of these big bads and so many decent wins, what can I learn?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allow yourself to grieve, even if it feels weird. It&apos;s ok to be hurt by the things that hurt you.&lt;/li&gt;
&lt;li&gt;Don&apos;t forget that you still made big strides in your learning and experience this year, and that will pay off for you.&lt;/li&gt;
&lt;li&gt;You&apos;re still standing and trying to move forward after all of this. You&apos;re a badass.&lt;/li&gt;
&lt;li&gt;Keep prioritizing the monthly mentoring sessions. Those have been so good for your soul and your network - that&apos;s a space where you belong.&lt;/li&gt;
&lt;li&gt;You can do hard things, if you can just push through the hard parts. Your natural patience and resilience is your biggest strength here. Keep using them.&lt;/li&gt;
&lt;li&gt;You know more than you think. You can trust your gut more, and lean into action more.&lt;/li&gt;
&lt;li&gt;Keep making time for learning new things. Write code just to play with it, follow courses, read blogs, watch streams. Don&apos;t lose that.&lt;/li&gt;
&lt;li&gt;The things you want to do mean you have to get used to being observed, and not be afraid to be yourself around strangers. I know there&apos;s lots of reasons this is a big deal for you, but it&apos;s time. I believe in you.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;I&apos;m usually the kind of girl that &lt;em&gt;loves&lt;/em&gt; planning and setting goals and all of that. But I&apos;ve been thinking about this a lot and I don&apos;t think it actually serves me. I basically never reach those goals, or take the time to break them down into next steps so that I can actually be successful with them. It just makes me feel bad every January 1st. There&apos;s no need to put myself through that.&lt;/p&gt;
&lt;p&gt;I started doing a &quot;word of the year&quot; thing a few years ago, which I like the idea of better.&lt;/p&gt;
&lt;p&gt;In 2021 it was grit. This was the best one so far, the most inline with how I felt. And I got my first job in tech this year, so my grit really came through for me.&lt;/p&gt;
&lt;p&gt;In 2022 it was manifest. Now that I had the job, there were so many things I wanted to do. It didn&apos;t work out at all like I thought. But I did still get promoted and grew a lot, so it felt ok overall.&lt;/p&gt;
&lt;p&gt;In 2023 it was build. I wanted to focus on my foundations - build up my skill, my finances, etc. This year didn&apos;t turn out that way at all. It became more about surviving and processing and staying afloat.&lt;/p&gt;
&lt;p&gt;But I did still manage to build some this year. I built new friendships, continued improving my skills. I&apos;m even starting to tear down some of my personal demons and rebuild healthier brain wrinkles, change how I think about and view my world and my place inside it. It&apos;s good to remember that it wasn&apos;t a complete loss of a year.&lt;/p&gt;
&lt;p&gt;So many of the things I want for myself are big, abstract, long-term ideas that are really hard to put into SMART goals. I&apos;m tired of dreaming big and only dreaming. So this year, though I may not ever set specific goals or pick a word for the year, my intent is to focus on setting up and improving the systems and habits in my life so that my life better suits me, and allowing myself to feel and take up space and be uncomfortable. It should be a year of being seen and finding clarity and being more present.&lt;/p&gt;
&lt;p&gt;I&apos;m trying to remind myself to consider life an adventure. So let&apos;s hit the road and see where it takes us. 💖&lt;/p&gt;
</content:encoded></item></channel></rss>