RSSAmplifier

Blog

Matt McCormick

Recent content on Matt McCormick

mattmccormick.caRSS feed ↗49 posts

Latest posts

Yes, Code Review is Still Necessary

As I’ve outlined in previous posts, I’ve been experimenting with how far I can get agentic AI development working. This week I ran into a few scenarios that caused me to rethink the process completely. 
 Three things I caught this week 
 The first happened when I checked in on a fairly simple change to a header bar on a web page. What I noticed was that the agent had set up a…

Are Agent Code Reviews for AI-Generated Code Worth It?

As I wrote previously, I’m exploring building an agentic AI pipeline that mimics the full Software Development Lifecycle (SDLC). I’m still doing a lot of iteration as I run into issues. The iterations that need to be made are decreasing in number and getting smaller though. I thought it would be interesting to see some results from the first main run that it’s had end to end.…

Building Systems that Build Systems: Setting up the SDLC in LangGraph

Over the past few weeks, I’ve been building a system to see how far I can go with AI agents running the entire software development lifecycle. Could I hand AI an idea and get back a working app? 
 This is a continuation from my last post about My Journey into AI-Assisted Development . See that post for context about where I’m coming from. 
 History 
 The process or workflow…

We're All Managers Now: My Journey Into AI-Assisted Development

What does the future of software engineering look like? Everybody is trying to figure out the answer to that question right now. This article shares the journey I’ve been on for the past couple of months toward discovering that answer for myself. 
 Exploration and Discovery 
 A few months ago I left my job as an engineering manager (EM) at a FinTech company (Chime) to take a…

Well Written Pull Requests

Writing better pull requests is one of the best improvements you can make as a software engineer. Well written pull requests create a smoother review process, help get your PRs merged faster and increase the level of trust and respect you earn from your team. This guide will present several easy to implement ideas that will help you write better pull requests. 
 Keep Notes 
 A well-written…

The Right Way to Think About TDD

When it comes to debate, “to TDD or not to TDD” is right up there with “rent vs. buy”, “Batman vs. Superman” and “Chocolate vs. Vanilla”. Like the other debates, there is only one right answer to this question: 
 It depends on the situation. 
 The amount of Test Driven Development (TDD) to practice works best when viewed on a spectrum. There…

Code Odour: Using Both a List and Set Instead of Just a Dict

I came across something like the following code recently and ended up refactoring it to make it much simpler. Let’s take a look at what the original developer was trying to do. 
 result = [ { 'url' : obj [ 'relative_url' ], ... } for obj in objs ] 
 
 added_objs = set () 
 
 for obj in result : 
 	url = get_absolute_url ( obj [ 'url' ]) 
 	 if url in…

Tips for Working Effectively as a Remote Developer

Communication, not programming ability, is the most important thing that will make you stand out as a great developer as opposed to just a good developer. If you can’t understand others or communicate well, it doesn’t matter how well you program because you’ll most likely end up doing the wrong things. As a remote developer, it’s even more critical that you take time to…

What Living Abroad Taught Me About Software Development

Living abroad is one of those experiences that tough to communicate to someone who hasn’t experienced it. It’s like explaining colours to a blind man. Only someone who can see the colour will really understand. 
 I had always wanted to go abroad when I was younger. In University I joined the student organization AIESEC which offered international exchange opportunities. Through their programs…

How to Create a RESTful API using Yii Framework


			 
		 

 This screencast uses Yii 1.1.14. You can grab the code from https://github.com/mattmccormick/screencast-yiiframework-restfulapi 
 Hi, there. My name is Matt McCormick. Welcome to this screencast on building a RESTful API with Yii Framework. It’s my first one, so I hope you’ll enjoy it and get a lot out of it. I’ve used Yii for a…

How Much Does a Website or Web Application cost?

If you’re thinking about building a website or web app, one of the first questions that comes up is “How much will it cost?” 
 If you don’t have a technical background, the choices can seem overwhelming to figure things out. You might approach one software developer who charges $10/hr and another who charges $200+/hr. One company may bid $2000 while another may bid…

When to Separate View Files

