Thursday, June 26, 2025

My First Vibe Coding Hackathon

This past weekend my company did their first vibe coding hackathon. If you're not familiar with vibe coding, it's a new craze where you let AI Agents code your entire application and you just prompt the AI with "vibes." Pure vibe coding requires having zero coding knowledge, but developers have started finding ways to have the AI do most of the code writing while they review and analyze the output and make tweaks when needed.

Over the weekend, we were asked to use Replit and their AI Agent to create a working prototype of a useful application. The top 3 applications would be given money to the company store (which I personally enjoy since there are some quality items there) and we could present our applications to the company leadership. I threw my hat into the ring because why not! I hadn't vibe coded yet, but it would be good to know what's out there and the current state of AI.

This post won't go into the nuts and bolts of the app, but in about 7-8 hours I was able to build a working application that was 90% functional. It was a feature request tool that allowed your customers to request features they'd want to see in internal applications developed at their company. I took this idea actually from Compass Real Estate, where I used to work. They allowed their real estate agents to submit feature request for the Compass software tools. Much like Compass' tool, users of my application could:

  • Submit feature requests
  • Upvote other people's requests if they liked them (Reddit style)
  • Comment on feature requests
  • See new requests submitted in the past 48 hours
  • Review previous completed requests
Administrators had a special Admin Center page where they could:
  • Perform all the tasks in the above list
  • Consolidate duplicate feature requests
  • Add special "Admin comments"
  • Delete feature requests
  • Update the development status of feature requests
A screenshot of the main application page is below:



A screenshot of the admin center is below:


What I learned about Vibe Coding


AI Agents are not bad. They are not experts yet, but they do a pretty good job getting a basic application spun up really quick. This whole application took me two days, but really I spent 7-8 hours total doing everything. 

A lot of that 7-8 hours though was time spent waiting on the AI to finish analyzing, coding, reviewing, and processing all the changes I would request. While the AI is pretty good, it still can take 5-10 minutes to make a change, especially as the code base increases. 

Another good chunk of the time was taken up fixing bugs introduced by the AI when working on something completely unrelated. Several times the AI would mess something up in the application that was completely removed from what it was supposed to be working on. For example, when I had it work on the left-side navigation bar of the Admin Center, it also put the Update Status, Consolidate, and Delete button in one inline row and changed the button label for Update Status. Why??? I spent about 20 minutes getting the AI to fix the buttons without hurting anything else.

The AI Agents was not able to get the Search functionality working perfectly. I ended up flipping back and forth between two bugs in the search tool. When I fixed one issue, a second bug would appear. When I fixed that second bug, the first one came back. After a few rounds of that, I got the search working as best I could and left it at that. At the time of this writing, that is an active bug.

Another thing I learned was the AI is very verbose with writing code. This application has to be several thousand lines long. I feel like a human software engineer could write this in half the lines. But one nice thing about Replit's AI Agent at least is that it would give you an outline of what it was doing and give you a hyperlink to go in and check the specific file it is working on. I feel like if I was not rushing and trying to create as much as I can in one weekend, that is a very useful feature in the AI logic.

Overall Thoughts


Overall I felt more like a Product Owner this weekend and not a developer. I certainly didn't personally build this application, but I provided the ideas, creativity, prompts, and analysis that gave the application the look and feel. I wonder if that's what the developer profession will be one day - a world where we will all be product owners of some sort just requesting changes and troubleshooting manually when needed. Or maybe humanity will think "nah, this sucks. We want humans!" I hope it's the second option. 

Right now, the Agentic AI could get me nearly there. But it can't get this application to 100%. Advances are being made, and I'm sure in the future AI will be better and quicker. However for now, you still need some humans around. And I hope coding doesn't lose it's humanity any time soon.

Friday, June 6, 2025

PegaWorld 2025 (and my general thoughts on AI in 2025)

 


PegaWorld was a few days ago, and once again it was a huge blast. I'm fulfilling a promise to myself to actually write about it this year after neglecting to last year. I'll include a few things from 2024's edition though, as this year was sort of a sequel to the events from last year.

AI is here, and even low-code tools (which already do most of the code writing for you) are embracing it to the max. Last year, Pega announced several AI tools coming to their platform and this year followed up with the newest fad in AI - Agentic AI. For a platform that focuses on processes and workflows, I suppose this fits.

The conference itself

