Please introduce your company and give a brief about your role within the company?
Ulam Labs is a software development company specializing in Python and blockchain solutions for SMEs and Startups. We focus on custom software development, DevOps, consulting, and outsourcing to ensure the best service and support for our clients.
Personally, I am the CEO of the company.
What was the idea behind starting this organization?
The idea to start this business came very naturally and was demand-driven. I am a technology leader with over 10 years of experience, but the first steps in this industry I took as a freelancer. I quickly realized that the demand for such services was constantly rising - we're regularly looking for new people to join our growing team. It was the perfect moment to set up Ulam Labs. Nowadays, we serve clients from startups to SME companies, but as a growing software house, we are able to provide services for corporations as well.
What is your company’s business model–in house team or third party vendors/ outsourcing?
We are a fully in-house company. Our team and their skills cover all a client’s needs throughout the full software development life cycle - from designs to both frontend and backend development.
Our primary and most important process at Ulam Labs is recruitment. This step directly influences the quality of the code we write. That is why I am personally involved in the recruitment process for all our engineers. I have spent long hours to make this process outstanding.
Hiring the best people is our top priority for various reasons, but the most important is the fact that our employees are associates who build the spirit of the company and work with our clients.
How is your business model beneficial from a value addition perspective to the clients compared to other companies' models?
We are a dynamic software house with a strong DevOps background. This means that our solutions are robust and deeply rooted in the Cloud Native approach. While older Software Houses hire DevOps contractors and then struggle to combine them with their existing teams, we already have AWS and GCP stacks that all our engineers are both familiar and comfortable with.
We provide our services globally, but thanks to our location in Poland, we have access to a top talent pool of the best engineers in the world.
What industries do you generally cater to? Are your customers repetitive?
We serve all industries, as all of them require software solutions. However, our focus is on the telecommunication, cryptocurrency, enterprise blockchain, e-commerce, and agriculture sectors.
Mention the objectives or the parameters critical in determining the time frame of developing software?
A lot depends on how well defined the project is. If the clients’ documentation is detailed, we can very quickly move on and start coding. For clients who only have a general idea in mind, we provide discovery workshops. It is the perfect option when a client is only considering the development of an idea, preparing a prototype for investors, or planning a detailed implementation. Together we define the scope, requirements, and expected outcome. The critical parameters that determine the development time of software depend highly on the complexity of features, as well as the number and type of devices it will need to run on (e.g., mobile, desktop).
How much effort in terms of time goes into developing the frontend and backend of software?
As no app is the same, the Discovery Workshop is intended to answer your question. The process helps to find the most efficient way to calculate how much effort will be spent on the backend or frontend.
It is also important to add that some apps require almost no backend or frontend work. Imagine Frontend is the only app that uses a public blockchain as a backend (like MyEtherWallet) or, on the other side, a data science pipeline where the interface could be just files stored in the cloud.
These are of course extremes, but we build various apps that lie somewhere within that spectrum.
What are the key parameters to be considered before selecting the right framework for developing software?
Our specialization is Python development; Python is a powerful, general-purpose language that allows us to build applications fast while maintaining high product quality. It is one of the best and most effectively intelligible programming languages, which means our clients can effortlessly create software, web applications, or MVP.
For us, the crucial factor is the speed of development or the speed of an application itself (how fast it can run). This is the most important factor, as it defines which framework should be used.
In most cases, the speed of an application is not a concern because processing power is super cheap and you don't need to think about it until your product is large enough to optimize instead of adding new VMs to the cluster. That said, there are use cases when you need to take care of it, for example when processing large chunks of data.
On the other hand, the speed of development is crucial because it determines the budget and time required to deliver for the MVP or product.
Which languages & frameworks do you prefer to use for the development of software?
Python has one of the best frameworks in the world - Django. Django encourages rapid development and clean, pragmatic designs. We use it in 80% of cases, in the other 20% we use a framework that allows asynchronous programming using asyncio. Here we are more flexible, but FastAPI is probably the best bet.
For the frontend, we choose between Vue or React, and both of these frameworks have strong points. Vue is a little bit more opinionated and therefore faster to develop, but React has a larger community. For mobile we use Ionic or React Native, depending on whether you need a faster app or a faster time to market.
What are the key factors that you consider before deciding the cost of software?
Software size is a crucial factor in estimating the cost of custom software development. Deadlines and the timeframe discussed with the client are also important factors that determine the cost of the software. On top of that, there are additional aspects like the purpose of the software or the number of devices that the software will operate on.
What kind of payment structure do you rely on to bill your clients? Is it Pay per Feature, Fixed Cost or Pay per Milestone (could be in phases, months, versions etc.)
At Ulam Labs, we usually base our billing on time-and-material contracts. It is a flexible approach, easy to pivot if the specification or requirements change. However, there are numerous other options for companies that cannot decide on this type of pricing, because of European funding for example. We are very flexible in terms of payment structure.
Do you take in projects which meet your basic budget requirement? If yes, what is the minimum requirement? If no, on what minimum budget you have worked for?
We are flexible in terms of minimum budget, but from our experience, $20,000 would be our bottom line.
What is the price range (min and max) of the projects that you catered to in 2019?
Our projects ranged between 25k USD and 400k USD.