I was brought in to help development on a CakePHP web application recently. One of the tasks should have been relatively simple - add an option to an admin page. In a well-designed application, this task should have taken a couple hours. Instead it took a couple days because I needed to figure out just what was going on. 
 The view file was being used by 3 different actions which had slightly…

Launching an Info Course part 2: MVP Style

This post is the 2nd part of a series of posts about my experience in launching an info course from scratch. Read part 1: Overcoming Doubt . 
 One of the things that has been gaining steam on the web lately has been the rise of “drip products.” Drip products are information products but instead of being sent to the customer all at once (ie. a book, or a DVD package) the information…

Launching an Info Course part 1: Overcoming Doubt

Recently my main source of work ended and it caused me to reflect on where I want to go with my career. I’ve always been interested in entrepreneurship but have only made a few half-hearted attempts that didn’t really go anywhere. So this time, I’ve resolved to take the next 6-12 months off to just work on my own ideas and see if I can make something happen and get it to the…

Safely Change Database Columns in Yii Framework

Note: This post refers to Yii Framework version 1.1.11 
 Let’s say you have an existing web application that uses Yii framework. For some reason, you would like to go about changing some column names in your database tables. Recently I went through this process because some tables in our application were using title and others were using name . I wanted to standardize them all to name .…

Unit Testing URL Routes in Yii Framework

(This post refers to Yii Framework v.1.1.11) 
 Let’s say you have a bunch of custom URL routes setup in your configuration file for Yii. Since custom URL routes can quickly become complicated due to regular expression matching, it’s a good idea to have some tests in place to make sure that your URLs are getting sent to the correct controller and action. 
 Unfortunately, Yii is…

How to use Zend Framework's ResultSet class with Yii Framework

Note: This post refers to Yii Framework version 1.1.11 and Zend Framework version 2.0.0 
 I’ve been working with the Yii Framework for about six months now. While it’s decently designed there are a few points that bother me about it. My favourite PHP framework that I’ve worked with is Zend Framework so this post is a little biased towards it. I find Zend Framework extremely…

Your Controllers need to lose weight

Most software developers have probably heard of the design principle “Fat Models, Skinny Controllers” but I constantly come across code that doesn’t follow this principle. How skinny is skinny? Properly designed controllers should not have more than a few lines of code. For most actions, if you have more than four lines in the method, that should be an indication that there is a…

Forget Sunscreen....Focus

Focus. If I could offer you only one tip for the future, focus would be it. 
 In the next 20 years, we are going to face an extreme shortage of people who are able to focus single-mindedly on what they are doing. Children growing up these days face an onslaught of distractions thanks to news feeds and smartphones and it is only going to get worse. 
 Why is this a problem?

How to Refactor a PHP Application

The great thing about PHP is how easy it is to get started. 
 The bad thing about PHP is how easy it is to get started. 
 I’ve worked on a few PHP sites where the code lived up to these statements. While it is incredibly easy to get a site up and running with PHP, that ease of getting started could turn into a nightmare as the site grows and becomes more complex.

Everybody Loves Learning

A few weeks ago, my 2.5 year old niece was over in the evening. She was running around as usual. As I sat down to read something, she watched me turn on a lamp. As soon as she saw the light come on, she came running over to see what kind of magic had just taken place. Seeing that she was interested in this wizardry, I turned the lamp on and off a few times so she could see how it worked. Then she…

Make Time for the Long Term

The biggest mistake I see with fellow colleagues are people that just focus on the immediate tasks at hand. Day after day they only work on the tasks given to them and just try to get them done. Focusing on the immediate short-term tasks all the time is a recipe for mediocrity. It also leads to boredom. 
 Everyone should block off a portion of their day for thinking long-term and investing in…

Book Review: The Passionate Programmer


 The Passionate Programmer is a book everyone in software can benefit from. For those of us working in software, there is the tendency to get complacent. After all, salaries are usually pretty good, working conditions are generally comfortable and good software developers are usually in demand. I know I’ve gone through phases in my career where I let myself get a little too comfortable.…

Are you passing up opportunities?


 The trouble with opportunity is that it always comes disguised as hard work. 
 
 The year was 1995. I was 14 years old and recently purchased a screaming fast 14.4 Kbps modem and signed up with a local ISP to finally get graphical Internet. This was the Internet with pictures! Ah, how I remember the days watching the purple going in and out waiting for pages to load. 28.8 Kbps modems…