The conference itself, once you can get past some of the cheesy humor and jokes during the keynotes, is actually pretty fun. Alan Trefler's talk was a great introduction to the conference, and the point I took away from his talk was that you cannot stuff just any AI into a solution and think you will be okay - you need to use the right AI for the right problems. He compared it to attempting to use Chat GPT to help him with a chess puzzle. Chat GPT could not solve the problem, and instead gave Alan several incorrect/illegal moves in chess. As soon as Alan went to another AI that specialized in chess, it was solved in under two seconds. Thus begins a conversation about Pega having the right AI to solve workflow automation problems.

For the developer though, the keynotes are nice and some of the workshops and breakaway sessions can be really useful. But going to the innovation hub and seeing the new capabilities in action, talking with Pega engineers that built and specialize in that tool, and seeing how it can fit what we do on a day-to-day basis is the best part of the conference. I was able to meet some folks who are trying some new ideas in the Pega community, and I was able to learn about automated testing and network with people who have found creative ways to do it in Pega (a sticking point for our team right now).

I came back with several takeaways from the conference:

  1. Become a bigger part of the Pega community
  2. Pega Blueprint has changed quite a bit since being announced last year - I need to retrain myself on it and check out the latest updates.
  3. I want to learn more about automating testing within Pega via code scripts and accessing JSON files via their API.
  4. Pega Insights is a cool tool that we currently under utilize in our app at work - maybe we can use it?
  5. There will (hopefully) be a small Pega event in my city later this year, so I look forward to going to that.
  6. Pega recently released a whitepaper on AI in Operations, so I've downloaded that and plan to read it in the next week.

My AI thoughts in general

This conference both has me excited for the use of AI in application development and also terrified for the world we are creating. One of the Pega keynotes introduced their newest intern, Iris. Iris is a young girl who started working for Pega this year. She's fully remote, lives in Europe (Pega has a solid presence there, especially in the Netherlands), and has become a top contributor who has helped their employees with admin tasks - the type of stuff interns typically handle.

She's made mistakes on the job, as any person would. But to be frank, she's probably more of a professional and less green than I was when I was an intern. Iris loves her work, she loves where she lives (I believe it was an island with a northern lighthouse in the Netherlands?), and she enjoys working with her colleagues.

And as you've probably already guessed, Iris is also not real. She's completely made up - an artificially intelligent agent. 

On the one hand, this is cool. We've gotten to the point where computers can talk to us and be hyper-realistic. She has an employee picture, Pega employees refer to Iris with the she/her pronouns, and she has a personality that seems to make her human. 

But I cannot help but think we are starting to automate ourselves out of work. Right now, Agentic AI is being billed as the AI that will help you do the tasks you don't want to do. That's nice. But did Iris fill in a gap that would have been filled in the past by a real college intern? How about when Agentic AI gets to the point where it can do entry-level jobs - how long will it be when a CMO or VP of Finance decides that the entry level marketing or finance position can be handled by an Agentic AI instead of hiring a real human to do the same work? Because let's be real: computers have always been faster than humans at tasks that computers are capable of doing.

We're not far from this reality. Agentic AI, and AI in general, has made a lot of strides in the past few years since GPT 3 was announced to the world. And now, we have companies like Artisan in San Fransisco running marketing campaigns to stop hiring humans and instead hire their AI for massive cost savings. (Their marketing campaign is a sad one at that, purposefully created to make people angry and gather likes, clicks, impressions, etc. They should not have been rewarded for that, but alas here we are.)

All that to say, we may be coming to a point where we have to make some decisions with AI. How far are we willing to go to use it? Are we willing to let one AI handle the job of several people for the cost savings and speed? How many jobs are we willing to replace with AI if so? If all companies get on board with this, how quickly does it take us to automate 30% of the workforce out of a job? Will we make decisions today that harm the community at large over a long period of time in order to report good earnings and cost savings for the next quarterly investors call?

You can probably tell where I land on this. 

I was going to write about this in a separate post, but PegaWorld both last year and this year had me leaving with these apprehensions. I didn't come away from these keynotes fully excited for the future we are currently creating. I hope I'm wrong about it, I hope that companies still keep people employed and AI doesn't contribute to the death of several valuable industries and jobs. But after observing the past few years, I get ever so closer to feeling that we're all beginning to hand our jobs over to the control of just a few AI computers.

