How I Work
How I work
I like having a clear idea of what I'm building before I touch the keyboard. Here's roughly how I go about a project.
01
Understand
Before anything else I want to know what the actual problem is. I read through the requirements, ask questions if something is vague and make sure I know what a good result looks like.
02
Research
I look at how others have solved similar problems, check the relevant docs and compare a couple of options before picking one.
03
Plan
I sketch out the solution before writing any code. That means thinking about the database, the routes and what the API should look like.
04
Design
I draw out the database with an ERD and map out the structure of the app. It's so much easier to catch mistakes on paper than in actual code.
05
Build
I write the code. I try to keep it clean and follow whatever the project already has going on. If something feels wrong I stop and think about it.
06
Test
I test what I build, both manually and with automated tests where it makes sense. Edge cases and error handling are things I pay close attention to.
07
Evaluate
Once it's done I check it against the original goal. Did it actually solve the problem? What could be better?
08
Improve
Based on what I find and any feedback I get, I go back and fix things. The first version is almost never the best one.
In practice
Requirements
I read them carefully, flag anything that seems vague and ask before building. Assumptions always come back to bite you.
Database design
I draw an ERD before writing any migrations so I can see the whole picture first.
API design
I think about the endpoints, naming and response format before writing any routes.
Laravel structure
I follow Laravel conventions and keep logic where it belongs. Not everything goes in the controller.
Testing
I write tests for the important parts and manually test edge cases I might have missed.
Debugging
I reproduce the bug first, then narrow down where it's happening. I use logs, dd() and Postman for API stuff.
Using AI
I use AI tools while coding, mostly for looking things up faster or generating boilerplate. I always read what it gives me though and make sure I actually understand it before using it.
I also check that whatever it generates actually fits the project, not just that it works on its own.