Skip to main content
Paul Coroneos Profile image Paul Coroneos

Latest Blog Posts

Most recent post: April 17, 2026

Published on

From second part to first

After a few weeks off following my first concert back, I had my first rehearsal for the summer season with the community band this past Sunday. This time around I got moved up from second part to first part, which is a welcome challenge.

  • music
  • agentic-ai
  • growth
  • product
Read more
Published on

Redesigning (and migrating) my blog with Claude Code

A while back I wrote about migrating my blog from NextJS to Astro using GitHub Copilot. Well unfortunately that attempt stalled after 2 hours when the agent cornered itself in errors it couldn't resolve. I shelved it and moved on. Now in 2026, the ecosystem has matured greatly. Developers and nondevelopers alike are using models like Sonnet/Opus 4.5+ to migrate codebases and rapidly iterate on design in ways that simply weren't possible before.

  • astrojs
  • tailwindcss
  • claude-code
  • llm
  • ai
  • design
  • nextjs
Read more
Published on

Migrating to AstroJS from NextJS

I've been using the new Copilot agent mode to try to migrate my blog from NextJS App Router to Astro. I write all my blogposts in MDX with styling predefined via TailwindCSS. I then have a little legacy Webpack code that inserts getStaticProps calls where needed to fetch the blog data and then I decorate the post with a wrapper so that it looks consistent (probably should have moved a lot of this to a layout.tsx file, but you know how tech debt works).

  • astrojs
  • nextjs
  • copilot
  • llm
  • ai
Read more
Published on

Leetcode 876 - Middle of the Linked List

After a long stint in hash table land it's time to move onto another class of data structures and algorithms. We are going to start out with linked lists by solving a classic problem in Leetcode 876 Middle of the Linked List.

  • leetcode
  • algorithms
  • typescript
  • linked list
  • two pointers
Read more
Published on

Leetcode 383 - Ransom Note

Today we will be going over Leetcode 383 Ransom Note. This is another example of using hash tables.

  • leetcode
  • algorithms
  • typescript
  • hash table
Read more
Published on

Leetcode 525. Contiguous Array

With several hable table problems under our belt, lets do a slightly more difficult problem with Leetcode 525 Contiguous Array.

  • leetcode
  • algorithms
  • typescript
  • hash table
Read more
Published on

Leetcode 1832. Check if the Sentence Is Pangram

After several days of reviewing prefix sum and sliding windows problem, I feel it's a great time for a change of pace. Today (and over the course of the next few days) we will start to discuss using hash tables. Hash tables are a common data structure used in algorithms and competitive programming to solve countinglike problems. The advantage is that by iterating once through our input we create a dictionary that can be used to iterate through later on in a problem. We should get plenty of practice on this the next several blogposts!

  • leetcode
  • algorithms
  • typescript
  • hash table
Read more
Published on

Leetcode 2090. K Radius Subarray Averages

Today we will be going over Leetcode 2090 K Radius Subarray Averages. This is a slightly more advanced problem that requires the usage of the prefix sum technique.

  • leetcode
  • algorithms
  • typescript
  • prefix sum
Read more
Published on

Leetcode 1413. Minimum Value to Get Positive Step by Step Sum

Today we will be going over Leetcode 1413 Minimum Value to Get Positive Step by Step Sum. In a previous blogpost we discussed the concept of prefix sums. Today we are going to have a chance to implement this concept in a real problem!

  • leetcode
  • algorithms
  • typescript
  • prefix sum
Read more
Published on

Leetcode 1480. Running Sum of 1d Array

Today we will be going over Leetcode 1480 Running Sum of 1d Array. Our problem is a bit unique in that it really is just an introduction to the concept of using prefix sums. As such, this will be a relatively short post. But it will serve as the basis for a lot of problems we will see in the future. Prefix sums are a very common concept in competitive programming and algorithms in general. The prefix sum technique is the idea to take a list of numbers, and transform it such that each number in the list it the cumulate sum of itself and all the previous numbers in the list. This is a unique property that can help us make certain problems that would normally take O(n^2) time take O(n) time. Thats a big difference!

  • leetcode
  • algorithms
  • typescript
  • prefix sum