Tuesday, April 15, 2025

Quickly creating a React app with Vite and Tailwind

A few months back I wrote about creating a React application with Vite. At the time, I was just starting out with using Vite after learning about it on freeCodeCamp. Since then, I've created several small practice projects with Vite and am using it to currently create an Office Day Selector application for work, for my team to sign up on which days they plan to come into the office.

I've been spending some time on Scrimba as well, while I wait on more content to come out from freeCodeCamp. They have a wonderful React course where Bob (the teacher) has you immediately working out of a Vite-like React application. Early on I learned how to connect components, import files and pictures, and use props in my code to pass in values to my JSX. This course excels at getting you comfortable in a much larger file structure, compared to just a few files when you use HTML, CSS, and JavaScript. Prior to the Scrimba course, I was getting lost frequently in all these folders and files wondering where the right place to start was!

This all brings me to write sort of a sequel post to my Vite blog post linked above - adding Tailwind. Tailwind is a popular CSS framework used by small and large projects. It's utility based, and you add styles to your code by adding classes to your HTML or JSX in my case. 

Here is what I did to spin up a Vite React application with Tailwind in under 10 minutes or so (as a note, the time it takes me is much shorter than it used to be due to practice - if you're doing this for the first time, it may take longer and that's perfectly okay):

  1. Created a React Vite application, using the directions in my previous post.
  2. Opened the project folder in VS Code and removed all the default code in the Vite project that I didn't want - the Vite and React SVG files, the index.css file, the CSS code in app.css (but I kept the file), and the favicon code in my index.html file. I learned here that leaving the favicon code in will cause the code to error since it references one of the SVG files I removed. While in the HTML, I also update the <title> of the page to my application name.
  3. Once my file has some default values removed, I add Tailwind to the project. I follow the steps listed on the TailwindCSS documentation page and pretty much just use this page for it. I found a few blog posts first that gave directions but found they were out of date and using terminal commands that were no longer valid. Lesson learned here: always use the documentation pages!
    • I nagivated into my project folder in the terminal, then ran npm install tailwindcss @tailwindcss/vite to install Tailwind into my project.
    • I added Tailwind into my project's configuration file, following the directions on the documentation page.
    • Lastly, on my app.css file, I added @import "tailwindcss"; to bring in all the Tailwind styles.
And that's it! After doing this a few times, I've found that I've started to build a little muscle memory with creating Vite projects and adding Tailwind. And it's certainly not as intimidating as it used to feel.

Wednesday, February 26, 2025

Creating an application using Vite

Up until recently, you could create a React application using Create-React-App. It was a lightweight way to create React applications quickly and was supported by the React documentation. Create-React-App has been discontinued - it will still work I suppose, but it is no longer the recommended way to create React applications.

I first came across Vite while going through freeCodeCamp's new curriculum. About a week later, while furthering my React studies on Scrimba, they also suggested using Vite as a worthwhile replacement. After building a few projects, I definitely agree.

Vite is a build tool for creating React applications. Of course, I could try to create my own React applications using no build tool, but that can take a long time and there are many files to configure. If someone else has done this work already, I'm going to take advantage of that! 

In order to use Vite, you need to install Node.js if you haven't already, and it needs to be a version higher than 18.0.0. Originally I had a higher version of Node installed (I think it was 22.0.0. or 23.0.0, I can't remember), and that caused some trouble with using Vite. Currently at the time I'm writing this, I'm using Node version 20.0.0 with zero issues.

