
Hello, I'm Anthony. I'm a full-stack developer and AI-assisted software engineer with 10+ years delivering enterprise applications. I specialize in C#, .NET, ASP.NET Core, Angular, TypeScript, SQL Server, and Azure, and I use GitHub Copilot, OpenAI Codex, and prompt engineering to accelerate design, implementation, debugging, testing, and delivery.
I build with AI-accelerated engineering workflows. I combine SOLID architecture, clean code practices, and AI-assisted development to ship reliable software faster while keeping maintainability high for long-term product evolution.
In this portfolio, you'll see examples of modernization work, cloud delivery, real-time Angular applications, and AI-assisted software engineering across the full development lifecycle. My goal is to produce software that is fast to deliver, easy to reason about, and resilient in production.
About Me
After earning my degrees in Computer Science from Ulster County Community College and SUNY New Paltz, I built my career as a full-stack developer. Over the past 10+ years, I've delivered enterprise software for commercial and federal clients, modernized legacy systems, and shipped scalable cloud-based applications. My core stack is C#, .NET, ASP.NET Core, Angular, TypeScript, SQL Server, Azure, REST APIs, and cloud technologies.
I bring a strong focus on AI-assisted software engineering, using GitHub Copilot, OpenAI Codex, and prompt engineering to accelerate architecture, implementation, debugging, testing, and documentation without sacrificing code quality.
When I'm not coding, I enjoy gaming, movies, and dancing. I'm also passionate about continuous learning and currently exploring piano as a creative outlet.
My projects
Observatory
An AI OS for developers: Jev, a voice and text assistant that proposes and runs coding-agent work on your machine, over a live space-scene dashboard of your GitHub work. An Orrery of projects, a star-map review queue, issues, logs, Claude Code usage and agent report cards. Angular + Three.js.
From the README
An AI OS for developers. Jev, its assistant, takes typed or spoken requests and proposes coding-agent work that runs on your machine. Around him, your GitHub work is drawn as a live, animated space scene:
- Home: a glowing core that shows what the assistant is doing, a card per project, Claude Code usage, news and mail.
- The Orrery: one world per project, its look driven by that project's health.
- The review queue: one star per open pull request, grouped by what blocks it, with a PR screen to review and merge without leaving the page.
- Issues, logs and agent report cards for each project.
Observatory is a rebuild of pr-starmap, whose pages grew into single HTML files thousands of lines long. It is being migrated one small piece at a time into typed, tested Angular components.
Read the full README on GitHub- Angular
- TypeScript
- Three.js
- WebGL
- Node.js
- Vercel
- AI-Assisted Development
RivalsPulse
An Angular companion platform for hero learning, matchup strategy, positioning concepts, and guided practice for Marvel Rivals. Built with an AI-assisted workflow to accelerate feature planning, refactoring, and content iteration while maintaining a scalable component architecture.
From the README
RivalsPulse is an Angular coaching companion for learning Marvel Rivals heroes, matchups, team composition, positioning, and practice habits. It combines live data with curated lessons and interactive tools instead of acting as a static wiki.
Read the full README on GitHub- Angular
- TypeScript
- API Integration
- AI-Assisted Development
- Gaming
- Component Architecture
Rivals Pulse - Marvel Rivals Overwolf App (available soon on appstore)
Designed and developed an Overwolf companion application with Angular and TypeScript for real-time gameplay insights, hero recommendations, and performance analytics. Integrated a hands-free voice assistant built on the ElevenLabs conversational AI and text-to-speech APIs, so the app can be asked for matchup, positioning, and hero questions mid-match and answer out loud without the player ever leaving the game. Applied SOLID architecture, reusable services, and AI-assisted development workflows to accelerate delivery and maintain code quality.
- Angular
- TypeScript
- Overwolf API
- ElevenLabs API
- Conversational AI
- Voice Assistant
- Real-time Analytics
- RxJS
- SOLID Principles
- AI-Assisted Development
Agent Speak - Voice Plugin for AI Coding Agents
A plugin I built that gives an AI coding agent a spoken handover: when a task finishes it says one short line naming what is done and what to do next, instead of narrating the whole response back at you. Built the speech pipeline on the ElevenLabs API with an offline Windows SAPI5 fallback, pausable playback, and a low-level keyboard hook that claims the media keys only while audio is actually playing. Prototyping this plugin is what shaped the ElevenLabs voice agent that now ships inside the Rivals Pulse app.
From the README
Your agent tells you it's done โ out loud, in one line. Then reads the whole answer back only if you ask.
That's the whole idea. Most "read my agent's output aloud" setups read the response, which is written to be read, not heard โ you get the first few hundred characters of a document narrated at you. This reads a handover instead: one sentence saying the work is finished and what you do next. The answer itself stays on screen until you ask for it.
How it works underneath: Design notes โ why it speaks a handover instead of the response, why the media keys use a low-level hook, and the job object that silently killed detached playback.
Read the full README on GitHub- Node.js
- ElevenLabs API
- Text-to-Speech
- Voice AI
- Windows APIs
- PowerShell
- Developer Tooling
- AI-Assisted Development
U.S. Navy Application Modernization
Stabilized and modernized a mission-critical Navy application by resolving legacy issues, improving reliability, and delivering improvements under aggressive schedules. Combined .NET, SQL Server, and cloud deployment practices with AI-assisted engineering for faster investigation and execution.
- .NET
- SQL Server
- Azure
- Modernization
- Federal
Personal Portfolio Website (alternative)
A production-focused portfolio experience built with Angular and TypeScript to showcase architecture, engineering depth, and AI-assisted delivery practices. Uses modular components, strict typing, and clean abstractions to keep the codebase maintainable while enabling rapid feature evolution.
- Angular
- TypeScript
- SCSS
- RxJS
- Angular Signals
- Vercel
Modern Stack Solutions
A comprehensive business website showcasing modern web development services and solutions. Built with Angular and TypeScript for dynamic functionality and responsive design. Features service portfolios, client testimonials, project showcases, and contact integration. Demonstrates full-stack development capabilities with modern Angular architecture and component-based design.
- Angular
- TypeScript
- CSS3
- Business Website
- Professional Services
- Component Architecture
React Movie Database
A comprehensive movie discovery application built with React and integrated with The Movie Database (TMDb) API. Features include movie search, detailed information display, ratings, trailers, and user favorites. Implements responsive design, dynamic routing, and state management for seamless user experience.
- React
- JavaScript
- TMDb API
- CSS3
- REST APIs
- Responsive Design
JobPilot
Self-hosted job-search copilot: finds jobs matching your resume on a schedule, ranks them, and helps you apply with approval-gated automation.
From the README
A self-hosted job-search copilot. JobPilot finds jobs that match your resume on a schedule, ranks them, and helps you apply, without sending anything to an employer unless you approve it.
- Finds jobs from Indeed (via Claude Code's official connector), Remotive, Remote OK, The Muse, Adzuna, USAJOBS, JSearch (LinkedIn, Glassdoor, ZipRecruiter) and the Greenhouse/Lever career pages of companies you follow. Official APIs only, no scraping.
- Ranks every job 0โ100 against your skills, target titles, location and salary floor, and shows why it scored the way it did.
- Tracks your pipeline on a drag-and-drop board, from saved to offer.
- Helps you apply: drafts a tailored resume and cover letter from your own resume, fills Greenhouse and Lever forms, and submits only with your explicit, per-application approval.
Everything runs on your computer. There's no account, no cloud database and no telemetry.
Read the full README on GitHub- angular
- automation
- claude-code
- job-search
- nodejs
- self-hosted
- typescript
Software Design Coach
Interactive software-design mentor: plan the important decisions before coding
From the README
An interactive design coach that guides a developer through planning software projects and features before implementation, while teaching the reasoning behind each design decision.
The product specification lives in design/Software_Design_Coach_Build_Spec.docx.
Status: scaffolded. The app shell runs; the coaching workflow arrives slice by slice (docs/mvp-plan.md ยง6).
Read the full README on GitHub- TypeScript
CNA Study App
An interactive study tool built to help students prepare for the Certified Nursing Assistant (CNA) exam. The app covers core CNA topics drawn directly from course materials, including infection control, patient rights, communication, safety, personal care, and the BASICS model of resident needs.
From the README
An interactive study tool built to help students prepare for the Certified Nursing Assistant (CNA) exam. The app covers core CNA topics drawn directly from course materials, including infection control, patient rights, communication, safety, personal care, and the BASICS model of resident needs.
Read the full README on GitHub- JavaScript
My skills
- AI-Assisted Software Engineering
- AI Prompt Engineering
- GitHub Copilot
- OpenAI Codex
- ElevenLabs Voice AI
- Conversational AI Agents
- Text-to-Speech Integration
- CI/CD
- Azure
- Docker
- HTML
- CSS
- JavaScript
- TypeScript
- TypeScript Generics
- React
- Next.js
- Node.js
- Git
- GitHub
- Tailwind
- GraphQL
- Express
- SQL Server
- PostgreSQL
- Oracle
- Python
- Django
- Wagtail
- Framer Motion
- C#
- C# Generics
- .NET 8
- .NET Framework
- ASP.NET Core
- Legacy ASP.NET
- OAuth2
- JWT
- PHP
- WordPress
- RxJS
- Angular Signals
- Azure DevOps
- Angular
- Azure SQL
My certifications
- Angular Mastery Certification
Successfully completed the course Angular - The Complete Guide (2025 Edition) on 01/10/2026 as taught by Maximilian Schwarzmรผller on Udemy.
AngularTypeScriptRxJSSOLID Principles - SOLID (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion Principles)
Successfully completed the course SOLID Principles: Introducing Software Architecture & Design on 01/06/2026 as taught by George Sonora on Udemy.
SOLIDJava - Microsoft Office Specialist
Successfully completed the Microsoft Office Specialist certification to demonstrate proficiency in Microsoft Office applications including Word, Excel, Access, PowerPoint, and Outlook.
Microsoft OfficeExcelAccessWordPowerPoint
My experience
Applications Developer (Contract) - AppTech
Norwalk, CT (Hybrid)
Modernized Angular and .NET Framework applications to Angular 19 and .NET Core. Developed scalable ASP.NET Core APIs in C#, implemented reactive Angular features with RxJS and Signals, and integrated Azure DevOps CI/CD pipelines for automated delivery.
Apr 2025 - Jun 2025Cloud Software Engineer - Constellation Software Engineering
Remote
Led architecture and modernization support for U.S. Navy reporting systems using .NET, SQL Server, and Azure. Delivered a public-facing Navy JAG platform with Django, Python, and Wagtail, while improving deployment reliability and database performance.
Sep 2023 - Aug 2024.NET Software Developer - Ryan Specialties
Rockhill, NY
Modernized legacy .NET applications, improved maintainability and scalability, and collaborated with cross-functional teams to deliver robust enterprise software under aggressive timelines.
Jan 2023 - Aug 2023.NET Software Developer - InfoEd Global
Albany, NY
Developed enterprise software with .NET Framework, Angular, JavaScript, SQL Server, Oracle, XML/XSD, and REST APIs. Optimized performance through refactoring and code reviews, and delivered integration features for enterprise data exchange.
Nov 2018 - Nov 2022WordPress / PHP Developer - REV Design
Remote
Built and maintained custom WordPress websites and PHP applications, improving performance, security, and overall user experience for client-facing platforms.
Dec 2017 - Nov 2018.NET Software Developer Intern - Precision Care Software
New York
Developed ASP.NET applications and SQL Server solutions, built responsive interfaces, and contributed to testing and code review workflows in a team environment.
Apr 2015 - Apr 2016Bachelor's Degree in Computer Science
SUNY New Paltz, NY
Graduated with comprehensive foundation in algorithms, data structures, software engineering, database design, web applications, and design.
2018Associate's Degree in Computer Science
Ulster County Community College, NY
Earned foundational knowledge in programming, computer systems, software development principles, web applications, and design.
2014Design foundations
As a WordPress developer at REV Design, I worked alongside a professional graphic designer who constantly critiqued my design and UI work. I also worked with the company's CEO, who taught me Adobe Photoshop and discussed design and projects with me. I have a keen eye for UI/UX, and these are the principles I bring to the interfaces I build.
Layout and visual hierarchy
Composing pages with deliberate alignment, spacing and grouping, so related elements read together and the most important content draws the eye first.
Semantic HTML
Structuring markup with meaningful elements, landmarks and a logical heading outline, so the document makes sense to browsers, search engines and assistive technology before any styling is applied.
Maintainable CSS
Translating designs into precise, consistent CSS: a shared spacing and type scale, reusable styles and responsive layouts that hold up from phone to desktop.
Color theory and contrast
Applying color with intent: a restrained palette, accent colors that guide attention to key actions, and foreground and background pairings with enough contrast to stay legible.
Typography
Selecting and pairing typefaces, and tuning size, weight, line height and line length, to build a clear typographic hierarchy that is comfortable to read.
Accessibility
Designing for everyone from the start: sufficient color contrast, readable type, visible focus states and keyboard-friendly interactions, guided by WCAG.
What I'm learning
Talks, videos and books on computer science and software craft that shape how I build and keep sharpening my skills.
LIVE: Uncle Bob on Software Fundamentals in the Age of AI(opens on YouTube in a new tab)
Matt Pocock
Robert C. Martin (Uncle Bob), author of Clean Code, talks with Matt Pocock about building software with AI coding agents. His point: agents are fast, but messy code trips them up much as it trips up people, so clean code, well-shaped modules and strong tests still matter, for the same reasons they always have.
Key ideas
- Agents thrash on messy code. Stack task on task without cleaning up and they start breaking one thing while fixing another, going in circles - the same wall humans hit.
- Rules in a long prompt are "more like guidelines": instructions get lost in the middle of a growing context window. Keep the prompt short and enforce quality with deterministic tools instead.
- Put agents in a loop with automated checks they must pass: CRAP scores (complexity weighed against test coverage), mutation testing, and rules for which modules may depend on which.
- Chain focused agents: a specifier writes acceptance tests and a written QA procedure, then a coder, a cleaner, a hardener running mutation tests, and a QA agent that turns the procedure into an executable script. It takes about an hour instead of five minutes, but it is still several times faster than a person, at higher quality.
- Give agents human values, not human disciplines: keep the quality bar, adjust thresholds to what agents handle well, but don't force strict test-driven development on them.
- He has given up on big up-front specs. Change is now cheap, so he is experimenting with building a story or two, reviewing the architecture, and iterating.
- Fundamentals still matter because software is enormously complex, and they are how we organize that complexity so both people and models can understand it.
How to apply it
- Keep CLAUDE.md or AGENTS.md short, and turn every rule you can into a linter, type check, test or CI gate the agent has to pass.
- Add a complexity and coverage check, and try a mutation-testing tool (such as Stryker for JavaScript and TypeScript) to find logic no test really covers.
- Write down which modules may import which, and check it automatically so the architecture can't drift.
- Split agent work into stages - implement, then clean up and review, then harden - each starting from a fresh context.
- Work in small increments and review the structure between them instead of handing an agent a long plan.
- Keep writing some code by hand and read the classic books, such as those by Tom DeMarco and Ed Yourdon, so you can recognize when an agent is struggling.
- Clean Code
- Software Craftsmanship
- AI-Assisted Development
A Philosophy of Software Design | John Ousterhout | Talks at Google(opens on YouTube in a new tab)
Talks at Google
Stanford professor John Ousterhout, whose systems include Tcl and Raft, argues that the most important idea in computer science is problem decomposition - splitting a complicated system into pieces you can build independently - and that it can be taught. He walks through the core ideas of his book and his Stanford design course.
Key ideas
- Classes should be deep: a small, simple interface hiding a lot of functionality. The interface is everything a caller has to know, side effects included, so shallow classes add cost without hiding much. The five-call Unix file API is his favorite example.
- Beware "classitis": lots of tiny classes because methods "should be short." Length isn't the real problem; abstraction is. Make the common case simple.
- Define errors out of existence: change what an operation means so the error can't happen. Tcl's unset should simply have succeeded on a missing variable - throwing there was his own mistake; Unix lets you delete a file that is still open; a substring call could return the overlap instead of throwing.
- Still throw an exception when you truly can't do what the caller asked, such as a failed disk read. Part of design is deciding what matters.
- Working code isn't enough. Tactical programming - get it working, allow a few shortcuts - piles up into spaghetti through hundreds of small mistakes, and the "tactical tornado" who ships fast leaves a mess behind.
- Program strategically: aim for a great design, because most of the code you will write is in the future. Investing roughly 10-20% more time pays for itself, in his opinion (he has no hard data), within six months to a few years.
How to apply it
- Before adding a class or function, weigh its interface against what it hides; fold wrappers that only forward a call back into their caller.
- Design the interface first, and make the most common use the simplest one.
- Each time you reach for a throw, ask whether the operation could be redefined so the case is normal: idempotent deletes, clamped ranges, empty results.
- Spend about 10-20% of your time on design, and leave code a little better every time you touch it rather than making the smallest possible change.
- In code reviews, talk about design - shallow modules, complicated interfaces, too many exception handlers - not just style and bugs.
- Software Design
- Complexity
- Modular Design
AI Skills with Matt Pocock(opens on YouTube in a new tab)
The Pragmatic Engineer
Matt Pocock, creator of Total TypeScript and of the widely used "grill me" skill for AI coding agents, explains how he plans, delegates and course-corrects with agents. His view: AI has largely eaten tactical programming, leaving us the strategic work, and the classic software engineering books turn out to hold the ideas that work best with agents.
Key ideas
- An agent can't read your mind. "Grill me" is a very small skill that tells the agent to interview you relentlessly, so it learns what you value and what is in and out of scope before it writes code.
- The more context an agent holds, the worse it performs (Dex Horthy's "smart zone" and "dumb zone"). So he turns a grilling session into a spec that says where the work ends, splits it into tickets of one session each, and runs an implementer loop over them while he is away from the keyboard.
- Match planning to the work: a small change you can check afterward needs no grilling, work that fits one session gets "grill me", and work spanning many sessions gets his Wayfinder skill - a map of decisions with a fog of war that each grilling, prototype or research ticket clears.
- Cheap prototypes are what keep up-front planning from becoming waterfall: build three or four versions, pick a favorite and iterate before writing the spec.
- "Leading words" steer agents. Terms like "tracer bullets" from The Pragmatic Programmer, "deep modules" from A Philosophy of Software Design, and "vertical slices" are in the model's priors. He reached for them because agents kept building the whole database layer before the app on top of it, and once he used them, the agent repeated them in its own reasoning.
- Build a shared domain language with the agent, Eric Evans's ubiquitous language from Domain-Driven Design. Once you both say "materialization cascade", you can describe a change in far fewer words.
- Memento-driven development: an agent starts every session with no memory, so it can't learn to work around a bad codebase the way a person does. Optimize the code for a newcomer - which is what software fundamentals have always aimed at.
- He has mixed feelings about test-driven development for agents. It suits small human working memory, which agents don't share, but agents do need feedback loops, so he asks for proof that a change works and watches for tautological tests that just restate the code. He still recommends it for the confidence it gives people.
How to apply it
- Before a large or hard-to-reverse change, have the agent interview you until the scope and tricky decisions are settled; skip that for a quick fix you can review afterward.
- Write the decisions down as a spec, then split it into tickets small enough for one fresh session each.
- Ask for a thin tracer bullet through every layer first, and name the concepts you want ("vertical slice", "deep module") in prompts and skills.
- Keep a glossary of domain terms, and use the same names in conversation and in the code.
- Ask for evidence that a change works, such as a test that fails without it, and have a review agent reject tests that only restate the implementation.
- Schedule regular codebase care - he runs an architecture-improvement skill every morning and turns its proposals into tickets - and treat yourself as your agents' platform team.
- Read his three picks: The Pragmatic Programmer, A Philosophy of Software Design, and the first few chapters of Domain-Driven Design.
- AI-Assisted Development
- Agent Workflows
- Software Fundamentals
Books
- The Pragmatic Programmer, 20th Anniversary Edition(opens in a new tab)Status: Reading
by David Thomas and Andrew Hunt
Contact Me
Please contact me directly at anthonybturner@icloud.com or through this form.