Kindle: My Favourite Device

I’ve owned a Kindle for just short of two months now and it has quickly become my favourite device. I take it everywhere! Even if I just know I’ll be waiting in line for a few minutes I bring it along. I used to think I read a lot but thanks to Kindle my reading has sky-rocketed. I probably read two or three books a month before but since buying my Kindle I have read 14 books - almost…

Do you program 4th dimensionally?


“Marty, you’re just not thinking 4th dimensionally” 
 I’ve worked on a few different types of applications at this point in my career and one sure sign of poor programming I’ve noticed is the inability to program 4th dimensionally. You notice this when the application may be working but implementing features begins to take longer and longer. The performance…

Work for Many and the Few

“It is more noble to give yourself completely to one individual than to labour diligently for the salvation of the masses.” - Dag Hammarskjuld, former UN secretary-general. 
 Disagree. 
 In life, we need both in our service to others. We need to contribute to many people but also contribute to just a few individuals close to us. For most people, the former comes from their…

Interesting Things in Japan

{{ youtube DsqCWXhSCWU }} 
 Thank you Mr. Toastmaster. Good evening everyone. 
 It’s been three months since I came to Japan now and I was thinking this week about my time here so far. Before I came to Japan in my city in Victoria there are many Japanese students that go to Victoria to study English or to study at university so I had known some Japanese people before I came here and…

Advice for New Software Developers

When starting a new path, it is often difficult to know which way to go. Some good advice I once received is that when people are starting something new, they need to be told exactly what and how to do it. It is only once they have a bit of experience that you can remove the “how” from the equation and just say what needs to be done. 
 For new programmers just getting started, here…

How to Find Your Passion

Why I Don't Have a Girlfriend

This is a speech I wrote for the Toastmasters Humourous Speech contest. Unfortunately, I didn’t have it completed in time for the contest so I delivered it a couple weeks later. There were some jokes that didn’t come off as funny as I didn’t deliver them well. I think this is a speech I could refine to make it much funnier. 
 {{ youtube Ni0t41njZMQ }} 
 Welcome guests.…

Programming Spiritually

If you are a spiritual person, you may sometimes wonder how programming connects to the bigger picture. Working in front of a computer day after day can seem like an activity most removed from the world, nature and God. Here are some things to do to feel more connected: 
 Awareness of Thought 
 You are a complete individual connected to a higher source. This higher source offers answers to…

Things You Didn't Know About Victoria

This is my 7th Toastmasters speech from the Competent Communicator’s manual. 
 {{ youtube 9tVsSjGuQQc }} 
 Thank you Madame Toastmaster, fellow Toastmasters and welcome guest. 
 Do you know what I like about Europeans? They know their history. Just look at Graham here. Graham can probably tell you everything about British history - all the relevant and irrelevant facts dating…

Learn Quickly: How to Soak up things like a Sponge

All my life I’ve been able to pick up things very quickly. This has led me to being bored with classes at times since they need to go at the pace of the average learner. I still remember taking Math class in high school. One year my teacher would assign the homework due for tomorrow at the beginning of class. I would usually just ignore what he was talking about and read the textbook and do…

High Performance the Lazy Way

This is my 5th Toastmasters speech. Re-watching it now, I was quite disappointed with it. I wasn’t prepared enough and it did not come off as smooth as it could have been. I also need to work on my vocal variety more. Luckily, that is the purpose of my next speech. Please evaluate this speech at Soapbox Guru . 
 {{ youtube hdycz0pX5ek }} 
 Thank you Mr. Toastmaster, fellow…

Increase Your Productivity. Work in 45 minute blocks.

Over the years, I have settled on a system that best allows me to focus and be productive. 
 Work 45 minutes. 10 minute break.
Work 45 minutes. 10 minute break.
Work 45 minutes. Longer break.
Repeat as necessary. 
 How did I come about this system? 
 Mostly by trial and error and observing my energy. I would notice that it would take me about 45 minutes of working on…

Never Compromise Quality

In programming people sometimes feel they have to sacrifice quality in order to get a product out the door on time. Never do this. You are hurting the customer, the company and yourself if you do. 
 This American Life had a very interesting program on the New United Motor Manufacturing Inc (NUMMI) plant in Freemont, California. NUMMI was a joint venture started in 1984 between Toyota and GM…

