James Torkornoo
Full-stack developer and technical team lead in Canada. I build systems that stay up, and help teams ship them.
The 30-second version
- Role
- Full-stack developer and technical team lead, with more than seven years of experience.
- Strengths
- Backend systems, MySQL and PostgreSQL migrations, CI/CD on AWS, and leading a team of developers.
- Results
-
- Cut escalations to senior engineers by 30% with structured code reviews and mentoring.
- Moved a legacy platform to Laravel and MySQL with 100% data integrity.
- Made workflow routing 25% more accurate with a custom API integration.
- Automated releases with Terraform and Ansible, removing the deployment bottleneck.
- Stack
- PHP (Laravel), Go, Python, Ruby on Rails, MySQL, PostgreSQL, AWS, Docker, Terraform, Ansible.
- Looking for
- Full-time roles and freelance projects.
- Next step
- jtorkornoo@gmail.com · Résumé
Selected work
Recent work at Nordech. Client names are left out.
-
Automated a fragile release process
Every deploy depended on a fractured, hand-run environment, so releases queued up. I built an automated CI/CD pipeline with Terraform and Ansible. The bottleneck went away and uptime went up.
Terraform, Ansible, AWS
-
Moved a legacy platform to Laravel without losing a record
The platform ran on an obsolete framework. I migrated the database and application to Laravel and MySQL with 100% data integrity, and transaction processing became far more stable.
Laravel, PHP, MySQL
-
Made workflow routing 25% more accurate
Operations had goals but no spec. I worked with product stakeholders to turn those goals into one, then built a custom third-party API integration to route work correctly.
PHP, REST APIs, MySQL
Try it yourself
Small working models of problems I solve. The numbers are illustrative.
A small model of the kind of system I run. Click a server to take it down, then watch health checks route traffic around it. Each one restarts on its own.
App servers
Database
- Requests served
- 0
- Failed
- 0
- Success rate
- 100%
- All systems healthy.
Your turn. A customer's open-orders page takes almost two seconds to load. Build an index that gets its query under 1 ms. For a perfect score, read only the 20 rows the query returns, with no wasted columns.
The query
SELECT id, total, created_at
FROM orders
WHERE customer_id = 4821
AND status = 'open'
ORDER BY created_at DESC
LIMIT 20;
What you know about the data
ordershas 2.4 million rows (310 MB) in PostgreSQL 16.- 80,000 customers. Customer 4821 has 3,150 orders, 42 of them open.
statusis 85% shipped, 12% cancelled and 3% open.- Open orders are almost always the most recent ones.
Build an index: click columns in the order you want them
- Execution time
- Rows read
- Index size
- Attempts
- 0
Query plan
Your turn. Move 1.2 million orders from a legacy MySQL 5.6 database to PostgreSQL while the shop keeps taking orders. The goal: zero lost or corrupted records and under one minute of downtime. You have five calls to make.
- Records lost or corrupted
- 0
- Downtime
- 0 s
- Time taken
- 0 min
About
I've spent more than seven years building for the web, from database schemas to the pipelines that ship them.
Today I lead the technical team at Nordech. I set up structured code reviews and mentor our junior developers, which cut escalations to senior engineers by 30%.
I'm open to full-time roles and to freelance projects. I hold an Applied Science diploma from St. Lawrence College, where I made the Dean's List with Honours.
Away from the keyboard, or at a mechanical one, I'm usually listening to a podcast or watching football.
What I do
- Web applications
- Full-stack builds in Laravel, Ruby on Rails, Go and Python, with JavaScript front ends and third-party API integrations.
- Databases and migrations
- MySQL and PostgreSQL schema design, query tuning, and large migrations that keep every record intact.
- DevOps and cloud
- AWS, Docker, Terraform and Ansible, with CI/CD that makes releases routine.
- Leading and consulting
- Turning business needs into clear specs, keeping stakeholders informed, and helping developers grow.
Contact
Hiring for a role, or have a project in mind? Tell me a little about it and I'll reply, usually within a day.