Products developed
Years on the market
Five-star reviews
Startup exits
In-house experts
120+ excellent products shipped
Venture Building & Product Development Timeline
Let’s talk expert to expert.
Dive into the latest industry wisdom from our experts.
The Bootstrap vs. Raise Dilemma: A Startup Founder's Perspective
Having raised over $10M+ in the past and engaged in countless meetings with VCs and angel investors, I have recently transitioned to the bootstrapping route for my latest ventures. Why? Because it makes you think five times before spending every $10,000 and forces you to find new ways to progress with a limited budget.
The Freedom of Bootstrapping
Bootstrapping, the practice of funding a business with personal savings and revenue, provides entrepreneurs with a rare degree of autonomy. Without external investors to answer to, founders retain full control over decision-making processes, strategic direction, and the company's vision.
Moreover, every dollar becomes precious, and founders must carefully consider every expenditure to ensure optimal resource allocation. When you are personally invested in every aspect of the business, from product development to marketing strategies, you become acutely aware of the value of each dollar spent.
Heightened awareness fosters creativity and resourcefulness, driving entrepreneurs to find innovative solutions to challenges with limited financial resources.
Knowing When to Raise Funds
Of course, there comes a point in the startup journey where external funding may become necessary. Whether it is to fuel rapid expansion, penetrate new markets, or invest in research and development, raising capital can provide the resources needed to scale effectively.
However, my advice to fellow entrepreneurs is to bootstrap for as long as possible and raise money only when absolutely necessary or when pursuing ventures requiring substantial upfront investment, such as hardware startups.
By bootstrapping initially, startups can prove their concept, validate their market fit, and demonstrate traction, increasing their attractiveness to potential investors. By retaining ownership and control during the early stages, founders can negotiate from a position of strength when seeking external funding, ensuring they maintain a significant stake in their success.
Ultimately, the key is to strike the right balance between independence and strategic growth, leveraging external funding when necessary while preserving the spirit of entrepreneurship that drives innovation and creativity.
Ready to chart your startup journey? Check out our Startup Program or book a call with us now to learn how you can supercharge your startup.
Pivot Like a Pro: Startup Strategies for Success
Discover the highlights from our recent exclusive panel discussion featuring Roman Stanek, CEO of GoodData, alongside industry leader Milo Poplar and our Head of North America, Filip Orth.
The event provided valuable insights into global-scale product building and entrepreneurial success. Dive into the key takeaways and memorable moments from this engaging discussion, where experienced pioneers shared their wisdom and expertise on the AI landscape.
We were thrilled to have Roman Stanek and his impressive track record in building successful startups. His journey began with the acquisition of NetBeans by Sun Microsystems in 1999, followed by the acquisition of Systinet by Hewlett Packard in 2006. Along the way, his ventures received support from renowned VC funds like a16z, Intel Capital, and General Catalyst.
Outsourcing
During the event, our discussions delved deeply into the strategies startups can employ to enhance efficiency through outsourcing across various operational domains. We explored how outsourcing can serve as a vital tool in mitigating the challenges inherent in the dynamic startup landscape. Among others, these challenges encompass navigating a tough fundraising environment and contending with fierce competition in virtually every industry.
Agility and adaptability
Central to our discussions was the imperative for startup founders to remain agile and adaptable in the face of evolving circumstances. We underscored the critical importance of being responsive to market shifts and customer demands, emphasizing the need for continual adjustment to ensure the longevity and success of their ventures.
Operational effectively
The ability to pivot effectively is essential, particularly when considering the quest for operational efficiency. In this context, leveraging outsourcing capabilities becomes paramount, whether it is in technological development, sales, marketing, or legal compliance. This strategic approach is especially pertinent in the current landscape, where fundraising endeavors are meeting with increased difficulty, and access to capital is more constrained than it was just two years ago.
We intend to make this event a regular occurrence. We aim to host Founders’ Lounge regularly, each time focusing on a different theme and bringing in a special guest who will share insights from their entrepreneurial journey.
Are you a founder, investor, CTO or decision-maker in the technological startup environment seeking to accelerate your growth and gain a competitive edge in the market? Watch our LinkedIn for future invites!
Crash-Proofing Your Code: Setting Up Sentry on Android
Welcome back! As promised, we are here with the second part of the Crash-proofing series. This time, we will show you how to set up Sentry for the Android platform and some nice-to-have stuff as a bonus.
Let's begin!
Create sentry.properties file inside your Android project’s root folder
Initial setup in Sentry Admin
These are a few things you need to do before implementing Sentry Android SDK.
- Create a new project in Sentry. Give this project some appropriate name like your-project-android
- Then go to Settings → Projects → Your new Project → General Settings
- You should see the name of your project. This is your project_id. In sentry.properties, replace <project_id> with it
- Then go to Organization settings → General Settings, copy your organisation_slug and replace <organisation_slug> inside sentry.properties
- Then go to User and tokens and create new Token. You can add every permission to it for a start but its better to check every permission and decide for yourself what is needed.
- Then copy your new auth token and replace <auth_token> with it inside sentry.properties.Sentry can upload ProGuard mapping files for you and needs this auth token. Ignore this if you don’t care about ProGuard
- Your sentry.properties should be filled now.
- Then go to Settings → Projects → Your new Project → Client Key (DSN)
- Get your DSN link and save it somewhere for now.
- Now you can return to your Android Project
Adding sentry to project
A full tutorial is on this page. Sentry can set itself with a command, but if you prefer a manual approach or have problems, follow the instructions below or this page. Sentry will also give you a direct link for setup in Android Studio (https://sentry.io/organizations/XXX/projects/YYY/getting-started/)
- Add this to your main module build.gradle
- Open your application class and initiate Sentry
Let’s explore what each line does:
This line applies the environment to the issue. If you use several build flavors like development and production, you can then easily filter specific flavors.
These lines set the percentage value of how many traces to log. 100% means everything is logged. It’s not recommended to collect everything in a production environment; however, e.g., on development, it’s a good thing since testers could find bugs. In our example, we set the percentage on the release version to 10%.
- Open your AndroidManifest.xml file inside your main module and insert this
If you don’t want to use CI/CD and just hardcode your DSN, replace ${sentryDsnUrl} with your collected DSN link.
- Open app’s build.gradle and setup DSN there as well
- Add Sentry gradle plugin to project
This code enables sentry gradle plugin. This prepares scripts for your convenience like uploading aab to sentry with proguard mapping files.
Nice things to know
Assign someone to new issue
Every issue in Sentry can be assigned to someone and you can do that manually or automatically with rules.
Create Jira issue directly from Sentry
If you setup the Jira integration mentioned in the previous article, Sentry enables you to quickly and easily create Jira issues from the issue itself.
Discover page
Discover page let’s you quickly query in all yours collected data so you can answer analytics questions or analyse potential health issues in your project. You can use predefined queries or create, edit and delete your own queries. It’s really powerful tool but it’s limited only to Trial and Business Plan.
Pluggins for Sentry
Sentry for Android offers plugins which let’s you automatically collect more specific data. For example:
Some stuff like Android Fragments, okHttp events and logcat are already logged automatically from Sentry version 3.1.0.
In order to disable them, change the sentry config in the project’s build.gradle.
OkHttp plugin
Like said above, from Sentry 3.1.0, Sentry will automatically log OkHttp event via manipulating your final bytecode and inserting SentryOkHttpInterceptor. This will create breadcrumbs which would look like this:
If you use Sentry 3.11.0+, Sentry will also insert SentryOkHttpEventListener which will log even more data from http requests. Everything will be logged with logcat:
Thank you for diving into the second part of our series. If you have any questions, feel free to catch up or reach out.