Read more
Published on

Leetcode 1004. Max Consecutive Ones III

Today we will be going over Leetcode 643 Maximum Consecutive Ones III. Yet again we will be leveraging the sliding window approach for this problem.

  • leetcode
  • algorithms
  • typescript
  • sliding window
Read more
Published on

Leetcode 643. Maximum Average Subarray I

Today we will be going over Leetcode 643 Maximum Average Subarray I. This will be one of many sliding window problems we will be going over the next few weeks (and further on because, hey, there are a lot of them).

  • leetcode
  • algorithms
  • typescript
  • sliding window
Read more
Published on

Leetcode 344 - Reverse String

Hello and welcome to another algorithm problem review! Today we will talk about a simple algorithm on how to reverse a string in Leetcode 206 Reverse Linked List

  • leetcode
  • two pointer
  • string
  • typescript
Read more
Published on

Leetcode 977 - Squared of a Sorted Array

Hello! Let's continue our trend of working on twopointer algorithms. Today we will talk about how to return an array of sorted squares in Leetcode 977 Squares of a Sorted Array

  • leetcode
  • two pointer
  • array
  • typescript
Read more
Published on

Leetcode 242 - Valid Anagram (JavaScript)

In my previous blogpost I discussed how palindromes are a great way to dip one's toes into algorithms. But an even simpler start is to work with an anagram. An anagram is a word that is formed from another using the original letters exactly once. So how would we go about determining whether one word is an anagram of another? Let's talk through how to solve Leetcode problem 242 Valid Anagram.

  • leetcode
  • anagram
  • hashmap
Read more
Published on

Leetcode 125 - Valid Palindrome (JavaScript)

Palindromes are among some the most common "entry level" algorithm problems. Specifically they are a great way to test for understanding of basic approaches to solving problems with strings and arrays. Let's talk through how to solve Leetcode problem 125 Valid Palindrome.

  • leetcode
  • palindrome
  • two-pointer
Read more
Published on

Using Jest toHaveBeenCalledWith() with expect.anything() to test a subset of parameters

Last week I had an interesting problem come across my desk. I was tasked with ensuring that when an onClick handler was fired that a certain object was returned in the callback. Now this object would depend on the form state so I wanted to test several permutations. What was making things difficult was that the onClick callback returned a second object with many utility functions that were inherent to an underlying library and I wasn't interested in checking them as part of this testing.

  • jest
  • testing
  • javascript
  • testing-library
  • react
Read more
Published on

Leetcode 701. Insert into a binary search tree

Today we will be going over Leetcode 701 Insert into a binary search tree. This is a classic DFS (depthfirst search) problem we will implement using recursion.

  • leetcode
  • trees
  • depth-first-search
  • javascript
  • binary-search-tree
  • recursion
Read more
Published on

Leetcode 111. Minimum Depth of Binary Tree

Today we will being going over Leetcode 111 Minimum Depth of Binary Tree. This is a classic DFS (depth first search) problem we will implement using recursion.

  • leetcode
  • trees
  • depth-first-search
  • javascript
Read more
Published on

Leetcode 203 - Remove Linked List Elements

Hello there! Today we will continue our journey into linked lists with Leetcode 203 Remove Linked List Elements. This is a quite common question to solve with regards to efficiently removing nodes from a linked list.

  • leetcode
Read more
Published on

Leetcode 206 - Reverse Linked List

Hello and welcome to another algorithm problem review! Today we will continue diving down the linked list rabbit hole to discuss Leetcode 206 Reverse Linked List

  • leetcode
Read more
Published on

Leetcode 141 - Linked List Cycle

After a rash of string and array problems I thought we would take a break today and start discussing linked lists. To start out let's take a closer look at Leetcode 141 Linked List Cycle

  • leetcode
Read more
Published on

