I offer a range of services appropriate for technological organizations of all sizes – from early-stage startups to mature companies.
Product ideas are often fuzzy in terms of features, target platforms (web, mobile, etc.), technologies, and third‑party integrations. Depending on your luck, results vary from success, to over‑investing on non‑essentials, to building the wrong thing.
If you’d like to make your vision more concrete and less risky then I can help you do that by answering high‑level, strategic questions like:
- Which features and user flows are essential? Which can be postponed or removed?
- How to tweak the product to drastically simplify implementation?
- What’s the best delivery mechanism? Web? Progressive web app? Mobile app? A mix of them?
- Are there any benefits to offering a public API?
- What’s the optimal technological stack?
- Are there any technological limitations that should be addressed before moving forward?
Software development is insanely expensive, especially at higher product complexity. At the same time the startup graveyard is littered with products no one needed or wanted. That’s why it’s critical to ensure there’s a real market for your product before committing to development.
I can help you reduce uncertainty by building a cost‑effective prototype, interpreting user feedback, and making appropriate adjustments. After a few iterations of this process you’ll have learned enough to decide whether the idea is worth pursuing and in what form.
Finding a competent developer is time‑consuming and gets more difficult if you’re looking for a someone who cares about the product or has a mix of backend, frontend and infrastructure skills. Every day you spend recruiting is a day not spent on actually building the business.
I can help you build the entire product from the ground up – infrastructure, databases, backend, frontend, user interface – letting you focus your efforts on making the business side work.
Directionless software engineering is probably the world’s most effective cash‑burning machine. Many developers need and expect a well‑organized backlog of work, clear requirements and acceptance criteria, along with a simple process that will tell them whether the project is on track without causing annoyance.
I can join a group of your engineers to form a team that takes a business and product goal, turns into a backlog of well‑specified engineering tasks, and deliver it on time and under budget without compromising quality.
You can increase your team’s overall skill level in two ways – by training existing engineers or hiring more senior people. If you need results relatively quickly then hiring is the way to go provided you have the patience and budget required. Training can be a great long‑term alternative that increases morale, employee retention, and product quality. It comes with its own difficulties though like an inadequate number of potential mentors and the team and the fact their time has to be divided between mentoring and product work.
You can overcome those difficulties and help your team grow by hiring me as a dedicated mentor whose only role will be working together with your engineers and helping them improve skills and deliver better work. Specifically, I can help them to:
- Clarify requirements and identify edge-cases before starting development.
- Break up work into manageable chunks that make work more predictable.
- Pick libraries and services and are most appropriate for the task at hand.
- Devise a comprehensive test plan to ensure their work meets acceptance criteria and won’t degrade with future changes.
- Write code that is modular, readable, and performant.
- Prepare a change request that is clearly described so that reviewers will be able to go through it quickly and effectively.
- Communicate clearly and timely regarding their progress.
Tiny issues are accumulated daily as the product evolves. Neither is significant on its own but over time they can snowball into a tremendous burden causing bugs, slowing down development, and frustrating the team. That moment you realize you’ve outgrown the current design and architecture and have to rethink them to get the project back on track.
Technological Review can help you rejuvenate the project by devising an improvement plan based on your product goals, 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. After implementing the plan your productivity should return to their normal levels.
You can follow me on Twitter for more ideas, tools, and discussions about software engineering.