I'm the founder and technical lead here at Nomadic. I am an ex Silicon Valley software engineer currently living in the UK and I have been writing and selling software for close to a decade. I first started programming within the game industry, writing physics engines and competitive AI for the web. My published games have been played millions of times by players all over the world. After leaving the game industry to work on enterprise software I have since gained experience working for some of the largest companies and organisations on the planet. Exposing me to enterprise grade software development and work ranging across ethical hacking, cyber security, machine learning, software defined networking, dev ops and more. My work has enabled me to make contributions to cutting edge technology that powers the backbone of the modern internet and in the process familiarised me with a breadth of knowledge across the full technical stack. It is against this background that I founded Nomadic, to help businesses and startup ventures gain a foothold in the fast paced technology industry.
Alongside my industry experience I also hold a degree in Computer Science from the University of Bath and a professional certification in Software Development from the British Computing Society.
Developing a brand new product?
If you have a new project then our all-inclusive product development services will help you move from initial concept through to product design, user testing, and ultimately a full production ready launch. Software can take many forms, mobile applications, desktop software, websites, or even embedded within hardware, we have experience developing across a broad spectrum of media and can accommodate even the most unconventional of requests. Full examples of our prior work are available on our home page.
Regardless of whether you want a new web app, or a new AR experience, there are some things that remain consistent. Below is an outline of our product development process and design philosophy. This process will help guide your project from concept through to completion and avoid the pitfalls along the way.
- We start with the User - Software is for humans, all software ultimately serves an end user, whether that user is your customer, your staff, a member of the public, or another developer, all software is consumed by someone and knowing who this user is and why they matter to your business is crucial to successful software development.
During this stage we will collect as much context about you and your business as we can in order to produce a user requirements document that will guide future development. Finding out not only who the user is but also how they currently relate to your business and how they will relate to your business in the future. This helps us identify which aspects of your software will generate the most revenue for your business and maximise your return on investment.
This stage seeks to answer questions such as:
-Who is your end user?
-How do they currently interact with your business? (if at all)
-Do you expect to open a new revenue stream or expand/improve an existing revenue stream?
-Are most of the users of this software going to be new to your company/brand or already familiar?
-For each interaction, how much revenue do you generate, or plan to generate, either directly, or indirectly? (e.g. a customer buys £X in goods, a sales rep closes £Y in deals for every Z times they perform this action, etc)
-If a user was to do task X Y times faster how would it affect your business?
-What proportion of your business is expected to come from interaction X vs interaction Y?
-How much does it currently cost you to do task X?
-How many users do you expect to launch with? How will this change over the coming months / years? (rough estimates can be gathered from projected growth, allocated marketing budget, acquisition cost per user, etc)
-What other services do your users use?
-What have you tried in the past?
-Where have you seen this service provided before? (If at all)
-Are your users similar to each other (age, gender, psychology), or are they diverse? Would you like them to be more diverse? Or have you found a niche?
-What are your competitors doing?
This is a non exhaustive list, some of these questions may not be relevant to your project and each set of requirements is generated on an individual basis. The answers to some of these questions will come from you, and some of the answers will come from your users. Knowing who they are early and getting their input on design decisions from the start will help your software meet their needs and consequently your needs as efficiently as possible.
Although these questions may not seem directly related to software development they can affect design decisions critical to your project. For example knowing that you are starting with a low number of users, each with a high acquisition cost and a high revenue potential if retained lets us know to prioritise the development of super slick and frictionless user interfaces rather than allocating excess resources to developing large scale infrastructure. It is questions like these that help us produce the most important pieces of your software first, rather than over charging for services that you don't need and which won't produce a return on investment.
- Initial design - Once we have found out who your user is, what their goals are, and what you hope to gain in return it is time to put this information to use and begin the design stage. During this stage we will work with you to generate the initial set of mock-ups for your software. This will help you and your users visualise how the software will look and behave. Ensuring that the design facilitates the objectives of the project and remains in keeping with the look and feel of your brand. This is an iterative process and once an acceptable design is found we will use this as a reference point to start building your software. You can have as much input into this process as you'd like, contributing designs and ideas, it is one of the most collaborative and interactive parts of the process between us and you.
- Iteration - After producing an initial design we will start building your software in stages, producing workable versions that we can demo with you and your users before moving onto the next feature. This lets us find out sooner rather than later if there are any unforeseen problems with the design or implementation. Do users find the software easy to use? Do they need instruction? This lets us make improvements whilst still building the rest of the product.
- Quality Assurance - Before releasing each stage to your users we will run a series of tests to ensure the smooth running of your product and to make sure no regressions have occurred. This maintains a standard of quality for your product and upkeeps the image of your brand by avoiding faulty product releases.
- Final release - Upon completion of your project we will run final quality assurance checks and final user testing to ensure all of the users needs have been met. We will then make sure you are fully educated about the operation of your software and are provided with all of the relevant documentation. We will of course remain with you to provide ongoing support even after the products release, and the product will be in good standing for the addition of future features and product requests as they arise.
Extending an existing product?
Are you looking to extend the features of an existing product? Or planning on integrating a new technology? Let me bring to you the experience and technical skillset cultivated whilst working on our products here at Nomadic. Some knowledge can only be learned from hands on experience developing across the entire software development lifecycle, so whether you need help architecting complex scalable systems or expertise in crafting engaging user experiences I can help your project excel.
For reference, below is a list of some of the languages and technologies used here at Nomadic.
Frameworks, Libraries & APIs
- Ruby on Rails
- AWS S3
- IDA Pro