Free Code Camp (FCC) - No Repeats Please (Heap's algorithm)

Hey everyone! Sorry it's been a while. I need to take a short break after working through several algorithms. I hope to get back to regularly solving algorithms and contributing posts! A good start today will be solving Free Code Camp's No Repeats Please problem throug the use of Heap's Algorithm.

Read more
Published on

Solving Leetcode 70 - Climbing Stairs (JavaScript) (Fibonacci sequence)

It's been a lot of fun completing one algorithm problem a day! I feel there is plenty time to go but I firmly believe given enough variety (and time) I will better master critical concepts. We previous have worked on two sum and atoi() which involve some clever tricks and helper methods that JavaScript provides. Today we are going to talk about something a little different and start dipping our toes into the concept of recursion and iterative solutions with leetcode 70 climbing stairs.

  • leetcode
Read more
Published on

Solving Leetcode 8 - String to Integer (atoi) (JavaScript)

atoi() is a very classic C library function that converts character string into an integer. Otherwise if it is unable to do so it returns the integer 0. Now of course if you've visited Mozilla's famous MDN website to get help on web technologies atoi conspiculously returns no results. Because as it turns out we have other methods/practices for converting numbers to string (and vice versa). But to me the real challenge of this problem is not necessarily figuring out how to convert a string to a number but rather all the corner cases one must consider to implement an atoi() function in JavaScript.

  • leetcode
Read more
Published on

Solving Leetcode 1 - Two Sum (JavaScript)

As I mentioned in my about me section I do not have a traditional CS degree. My background consists of being a former semiconductor test engineer with a MS in Electrical Engineering and a Bachelors in Applied Mathematics. I have learned so much in the past one and a half years as I have continued to build things.

  • leetcode
Read more
Published on

Cracking the Code Interview - Is Unique

When I was formally in school I majored in Electrical Engineering and Mathematics. I had two formal semesters of c++. But after I did a small amount of OOP and a binary search tree implementation I basically was relegated to machine level coding (think assembly). So unlike my friends in the CS department I really had no formal training in data structures, algorithms, or any of the other fundamentals software developers likely take for granted in their education

Read more
Published on

The Next Best Time

Procrastination and imposter theory are real things. It's so easy to convince yourself you aren't ready for something. But these are simply excuses. The best time to have started something was yesterday. The next best time is now. For over a decade I told myself I would build a blog and write articles that people might read. At this time I was a budding electrical engineer. I was ready to start working on my circuit design and post articles about what I learned. I came up with grandiose ideas of what such a blog might look like. And I was all in on the idea of picking up HTML/CSS/JS to accomplish this.

Read more
Published on

Stack

For a long time i've wanted to learn data structures and algorithms. I decided with the new year it was finally time to get started. After all the best time to start something was yesterday. The next best time is today. The first stop in learning data structures is stacks. You can technically use an array as the base of building a stack in JavaScript but I instead elected to start with an object. This is my version of the implementation:

Read more
Published on

Updating Bootcamp project for npm security updates

Each time I visit my GitHub account page I find myself bemused by the number of security PR requests I see on my old bootcamp projects. A year ago many of these projects seemed almost impossible if not insurmountable. Now a year forward most seem fairly straightforward that I probably could crunch out in a weekend.

Read more
Published on

Role Tab

As a front end developer one my weak areas is a11y. I was working a bug today at work involving an implementation that utilized tabs. Per my coworker in order for the feature to work I needed to utilize ariaselected and ariacontrols.

Read more
Published on

Big trouble with parseInt()

The need for input validation is important. In my case I was wanting to validate that a URL parameter was infact a valid integer. I went on MDN and found a handy function called parseInt(). I pushed the feature and it appeared to work just fine.

Read more
Published on

Hello World!

Hi there. My name is Paul. I am a fairly new web developer with a primary focus on front end. My background before becoming a fulltime software dev was 7.5 years in the semiconductor industry as a test engineer. I've been helped quite a bit by posts on the web as I have continued to improve my javascript accumen. So I want to give back and give everyone some perspective as I learn new and cool things. Check back as I make occasional posts on things I learn. Take care!

Read more