John Fujiwara

Who I am

Hello, my name is John Fujiwara and I am a full-stack web developer living with my family in beautiful University Place, a neighborhood of Tacoma, in Washington State, USA.

I have a broadly-applicable skillset in web standards and .NET development and an aptitude for understanding and solving problems. I have an ability to find sustainable solutions with real people and their needs in mind.

Please take a look at this site for an explanation of my specific development strengths, examples of my work (be sure to see my Cash Flow Tool), and more about the kind of employer I'm looking for.

My general development approach

After a Minimum Viable Product has been clearly defined according to project goals and the application architecture has been defined according to the needs of application uptime, end user locations, processing delays, etc., then development work can begin. This is the approach that I often take:

  1. Completely understand the MVP problem and the solution. This is where deep conversations with anticipated end users and subject matter experts, iterative sketches of ideas, and honest discussions about scope and maintenance workload are absolutely vital. Beginning development before completely understanding the solution is only going to take you further away from a happy outcome.
  2. Nail down the data schema: If you set up the data schema and relationships correctly, you are building on a solid foundation.
  3. Write the implementations of your business logic by first writing my unit tests (TDD). This tends to save me a lot of time because my classes are inherently testable and I can be certain that my functionality is correct and solid because these unit tests will accurately and completely describe the desired behaviors defined by Step #1 and also cover errors and invalid requests. (Follow “Right BICEP!”)
  4. Train the other developers! This is often the step where multiple other developers begin writing logic, components and UI elements. If they don't understand the system design and application organization, they're going to re-write existing code and put logic in the wrong place, guaranteed.
  5. Create the RESTful API or GraphQL service on top of your business logic. Your SDETs should now be able to start testing at full speed via Postman at this point.
  6. Build the UI. Importantly, I first focus on getting the most-important “round trip” (i.e. request from UI to API and then render results) working ASAP. Then, iterate and refine with the shortest possible feedback loop with end users.
  7. While UI work continues (it always takes the longest), add telemetry and monitoring.
  8. Test and release!
  9. Refine, iterate, and enhance the application and automate onerous maintenance tasks.

W3C Standards Web Development (23 years' experience)

W3C Standards Web Development (23 years' experience)

I began my career with W3C standards-based web development, focusing on using:

  • HTML for declarative semantic meaning
  • CSS for styling, adaptability, and simple animation
  • SVG for simple graphical elements
  • and finally, behavioral Javascript only when necessary

This foundation of web fundamentals continues to serve me well all these years later.

.NET Development with C#, React, and NextJS (18 years' experience)

.NET Development with C#, React, and NextJS (18 years' experience)

I started with ASP.NET in version 1.1 and still use MVC Views in .NET 8 today.

I use .NET WebAPI to make RESTful services.

I use React when highly-interactive components are required.

I am increasing my experience with NextJS (this website is based on it) and find its server-rendering and predictive caching to be killer features. I'm excited to further my usage of it in professional projects.

Sitecore WCMS Development (8 years' experience)

Sitecore WCMS Development (8 years' experience)

Software Development and Problem-Solving (18 years' experience)

Software Development and Problem-Solving (18 years' experience)

OOP, TDD, Advanced debugging, optimizing systems

I take my work personally and see problems through to full resolution. I don't wait for someone else to find the answers for me.

Team Leader (8 years' experience)

Team Leader (8 years' experience)

I can fluidly bridge understanding gaps between programmers and non-programmers, including mentoring new developers.