With over 20 years experience, I provide a comprehensive suite of services suitable for businesses of all stages of development, including emerging startups and established enterprises.
I am highly proficient to advanced in the following tools and languages: JavaScript/TypeScript, Node.js, React.js/React Native, Vue, Next.js/Remix.js/Astro/Nuxt.js, PHP/Laravel, Tailwind CSS/PostCSS/SASS/LESS, Prisma, PostgreSQL/MySQL/MongoDB, Docker/Kubernetes.
My services include:
-
Strategy
Product concepts often lack clarity regarding specifications, target devices (web, mobile, etc.), underlying technologies, and external collaborations. The outcome can range from achievement, to excessive investment in irrelevant elements, to the development of an incorrect product.
If you aim to refine your concept and minimize risk, I can assist you by answering high-level, strategic questions such as:
- Which core features and user flows are indispensable, and which can be deferred or eliminated?
- How can you streamline the product to drastically reduce implementation complexity?
- What is the most suitable delivery method: web, progressive web app, mobile app, or a combination of them?
- Are there any advantages to providing a public API?
- What is the most efficient technological stack to employ?
- Are there any technological constraints that should be resolved before proceeding?
-
Prototyping / MVP
Developing software can be exorbitantly costly, particularly for complex products. Simultaneously, many startups have failed due to the lack of demand for their offerings. Consequently, it is imperative to verify the existence of a genuine market for your product prior to investing resources in development.
I can assist you in minimizing uncertainty by creating a low-cost prototype, analyzing user input, and implementing necessary changes. After several rounds of iterations, you will have gained sufficient insight to determine whether the concept warrants further pursuit and in what form.
-
Product Development
Identifying a skilled developer who is dedicated to the product and possesses expertise in backend, frontend, and infrastructure can be a time-consuming process. Every day spent recruiting is a day wasted on activities other than growing the business.
I can assist you in constructing the entire product from scratch, encompassing infrastructure, databases, backend, frontend, and user interface. This will enable you to devote your energy to concentrating on the core aspects of your business.
-
Mentoring
You can enhance your team's overall skill level in two ways: by training existing engineers or hiring more senior personnel. If quick results are essential, then hiring is the better option, provided you possess the patience and budget. Training, on the other hand, can be a valuable long-term solution that increases staff morale, retention rates, and product quality. However, it comes with challenges such as an insufficient number of potential mentors, the team's time being split between mentoring and work, and the lack of resources for training.
Hiring a dedicated mentor like me can be a great way to help your team overcome difficulties and grow. As a mentor, my only role will be working together with your engineers and helping them improve their skills and deliver better work. Specifically, I can help them with the following tasks:
- Clarify requirements and identify edge-cases before starting development: By working closely with your engineers, I can help them understand the requirements of the project and identify any potential edge-cases that may arise during development. This can help prevent issues and ensure that the project is delivered on time and within budget.
- Break up work into manageable chunks: I can help your engineers break up their work into manageable chunks, which can make it more predictable and easier to track progress. This can also help prevent burnout and improve overall productivity.
- Pick libraries and services that are most appropriate for the task at hand: As a mentor, I can help your engineers make informed decisions about which libraries and services to use for a project. This can help ensure that the project is delivered on time and within budget, and that the code is maintainable and scalable in the long run.
- Devise a comprehensive test plan: I can help your engineers devise a comprehensive test plan that ensures their work meets acceptance criteria and won’t degrade with future changes. This can help prevent bugs and improve overall quality.
- Write code that is modular, readable, and performant: As a mentor, I can help your engineers write code that is modular, readable, and performant. This can help make the code easier to maintain and scale in the long run, and can also help improve performance.
- Prepare a change request that is clearly described: I can help your engineers prepare a change request that is clearly described, so that reviewers will be able to go through it quickly and effectively. This can help ensure that all changes are properly documented and reviewed.
- Communicate clearly and timely regarding their progress: As a mentor, I can help your engineers communicate clearly and timely regarding their progress. This can help ensure that everyone is on the same page and that any issues or roadblocks are addressed in a timely manner.
-
Technological Review
Minor problems accumulate over time as the product progresses. Although they may not be significant individually, they can eventually escalate into a substantial hurdle, resulting in bugs, delayed development, and team dissatisfaction. The moment it becomes apparent that the current design and architecture are no longer sufficient, a reevaluation is required to get the project back on track.
Technological Review can assist you in revitalizing the project by devising an enhancement plan based on your product objectives, architecture, source code, team structure, and development processes. The plan will include recommendations for all these areas as well as a high-level implementation strategy. Following the implementation of the plan, your productivity levels should return to their normal state.
My process:
-
Discovery Call
During the call, we will discuss your project in detail. I will ask questions to understand your goals, requirements, and constraints. I will also provide you with an overview of my services and answer any questions you may have.
-
Proposal
After the initial consultation, I will prepare a proposal outlining the scope of work, timeline, and cost. The proposal will be tailored to your specific needs and will include a detailed breakdown of the services I will provide.
-
Project Kickoff
Once the proposal is accepted, we will schedule a project kickoff meeting to discuss the project in detail and establish a plan of action. We will also set up communication channels and project management tools to ensure smooth collaboration throughout the project.
-
Development
During the development phase, I will work closely with you to ensure that the project is progressing according to plan. I will provide regular updates and seek your feedback to ensure that the project meets your expectations.
-
Delivery
Once the project is complete, I will deliver the final product to you and provide any necessary documentation and training. I will also be available to provide support and maintenance as needed.
Testimonials:
-
I've worked with and corresponded with Josh remotely for several years, and am amazed at his expertise and ability to code solutions to complex problems, and his ability to pick up new technologies and languages very quickly. I consider myself a proficient coder, but I've gone to him for coding help when I've needed it, and have never been disappointed in his recommendations and assistance. He is a master of his craft, and would be a good fit for anyone needs an experienced senior developer to help their company.
— Justin Reeve, Senior Software Engineer @ FranklinCovey. -
The independence and motivation exhibited by Josh is very impressive. His ability to put himself to a task and grind out production-ready code is one of his best traits.
Josh also exudes technical confidence, which helps him establish and maintain long-term professional relationships with colleagues who go to him for advice and code review. His interpersonal skills are quite strong as a result, and his patience with those who may not be as technologically inclined is a definite asset to a team or small business employer.
— Matthew Evans, Technical Architect @ Benevity.
If you are interested in working with me, please book a call to discuss your project.