How to easily create Models and Table Relationships in Zend Framework

When I first started using Zend Framework, I was so frustrated when trying to figure out how to get information from the database. I fought against the framework for the longest time. Instead of working with it, I would write the SQL and then simply query the database to get the data back as an array of objects. 
 Later on I learned at just how powerful Zend Framework can be when it comes to…

You Don't Want Money

The other day, a young kid on the bus struck up a conversation with me. During the conversation, he said he wanted to make a lot of money because he doesn’t get enough respect from his peers. He thought if he could become rich enough, he could earn that respect. 
 Thinking about this conversation later, I realised no one really wants money. Money is meaningless. When people say they want…

The Dirty Secret of Work

This is my 4th Toastmasters speech. Please evaluate this Toastmasters speech at Soapbox Guru . 
 {{ youtube BcpBZt6yzZo }} 
 Good evening Mr. Toastmaster, fellow Toastmasters and welcome guests. 
 How many people here work full-time - about 40 hours a week or so? 
 Unfortunately, I have some bad news for you. You’re working too much. 
 What if I told you it was possible…

Productivity and Price

Recently I was approached by a former employer about doing a small task for them. While working there, I was paid $X/hr. For this task, I said I would need to charge roughly $2X/hr. He came back saying it was way out of his budget. 
 I was fine with not having the work because I obeyed the first rule of freelance work - always quote your rate so you are satisfied no matter if you get the work…

Developing Software when you are Technically Challenged

Recently I read a blog post from one of the RSS feeds I subscribe to. The author was looking to create an iPhone app to promote his business. He researched a few options - one quoted him $20-$30,000, another $8-10,000 and he also came across a website offering to create one for $499. 
 From reading his blog, I assume he has little-to-no software development experience. This is a scary position…

Sneaky Pricing

Pricing is one of the hardest things to get right for your business. I heard a story the other day of a business that implemented random pricing to pick the right one. On their pricing page, they had the system choose at random from a pre-determined list of prices. These price points ranged from $5 all the way up to $200. Keep in mind, this was all for the same product. After analysing the data,…

You, Inc.

Are you an employee who dreams of starting your own business? You have an idea that excites you when thinking about it. You visualise the finished product coming to life. You imagine all the money rolling in from sales. That is great but it could be months or years down the road. Do you really need to wait that long to start a business? 
 No. You already run a business, and that business is…

How to Torture Programmers

Do you have a programmer in your life that drives you up the wall? Would you like to be rid of him forever? You can! Just follow these five simple steps and your programmer will run crying for the hills. 
 
 Put him in an open office 
 
 Remove as many barriers to communication as possible. Put the most talkative person - the person who can’t keep quiet for more than five…

Read Books, Not Blogs

“Spend 15 minutes per day reading about your craft and within 5 years you will be in the top 5% of your industry.” 
 I read this quote a couple years ago and have tried to live by it since to see if it is accurate. I wouldn’t consider myself in the top 5% so it hasn’t worked yet. I keep doing it though because I see why it can work. To be in the top 5%, you have to do…

I Don't Want to be a Code Monkey

“I don’t want to be a code monkey.” I’ve heard a few friends say this who are involved in programming. I don’t get it. 
 Wikipedia says that a code monkey is someone “who writes computer code for a living.” That’s pretty broad. I assume a code monkey refers to someone who mindlessly takes orders. In that case, a code monkey must be someone who…

The Ups and Downs of Freelancing

Since summer 2008, I have logged over 600 hours of freelance programming work through the website odesk.com. It has been an interesting experience. In May 2008, I moved to China and ended up becoming an English teacher. I started freelance work because I missed programming. While English teaching is rewarding in its own way, I missed the satisfaction that comes from solving technical problems and…

About

Matt McCormick loves solving business problems using technology. So far his career has been mainly focused on developing web applications. He built his first website in 1997 and has enjoyed developing for the web ever since. He holds a Bachelor of Science – Major in Computer Science from the University of Victoria. 
 He has lived in Hong Kong, Kenya, Croatia, Poland, China and Japan. 
…