Once Node is installed, do the following steps:

  1. Navigate in your terminal to the folder you want your project to be stored in. For me, I usually change my directory to Desktop and store my project there.
  2. Run npm create vite@latest 
  3. This will start the tool's prompts. It will ask you just a few questions:
    1. What is the project's name? 
    2. What library/framework are we using? 
    3. What language do you want to focus on? (For example, when I choose React for question #2, it will then ask if I want to focus on JavaScript, Typescript, or a few other options).
  4. Once these questions have been answered, Vite will build out the project. At the end, it will give you three commands to run in a row:
    1. cd <project-name>
    2. npm install
    3. npm run dev
  5. That last command will be one you probably use a lot, as it is the command that starts up the live server so you can see your work rendered in the browser. I personally find myself starting and stopping the server as needed, usually when I need to use my terminal for something.
And that's it! In the folder you selected, your new Vite project will be created. At this point, you can go into the project itself and clear out all the default stuff (styles, text, images, favicons) and begin creating your JSX files, stylesheets, and link them together.

Documentation link: https://vite.dev/guide/

Watching Claude play Pokemon

Currently Claude is playing Pokemon Red on Twitch. It was hard to tell what game it was playing, since the color palette of the game is very colorful with reds, greens, blues, and different shades of others (much unlike the real games being played in a blue or red hue). Now that I'm reading the Twitch "about" section, I see they are using Danny-E 33 + FroggestSpirit's full color patch which helps Claude see the screen better apparently.

This looks to be a passion project, likely a Claude super-fan or someone from Anthropic doing this on their own time. This is an experiment to see if Claude can actually beat the game on it's own with no outside help. It can learn the game, develop strategies, develop a battle theory when fighting other trainers, have goals for Pokemon levels, and learn the maps to move around.

I'm pretty fascinated right now while watching. Claude is moving very slow. Veeery slow. But I'm reading the left-side thought process that Claude has while seeing the game on the right, and I'm thinking to myself "This is exactly what my 9-year old brain was thinking when playing this game for the first time." I had Pokemon level goals, I had certain strategies to beat Brock's rock Pokemon at the very beginning (I had yellow and found out the hard way that Pikachu has zero use in that gym fight). It's pretty neat now to see an AI developing these same goals.

But as I mentioned above, it's very slow. I suspect in 5-10 years we'll have models that can play this game much quicker. But it soon gets a little boring watching the stream intensely, and the game music gets repetitive when listening to the same Viridian Forest theme for 30-40 minutes.

I've given it a follow and will be lurking to see how far we get. At the time of this writing, Claude has made it to Pewter City, and it has one Pokemon above level 10. That's expected for a player who has just entered Pewter City but it looks like it has several hours of training before it's ready to fight Brock.

You can follow along here: https://www.twitch.tv/claudeplayspokemon

Sunday, February 16, 2025

Making the most out of a meetup group in 2025

Yesterday I went to my first Programming meetup for 2025. A goal of mine has been to go to more of these this year. I went to one in 2024 and had a great time, then completely let it slide for the rest of the year. Not this year! There are a few meetup groups for software development who meet less than 30 minutes from my house, so I hope to visit both several times this year.

I saw a question on LinkedIn yesterday on a similar note which asks the question: "What are some actionable steps you can take to make the most out of attending a meetup?" That's a great question and one that I wanted to write a bit more in depth about. Going to a meetup group is essentially networking. It's very similar to conferences, but meetup groups are generally smaller. There may be conference-like presentations, or they may be more casual and people just show up, talk, and code, all while probably drinking some sort of coffee.

In my area, we have a Coffee and Code meetup which is perfect for me. It starts around 10am and goes until 1pm which is the perfect time for me and how I operate (I'm definitely more of a morning person). A little after 10am, we have a standup where we go around the circle and introduce ourselves, talk about any job openings we may know of, and what events are coming up that people can check out. Then we go back to our computers and either code, chat with others, or do little demos with folks on what we are working on and see what others are working on. I had a fantastic time meeting a gentleman who had built out a really neat event application for a non-profit's annual fundraiser. He showed me how he built the mobile app using XCode and Swift.

So what are actionable steps that I'd recommend to others when going to a coding meetup group? See below for a few pointers:

  1. Go with a completely open mind. Who knows where your next connection will lead or who you will meet there. And this is also the first point I'm writing about, since I think all the other points below it can fit under this umbrella.

  2. Don't think only about yourself. A mistake I made earlier in my career when "networking" was getting immediately benefits from networking and being in groups. For context, I was in sales and "social selling" had become all the rage. I'd show up to a group or connect with someone on LinkedIn and immediately try to get a sale without a relationship. Don't do this! People can sniff it out when you show up to a meetup only thinking about yourself and what you can "get." Instead, show up with an attitude of what you can GIVE to the group. Reaping rewards (new friends, a job opportunity, project collaborations) will happen with time.

  3. Balance time working on coding projects and talking with people. I went to the meetup this past week for a little over 2 hours. I spent the first hour hacking away on my friend's website I'm building in React, and I spent the next hour or so talking to a few people seeing what they were doing.

  4. Understand that you can contribute to the group no matter your coding experience. There were several people at our meeting this weekend who were JUST learning how to code. They knew some HTML, a little CSS, and were just getting their feet wet with JavaScript. But when they introduced themselves, they said they could help others with HTML and CSS. The point: even if you have just written your first line of HTML, you have something you can contribute or give to the group. Heck, just being there at the meetup and talking to others and listening to them explain their projects and passions is giving to the group. If you are new at coding, take some encouragement that you can contribute to a meetup group almost immediately.

I may revisit this post sometime in the future and add to it, but for now these are some basic points to remember with a meetup group. Don't be nervous or feel any pressure that you have to come away with something from the group. Just go and hang out with fellow programmers!

Friday, February 7, 2025

Making a reusable footer in React

freeCodeCamp's new front-end technologies content is still under construction, but they have released a few lessons for their React fundamentals. You can click here to find the referenced lab activity from this blog post.

React is a JavaScript library that focuses on the UI of a website. To put it another way, it is concerned with the "View" of a page. It is component-based, and the components can be written in two ways: (1) Class-based components, and (2) Functional components. The first way is an older style that apparently is no longer used as much. Functional components is the current "in" way to create components. Instead of using JavaScript classes, you instead use a JavaScript function.

I've created a few React applications in the past, but this was my first using the newer Functional components. freeCodeCamp provided the index.html file already, however the CSS and React code was all up to me. Here is the completed code in a Github Gist page.

I started with the React part and made sure to finish the bones of the page before writing up the CSS. You really do not get a lot of leeway on the "how" here, as freeCodeCamp's user stories specifically ask for a certain setup.

Index.jsx uses one functional component to return a <footer> element. JSX only lets you return one top-level element. While I used <footer> here, most of the time you can use <Fragment> or simply < >. Inside the <footer> is an unordered list. I added a quick <div> there so I could separate the list from the copywrite paragraph below. The entire component is exported with the keyword at the top of the component.

With that code in place, technically I would pass the challenge (it does not check for styles). But where is the fun in that! So I added some CSS code. In order of how the selectors are written:

  • I gave the footer a calming light blue background
  • I removed the bullet points and default padding for all list items in my list
  • I gave each specific list item some extra padding to spread out the items
  • I centered my copywrite and made sure there was some bottom padding between it and the footer border
  • I turned the list container into a Flexbox and gave it space around each unordered list
After all that, it looked good! Below is a picture of the final product:


It's basic but functional. Below the copywrite, I can include social media links in the future as well as remove some of the default browser styling for links (the blue color and underlines). Overall though, I'm pretty happy with how it turned out! I did a project a few years ago which involved a footer and it was very cumbersome to put together. Having a reusable component with this CSS will make it easier to include the same footer on every page of a future site.





Monday, January 27, 2025

Social media in 2025

Time for another blog post, but instead of focusing on what I've been learning, I'm writing a bit about the state of social media as I see it here in the beginning of 2025. It's topical, and probably in the future if you're reading this, things may look very different.

The state of social media in general is still very strong. Apparently around 3 billion people use Meta's services, 300 million use Twitter/X (claimed), and Bluesky is going strong at around 29 million active users. That's a lot of activity! But social media through the years has morphed into something much different than what it originally was.

I used Myspace back in 2006, I started using Facebook once it opened to non-college students (around 2007?), and I made my first Twitter account in 2009 - my first Tweet was to Freddy Adu, naively thinking he would respond. It was all pretty fun - I saw most of the activity from my friends. Pictures, status updates, trips - it all (especially Facebook) felt like one giant club we were at 24/7, commenting and "liking" and poking (remember the poke feature?) each other. I actually did feel connected, and I was on Facebook for a few hours a day IMing friends and seeing updates from them.

Then came the algorithm. I can't remember when I started noticing, but I started receiving less and less from my friends. First, I noticed that I was seeing posts out of order of time - a post from a few days ago would appear above a post from 10 minutes ago - why? That was weird. I'd log out for class and log back in later only to see that same post from a few days ago near the top of my page along with some new posts. I noticed that I started seeing content mainly from about 10-15 people, even though my friends list was over 500.

I'd click into the profile of some of my closest friends who I hadn't seen updates from in awhile, only to find a slew of updates on their profile that I wasn't seeing. I found a feature to label them "close friends" or something of the sort to see if that would help - it did a little. But now I was realizing that Facebook was no longer connecting me to all my friends. In late 2024 before I deactivated Facebook, my timeline had become almost nothing except content from groups I was not a part of, advertisements, people's Instagram reels, and more advertisements and content from random groups I was not a part of (Historical Pictures of Downtown Annapolis...what???).

Twitter was still awesome though - it became my favorite social media site. I am a big sports fan, and live tweeting sports and network shows when they aired (The Office finale, #AnniesMove from Community) became a cultural phenomenon. And I followed whoever I wanted and saw their content in a nice timeline of curated profiles solely determined by me.

Then came the algorithm. I started seeing advertisements in the content section of posts. I started seeing posts from people I didn't follow and didn't care to follow. Soon, about 50-60% of my timeline was full of people I didn't follow. Gone were the follow-Fridays, #FF, and I also found less and less people interacting with my posts. My timeline was less interesting to me, and I started spending less time scrolling on the content. Then in 2022, Elon Musk bought Twitter and that was the last straw for me.

It's funny - corporate social media (Meta and Twitter) connect and expose us to more content than ever. But I feel less connected at the same time. Mark Zuckerberg always claimed he wanted Facebook to connect the world, but at the same time Facebook became a lonely place surrounded by all of this "connection."

So I've left Facebook. It's something that I didn't think I'd ever do, but seeing them pull back on fact checking in the name of some weird (also inaccurate) definition of "free speech" has been a big part in my decision. The thought of leaving had been rattling around though for over a year, because it just wasn't fun anymore. The same for Twitter - Elon buying it and remaking it into Parler Part II wasn't the sole reason I left Twitter, but it did help in making my decision certain.

A few takeways from the past seven to eight years of corporate social media is this:

  • The algorithm sort of ruined my experience with traditional social media by showing me less of my friends and more of random stuff I had no interest in
  • Advertisements became so numerous they were annoying
  • Corporate social media can be completely changed almost overnight on the whims of the CEO (hello Reddit and their API changes)
  • All of this degrades the once-great experience I had
This isn't to say an algorithm has no place in social media. Tiktok got very popular in 2020 because of their algorithm, and Instagram's algorithm is decent and fun. I found a few Twitch streamers from Instagram's algorithm and have learned to cook a few new foods for dinner from watching short-form videos in a random algorithmic feed. I think video-form social media can benefit from a good algorithm in an Explore section, although I'm still turned off to it on my main feed.

As of the start of 2025, I'm on Instagram (but the thought of leaving is there) and that's it when it comes to corporate social media. I'm on Bluesky the most and really enjoy it (so far), and I'm on Mastodon as well. I've become a big fan of the Fediverse and the interconnectedness between apps it offers. The ability to have a Mastodon account and see pictures from Pixelfed, videos from Peertube, and soon will see long-form posts from Ghost is a very cool experience, something corporate social media never offered.

I'm very optimistic about the Fediverse. It may never reach the numbers that corporate social media has, but I don't care. It's free, it's open, and there are no advertisements and very few algorithms unless you are on Threads. Threads by the way is the one fediverse social media site I am no longer on - mainly because it's Meta and I frankly don't want to use their services much any longer.

If you've made it this far, I appreciate your interest in my ramblings. I'll write soon about the Fediverse and how I explain it to people - I have found a lot of people in my IT department at work don't even know what it is, so it's time they learned! But here we are, the state of 2025 social media. It's still dominated by corporations and shareholders, blows to and fro at the whims of their CEOs and their politics, and that's not likely to change. But the smaller yet better connected Fediverse has offered a nice alternative which I hope sticks around.

Saturday, January 11, 2025

Reviewing HTML concepts and establishing a habit

 In my planner each week I write out three things automatically.

  1. Some sort of motivational theme or (soon) a bible verse as my "theme of the week"
  2. A task each day to exercise
  3. 30 minutes of freeCodeCamp
Exercising is still something that I need to improve on the habit front. Last week was a bit of a downer, and I think partially it's because I didn't drink enough water, exercise, and eat healthy (hello popcorn for lunch twice).

But with freeCodeCamp, I've been able to establish a nice rhythm. Either in the mornings or during my lunch break, I'll set aside 30-45 minutes to work on the new full-stack developer content they recently released (linked in my previous blog post). I decided to just do everything in the cert, even though I've previously finished their HTML/CSS content and most of their vanilla JavaScript content. It's good review, and I'm a completionist I suppose.

And I'm glad I've taken time to review the HTML content. First off, it's been way more in depth than their previous courses. There is a much higher focus on accessibility and semantic HTML. A few things which have stood out:
  • Presentational vs Semantic HTML: Presentational is older and includes elements that are no longer supported, and it's main focus is just on the look of the content on the screen. CSS has made most of these elements relatively pointless now. Semantic HTML involves using elements that are more descriptive in their purpose (as opposed to the older <div> element), and they are better for accessibility and website SEO.

  • HTML Forms have four states:
    • Default: which is editable
    • Focused: when you're in one of the form inputs specifically (i.e. clicking into a text field and the box highlighting a blue border)
    • Disabled
    • Read-Only
    • (The HTML Form states sort of mimic what I'm used to with Harness rules in Pega, so I found it interesting.)

  • HTML Entities: these provide a way to write out certain symbols that are usually code in HTML. For example, if I want to write out <div> in HTML text, without HTML entities I cannot accomplish this because the browser will think I'm trying to start a new <div> container. With HTML Entities, I can use a combination of letters and/or numbers to have the browser render symbols like < and >. These combinations are called references:
    • Named character references start with "&" and end with a ";"
      • &lt; is the < symbol
    • Decimal numeric references are similar but use numbers instead of letters
    • Hexadecimal numeric references are similar but use hexadecimal instead
I'm currently going through the lecture video series for accessibility, which is a deeper dive into screen readers and tools that come native with operating systems to help with viewing or listening to content. Additionally freeCodeCamp is reviewing various peripherals like larger-text keyboards and different input devices like trackpads and mouse-balls and joysticks. All must be taken into consideration for modern development.

That's all I have for this week. I'm also glad I could sit down for 20 minutes or so and type this out this week. I want to blog (ideally) every week, so this week was a success!

Friday, January 3, 2025

Setting 2025 developer goals

2024 is behind us and 2025 is here. New year. Clean slate. Last year was my first full year as a developer and it was full of learning, moments of extreme doubt in my abilities, and some fantastic moments as well. To recap, I attempted the Pega SSA exam three times and fell one question short twice. At some point I plan to study and take the exam again, but I'll be taking some time off from that.

My overall personal goal in 2025 is using a planner for the full year and being more organized through consistent planner use. That sets up the foundation for smaller goals that I hope to achieve this year for myself, which are listed below.

So without much else to add, below are the developer goals I hope to achieve in 2025. Unlike last year, I'll try to keep the blog updated with my progress.

  1. Blog more. This is sort of a gimme. I blogged just a handful of times in 2024, mostly because I was busy studying or working. Taking a break from studying will hopefully allow for more casual learning and time to write. My goal is one post a week, and I'll review at the end of January to see how that goes. I may adjust it in February if needed.

  2. Work through freeCodeCamp's new curriculum. freeCodeCamp just released new updated content and have started focusing on free developer certifications. The content includes video lectures, workshops, labs, quizzes, reviews, and one large final exam. I'm very excited for this, and will probably write more about it in the future, but I think this is the type of setup I've been waiting for. Currently I'm in the HTML section doing review before moving on to CSS, but once we get to more advanced topics, I think this will be a massive help for my learning. Most blogs will probably be geared around new things I've learned while going through the certification program. While I won't be spending a lot of time each day on it (due to life and such), I'm going to be extending this into 2026 and hope to earn the certification during that year.

  3. Pass the Pega SSA exam. This will be in the later part of 2025, but I want to attempt the SSA exam again and hopefully pass. It's not required for my job, but everyone else on the team has it at this point and I want to be able to say the same. Related, I'll need to renew my Security+ this year as well, as that's an exam I never ever want to take again!

  4. Read more. I'm aiming to complete six books this year - an average of one book every two months. That's a good goal for me, but it's also something I can also surpass pretty easily. I'll be writing on some books I read this year here on the blog, so be on the lookout for some of those. I've started 'Chip Wars' by Chris Miller, which my manager read and said it was very good. President Obama as well mentioned this book as one of his favorites in 2023. But I won't be reading just tech-focused books. I hope to read a fiction book or two, or maybe some random non-fiction historical books. I'm taking it one book at a time.
So there we have it - these are the developer goals I'm shooting for in 2025. These are not resolutions, and they may not all happen. But it's something to work towards and share with others. 

What goals do you have for 2025?