How we work

We understand that only true cooperation will result in working software satisfying your needs. We build digital products based on domain-driven design method.

Transparency is our priority – you see what we do, then you give feedback, update goals, and change directions to meet your project’s needs.

Product cycle

  • Your idea
  • Backlog
  • Coding & Testing
  • Demo
  • Ship it
  • Great product

Communication cycle

  • You & our team
  • Communication rules
  • Ongoing interactions
  • Feedback and final acceptance
  • Ongoing monitoring
  • Good deal

We know who needs to join the team at which stage and free you up from doing estimates

  • Dedicated Team

    Time and material contract
    Transparent workflow
    Need NDA? Not a problem
    End-to-end delivery

    Tell me more!
  • Team Extension

    Quickly adapting to your team’s needs and standards
    Great communication skills
    Sharing knowledge and expertise

    Tell me more!

Company

Team

Process

Quality & Security

Technology

  • How does SoftwareMill’s mission support my project success?

    We work by the motto "Engineering. Excellence. Trust". Partnering with us lets you experience the difference that true engineering excellence can make.

    We're software experts with nearly two decades of experience building bespoke IT systems. We have developed deep technological expertise, gathered domain-specific knowledge, and designed an array of services to solve clients' most common problems and assist them in making strategic technical choices. Our experience spans multiple FinTech, MedTech, Telco, and E-commerce projects. Our technical specializations include Java, Scala, Kubernetes, Kafka, and TypeScript.

  • What can you help me with my project?

    We distinguish 6 main services of ours:

    Tech Partner for Digital Product Development
    Custom software designed for a specific set of business needs. We speak your language and understand your domain. We can help you evolve your existing applications using Domain Driven Design methods and techniques.

    Software Architecture Consulting
    Designing robust, high-quality, and secure software solutions is complex and requires up-to-date knowledge on changing technologies, frameworks, and tools. Our engineers are experts with hands-on experience in implementing different software architectures and design patterns. Here is the process of how we work together with clients to build modular, scalable, maintainable, and testable software solutions that enhance digital operations and drive growth. You’ll get a detailed recommendation of your tech stack based on your project requirements and constraints, and any other consulting work you’ll request!

    Project rescue
    Project in trouble? Reset your course of software development and overcome any difficulties in your core systems. We will assist you with identifying the problem, gathering information, and recommending solutions to your project in need. You’ll receive a turnaround plan and consultation to help you implement it.

    Cloud Modernization
    Migrate and modernise your business applications with us by transitioning from legacy monoliths to microservices-based cloud applications seamlessly. Using tools like Kubernetes, Helm, Terraform, AWS, GCP, or Azure, our developers will test and validate different migration strategies with the aim of minimising service disruptions down to minutes, improving availability, resilience, and scalability of the system.

    DevOps as a Service
    Do you lack internal DevOps expertise or the budget to obtain or train employees with those skills? Our vetted DevOps talent will ensure that your business achieves desired outcomes and successfully follows strategies of continuous delivery (CD) and continuous integration (CI) to deliver business value.

    Machine Learning
    We approach ML projects holistically, using a blend of science & tech. Mixing our scientific backgrounds, engineering expertise, and a generous pinch of business approach, we're able to build solutions that are usable, scalable, and profitable. We're diving deep into business problems to match it with the right tech and bring tangible results. See more on ReasonField Lab, SoftwareMill-founded machine learning company.

    We also specialise in project migrations to Java 21, optimizing cloud costs, solving JVM performance issues, leading ML/AI discovery workshops, and enhancing the productivity of development teams by implementing observability and self-service platforms.

    Need anything else? You can always reach out to us at hello@softwaremill.com and discuss the best possible solution in your specific case!

  • What distinguishes you from other software development agencies?

    We will become your tech partner, putting your business success and growth in the centre of our efforts. We go beyond resolving tasks and take an active role in shaping your company's technical core. We can do that as we have many years of experience in custom software development (for example, in Scala), hiring exquisite people with a CEO’s mindset.

    The whole SoftwareMill is technology-centred. We keep up to date with all the latest software development novelties and constantly grow our range of services (for example, we’re a Confluent Premium Partner) to deliver products that fulfill your technological and business strategic goals.

    Clients entrust us with responsibility for the technology side of their business, their software development teams read our technology blog and Scala Times newsletter, watch our tech talks, and use open source software that we create to build tools for the IT community.

  • Who are your founders?

    In 2009, our CEO Tomasz, CTO Adam, and Agile Coach Paweł (now SoftwareMill alumnus) were working together on a software project for a company from the US. They knew remote work was efficient, and they liked the freedom and work-life balance it gives. They wanted to start their software agency.

    The only thing missing was a diverse business perspective, so they invited Jan (Tomasz's brother-in-law) to join the Founders' Board. All the Founders were experienced remote workers, so starting a remote-first company was a no-brainer.

    Tomasz Szymanski is a former software engineer and currently our company CEO. As the SoftwareMill leader, he is guided by values like transparency and empowerment. Since 2020, he has held an EMBA title and constantly broadens his expertise as a teal organization evangelist and partner to everyone he encounters on his professional path.

    Adam Warski is a software development expert with over 15 years of development experience, building and growing our technical team as part of the company CRDO. Following traditional engineering values, his goal is, on the one hand, to inspire the community and, on the other, to proactively transform the businesses of our Clients with technology: an active OSS creator and contributor, Scala expert, and frequent tech conferences Speaker.

    Jan Zborowski is a dedicated Business Development Manager focused on delivering the best technological solutions to our clients. Software Development Association Poland ex-vice president. Jan is engaged in creating new strategies and constantly analyzing the market to deliver true business value. He is the connector between the IT world and its non-IT surroundings.

  • How do you operate as an organisation?

    We operate within a holacracy-like structure designed to foster rapid growth in technical and soft skills, which is our top priority. Our distributed, self-organized teams embrace a deep personal responsibility for our client's success, ensuring that every voice is equally valued. Instead of simply delegating tasks, we delegate responsibility, empowering individuals to take ownership. Mutual trust is at the core of our approach, giving everyone a sense of purpose and strengthening our unity.

    You can read more about how we operate here.

  • What makes you extra qualified to run software projects remotely?

    We have credentials in remote work and distributed software project development. We also share our experience to help our clients transition to the remote model.

    For us, remote work is as natural as breathing. We've operated that way since the company's beginnings in 2009, building our whole company culture around the remote-first approach. That's why our cooperation with clients goes so smoothly! Here you can discover our lessons learned when managing remote software development projects.

    Communicating a bit too much is much better than under-communicating. We update our clients regularly on Slack, Jira, or via email to let them know that their projects are taken care of - even if we're not physically in an office together. We’ve learned a lot about remote work throughout the last 15 years and we are eager to share it with you and your team! If you want to know even more, download our ebook about our Remote Software Development philosophy here.

    In 2025, we've also been honored with the Great Place to Work award, an achievement we hold in high regard. This recognition is special because it comes directly from our employees' feedback, serving as the most meaningful endorsement of our workplace culture.

  • How long do you typically cooperate with one client?

    We’re primarily focused on long-term projects as we specialize in complex systems and software, which usually require some time to dig into. For example, with one of our clients, IntelliSMS, we’ve been working on and off for over a decade! One of the things that makes us most proud is that so many of our clients come back to us with their following projects. It means that we’ve built a level of trust between us, allowing us to take technical ownership of their new, exciting idea!

  • Why should I choose SoftwareMill?

    To provide tangible business value, we do much more than develop bullet-proof software and write code. We anticipate common challenges and offer solutions in the form of open-source solutions, technical content, and architectural patterns. When working with clients, we excel at creating a mutual business relationship. Understanding the big picture allows us to give honest feedback and assist you in improving your business processes.

    Not only do we practice and learn constantly, but we also teach, create, and contribute. We put ourselves into the community, empowering individuals who want to lead by example and encouraging technical diversity. We are your engineers' first choice and your tech partner for digital transformation.

    Everything we learn usually lands on our tech blog. The topics we cover are most relevant to the current software engineering world. We've heard numerous times that other companies' developers worldwide read it regularly. This results from investing so much in our developers' growth - they are very experienced in crafting software, and it's worth having them on your project team!

    Being a remote-only company from day one, we have proven remote plays to organize and accelerate your team's work.

  • Who should I contact for more details?

    We have an experienced team of Account Managers who will guide your project in the right direction. Here you can read what happens after you contact us and then take the first step towards starting cooperation with us. All you need to do is to fill in the form here!

  • Who is in the team?

    What’s exceptional about SoftwareMill is that we have lots of recognised industry experts on board, people who are characterised by an exceptional passion for software craftsmanship.

    Need proof? Simply check a few of them:

    • Adam, our CRDO, Scala expert and OSS maintainer,
    • Michał, CTO at SoftwareMill, Architect, Team Lead,
    • Magda, experienced Scala/Java developer, successful conference speaker, and quality feedback advocate,
    • Jacek, Scala and Functional Programming tutor at SoftwareMill Academy, eagerly shares his development expertise at various tech conferences & meetups.

    The list could go on and on, but you need to know that no matter who will work on your project, they will have access to our collective tech mindset. This means that the skill set of our software engineers is so diversified and extensive that, in most cases, our teammates can find the help they need inside our organization.

    It wouldn’t be possible if our developers weren’t constantly updating and extending their knowledge, completing certificates, attending tech conferences, writing for our tech blog, joining tech reading clubs, and so much more!

    Our whole team is visible on our website, so you can always check what competencies our colleagues have. Additionally, you will have a dedicated Account Manager assigned to answer your questions: we value transparency highly, so feel free to ask whatever you want!

  • How does your team extend their skillset?

    Joining the SoftwareMill team means gaining access to lots of internal development initiatives! In 2024 alone, we:

    • attended 64 conferences & meetups - 38 times as speakers (among the most interesting ones were Devoxx Poland, Scala matsuri in Tokio, Java Zone in Oslo, Scala.io in Paris),
    • run 4 Tech Reading Clubs (covering books like "The Rust Programming Language", "Effective TypeScript", "Advanced Kotlin", and "Building Event-Driven Microservices"),
    • organised 23 Friday Markets (live presentations done by our team), on topics like "JVM observability on K8S", "Dry-run: microservices in practice: successes and failures" or "DynamoDB"),
    • read several books within our Soft Skills Reading Club initiative (among them were titles like "Slow Productivity", "Four Thousand Weeks", or "The Courage to be Disliked").

    As you can see, a lot is going on inside our company! Thanks to the holacracy-inspired approach, most of those self-development initiatives happen bottom-up: they’re proposed by our teammates and conducted with the support of the whole organization.

    When our software developers see that some certificate or course would help them do an even better job for our client, they simply get it! They will be happy to share their knowledge with your developers as well.

  • How do you assess your developers' technical expertise?

    Our hiring process is very well thought-through and demanding as we focus on multiple aspects that make someone a great software engineer. Besides evaluating their technical expertise (which obviously is very important, and our technical interview & assessment, regularly updated by our Senior Developers, address it extensively), we check the person's soft skills and the general ability to think and act as a trustworthy technical partner to our clients.

    You can read more about how we evaluate our engineers during an interview here. We conduct an extensive professional experience evaluation, dedicating time to examining their GitHub portfolio, checking for certificates, and asking how they want to develop in the future.

    When it comes to our current team members, we regularly monitor their progress, making sure that their knowledge is still relevant and constantly expanding. We ask their teammates how they assess their technical expertise, and we send questionnaires to our clients, where they can share how satisfied they are with their work. Thanks to those actions, we're ensuring they will stand up to the challenge in our partners' projects well!

  • What distinguishes your developers from the others?

    The best way to answer this question is to give voice to our clients. They most often use proactivity and engagement when describing our developers. Their Clutch.co reviews praise how fast our engineers have blended into their company, understanding their business core and becoming a valuable asset, driving the whole company in the right direction. They also mention their exceptional work ethic, good, or often fluent, communication in English, and openness to sharing their knowledge and experience with others.

    This results from an element of our mission - embracing individuality to build a collective tech mindset. Each of our developers is an independent, self-aware professional capable of coming up with new solutions and feeling personal ownership over our clients' success. Since the very beginning of your cooperation with our engineers, you'll think that you have found a team ready to use their technical expertise to serve your business goals!

  • What do you do to minimise employee turnover?

    Our brand is highly recognizable in the Polish software market. We are known as advocates for remote work (we've never had an office), respected public speakers, and experienced mentors, providing our team with growth opportunities rarely found in other tech companies. To minimize employee turnover, we organize numerous company integrations and joint activities while nurturing our exceptional culture of individualism, tailoring all company procedures to fit our unique needs.

    That’s why lots of our engineers feel the motivation to stay with us because they gain a lot from being one of the SoftwareMillers in so many ways! We understand that our engineers are our greatest asset, so we support them by creating clear career paths, keeping them informed about all company developments, and ensuring they work on projects where they can truly thrive and find satisfaction in their work.

    Recently, we've also been honored with the Great Place to Work award, an achievement we hold in high regard. This recognition is special because it comes directly from our employees' feedback, serving as the most meaningful endorsement of our workplace culture.

  • What kind of competencies do you have inside your team?

    Our core expertise includes:

    The list is quite dynamic, as we often have to learn new things, so if something of your interest isn’t on the list, contact us and we’ll let you know what our experience in that area is.

    Besides technical competencies, we also worked our way through to high domain expertise. The industries we specialise in most are FinTech, telecommunications, healthcare, eCommerce, and education. If you’re looking for specific competencies for your project, the best way is to simply reach out to us so we could ask about them inside our team.

  • Can I check who exactly from your team will be working on my project?

    Yes, you can. Visit the Team page on our website., and you will find everyone currently working at SoftwareMill. Most of our teammates run active social media profiles (Twitter, LinkedIn) and have their portfolios visible on GitHub, so feel free to check them out!

  • How can I start working with your team?

    Our first point of contact is always our Account Management team, which assigns clients to specific engineers. So if you want to reach our development team, simply fill in the contact form or send an email to hello@softwaremill.com.

    What’s unique about us is that each of the queries sent through those ways land in a joint inbox visible to the whole company. So, in the spirit of transparency, our developers can examine what kind of projects we receive and pick the one they feel most passionate about. Thanks to this approach, we have both satisfied engineers who work on projects they’ve personally chosen and happy clients because they received someone who matches both skills and personal motivation.

    Sounds like a win-win situation!

  • What do I need to know before contacting you?

    It’s great if your idea is at least well-described, but we can provide you with guidance and technical assistance at all phases of the development process. Our engineers join projects at various stages, from idea incubation to extending a team working on a launched product. If all you have is an idea, we will help you crystallize and make it happen. When first contacting us, please let us know how advanced the work on your product is and what support you expect.

  • How do you communicate during the project?

    We value open and honest communication, so we ensure that good communication standards are always maintained. Our clients work directly with our engineering team, so we don’t play Chinese whispers, but there’s also an account manager who will be there if you need any extra help.

    We communicate on Slack in our daily work and participate in our clients’ project management practices, e.g., taking part in daily Scrum meetings, planning sessions, etc. We plan our work in chunks and prepare demo meetings to present progress regularly.

  • What tools do you use in your development process?

    The exact toolset is case-specific and adjusted to the needs of a given project, but as a rule, for technical stuff, we use Git, GitHub, GitHub Actions, IntelliJ IDEA or Visual Studio Code. Where the client allows, we introduce tools from the AI toolbox: Copilot, Cursor, Windsurf, etc.

    To hone collaboration, we mostly use Jira for backlog management, Google Meet or Zoom for video calls, Slack for instant communication, and we share all relevant files via Google Drive or using Atlassian Confluence.

  • How can I track progress of my project?

    We organise our work in Jira and update it regularly. Our goal is to make our engineers integrate smoothly with your team, which also means that you can contact them on Slack whenever needed, and they join all the meetings that require their presence. Additionally, our business development specialists will provide you with support in any project-related issues, check on the project regularly, and get in touch with you to keep everything on the right track.

  • What happens if I change my mind about the way my product should work?

    We approach our projects in an Agile way, so there is always room for improvement, change, or even a pivot if necessary. Whenever we need to implement changes, we discuss them with our clients to contribute to choosing the optimal solution. Our engineers are proactive and committed to finding the best ways around for the tasks they're working on. They can suggest solutions or improvements if applicable.

  • What steps do you take to make sure that my project will go according to the plan?

    We know that setting the right foundation for the project is essential, so we make sure that we start off on the right foot. At the beginning of cooperation with our clients, we hold project scoping sessions or workshops that help us thoroughly discuss requirements, objectives, limitations, and doubts and set a project roadmap.

    We follow Agile principles to allow for flexibility, a fundamental part of software projects. When applicable, we create a PoC (Proof of Concept) before going into a full-blown project to validate the idea first and mitigate financial risks for our clients.

  • How do you estimate and track time?

    Our estimates are provided by engineers best equipped to assess the workload required for a given project. These estimates are made in person-days, and we also summarize the time spent on the project similarly. However, if your project follows a fixed-price model, the focus shifts from tracking time to ensuring the agreed-upon results are delivered efficiently. In such cases, our priority is aligning with project milestones and outcomes rather than individual time tracking.

  • In case of any changes inside your development team, how will you maintain my project continuity?

    If any changes happen on our side, it’s our responsibility to find the right people for the job and make the transition smooth. We have a team of people working on our open source projects that can join external projects if their expertise will be of value. Our engineers introduce new team members to the project to help them kick off their work easier and faster.

  • Will you share your expertise with my team members?

    Of course! Knowledge sharing is one of our essential values and we believe in growing through the exchange of knowledge. We always share insights and lessons learned with our clients’ team members.

    Additionally, we offer consulting and workshops, conduct SoftwareMill Academy trainings, and our senior engineers can take on the role of a tech lead in your project if that’s something you need.

  • How do you track clients' satisfaction?

    First and foremost, we check in on our clients regularly. Our developers are in constant touch with their teams on Slack, and our business development team contacts the clients to chat about how the project’s going. We also conduct surveys that assess our work and our engineers’ performance.

    We’re proud of the fantastic reviews that our Clients leave us on Clutch, and since they often come back to us with new projects, we’re guessing we’re doing it right ;)

  • How do you foster business relationships with clients?

    As a self-organising team that draws from the values of holacracy, we’re skilled all around. This means that we all share a business mindset, though we naturally have various levels of business knowledge. Building and fostering a relationship with a client is a team effort, so we all contribute. Transparency is an essential value that helps us develop valuable relationships with our clients.

  • Do you visit your clients?

    We do! We are a 100% remote team, but that doesn’t mean we don’t appreciate the value of meeting in real life. We visit our clients in their HQs whenever possible to work with their teams, hold brainstorming sessions, and get to know each other better. In our experience, collaboration is even more efficient when we’ve had a chance to meet in person and learn what we’re like in everyday life.

  • How much does custom software development cost?

    We operate using the time and material model, meaning the cost of software development depends on several factors, such as the project's duration, the required roles, and the number of engineers involved. Before the project begins, we estimate the necessary work based on the team composition and workload. Throughout our collaboration, we provide monthly summaries of the completed work, and our clients are billed based on the number of person-days our team has dedicated to the project.

  • What are the common challenges you work on in your projects?

    Some of the common challenges we face include performance issues that clients come across when their businesses are growing and their systems can't handle that increase; the lack of tests, which is a major issue as it impedes making changes in the code. Additionally, it's common that we work with non-maintainable code; in such a case, adding new features can eat up much more work and time than intended. We're prepared for many challenging scenarios and even have a service line addressing problematic software projects - Project Rescue.

  • How do you deal with different time zones?

    We’re very flexible - though our engineers work with us full-time, it’s not a 9-5 job. When there is a time zone difference, we always look for time slots that will be manageable for both the client’s team and us to hold all essential meetings and discuss any challenges. We’re also in touch on Slack, and since our team members work at different times of the day, there are no considerable delays in communication.

  • I have an idea, how shall I proceed?

    Contact us! An idea is always the perfect starting point. From there, we'll explore your goals, needs, requirements, and potential obstacles. We'll identify the best experts on our team to help bring your vision to life. With our end-to-end support, you can rely on our guidance and expertise at every stage of product development

  • How do you assure software is of high quality?

    Our software quality assurance process focuses on testing, reviewing, and code design inspection. We follow clean code principles so that the code written by our developers can be read by other developers, understood, and easily extended. We practice code reviews; this way, we reduce overhead costs, minimize project failures, and remove uncertainties, as well as grow as individual developers.

    Bug-free and semantically correct code is very important. Thus, we cover every piece of system functionality developed by us with low-level, automated (unit) tests. Apart from that, we maintain a set of high-level "acceptance" tests that verify whether a product works properly from the client's perspective. In fact, these tests are also automated to get rapid feedback after any changes in the code. For example, this can be done by simulating "clicking" through your web application.

    Through the development process, we aim to ensure a clean separation of functionality in our code with high cohesion and low coupling. At every stage of our cooperation, we identify what quality attributes are essential. Hence, the software architecture designed for you is easy to modify or extend as your business needs change.

  • How can I check for myself that your software quality is high?

    We care about the quality of how we produce software. As software artisans, we raise the bar of professional software development and always strive to design solutions that solve real-life problems and serve our clients best.

    There is no better way to learn about the results of our work than listening first-hand to our clients. We have several clients who are glad to provide feedback on our collaboration. Please view the reliable reference interviews from Clutch, where you can read about the scope of work and general feedback on our engagement. Also, if you’d like to speak directly with one of our clients, let us know, and we will introduce you.

  • How do you handle a project's intellectual property?

    First of all, we understand that our client’s business is their business and we appreciate and value that they let us in to learn about the details of their processes. To get a better picture, we might need some sensitive information. In such cases, we sign a Non-Disclosure Agreement (NDA).

    Moreover, our nearly 6.8 mln USD insurance covers cyber and privacy liability. We follow our Privacy Policy, which includes the GDPR requirements. All Intellectual Property Rights are contractually guaranteed to be transferred to the client once an invoice is paid.

  • What do you do to preserve your clients from vendor lock-in?

    The answer is simple: you won't be locked in. We develop software using widely adopted open-source frameworks and libraries, ensuring your digital systems remain future-proof. Our delivery approach emphasizes transparency, providing clear insights into releases and development progress at every stage.

    We write code and documentation with continuity, allowing future teams (whether ours or an external one) to pick up where we left off seamlessly. In fact, we've revisited code we wrote years ago numerous times to enhance functionality, demonstrating how well-structured projects can evolve effortlessly over time.

  • What steps do you take to ensure my code’s safety?

    We are cautious about the people who join our team. These are experienced engineers with a proven work record. Everybody is contractually obliged to follow our internal security policy, which covers, among others:

    • regular software updates,
    • encrypting all hard drives and mobile devices used for development,
    • requirement to use 2-factor authentication when possible,
    • requirement to always lock the computer when leaving it unattended,
    • following the principle of least access: you should only have access to the things you really need,
    • using selected and trusted SaaS platforms such as GitHub, Confluence, Google Workspace.

    The other side of security is writing secure applications. Our software developers consider this and build it into their programs from the very beginning of each project. Let the fact that we’ve never experienced a software leak or a security breach speak for itself.

  • How do you make sure that my software will work smoothly even after our cooperation has ended?

    Our recipe for successful software project delivery includes access to know-how, high commitment to the project, and common goals for all parties involved. Apart from always ensuring that our code is well documented and communication in the remote software project is of high quality, we know that to provide you with tangible value, we need to do much more than develop bullet-proof solutions.

    Here you can read more about a strategic approach to knowledge transfer in IT projects done with SoftwareMill. We make sure our developers share their knowledge with your team daily so there are no grey spots or hidden work. Every time we develop a new functionality, there is time to suggest amendments or give us a green light on the progress made. After this, with a clear head, we focus on the whole cooperation: providing business value!

    Even when our cooperation ends, you’re always welcome to come back and resolve any issues that might arise.

  • Are you willing to adjust to my organisation's security measures?

    Of course. When we join your team, we follow your rules and if required, we can take part in your security training. We are experienced in developing software for many fintech software development companies with the highest security standards.

  • How long does it take to start a project with you?

    After you send us your inquiry, we can assure you that you will receive a response from us within 24 hours (excluding weekends and public holidays).

    We are a transparent and self-organised company and we keep all of our inquiries open to the whole team: everyone at SoftwareMill can read them, including developers. Thanks to that approach, we can quickly sign an NDA and set up a call to discover your requirements. We can meet in person, preferably in Warsaw, and establish that together if you wish.

    Here you can read more about what happens when you contact us and explore steps like:

    • initial strategy meeting,
    • technical meeting with developers,
    • assembling your software development team,
    • and project kick-off.

  • How fast can you scale up your team working on my project?

    The speed at which we can scale depends on our software engineers' availability. Once we begin working on your project, you'll be assigned a dedicated business representative who will ensure all your needs are met throughout our collaboration.

    Whether you're a large enterprise, a scale-up, or a mid-sized company, you'll receive the same exceptional customer service as everyone else! What matters most to us isn't the size of your business or the industry you're in, but the potential of your idea. After all, every great software development project starts small before growing into something remarkable.

  • Who shall I contact for more details?

    Fill in this contact form or write to us at hello@softwaremill.com to contact our Business Development Team. If you are highly technical and want to get straight to the development stuff at the first meeting (we don’t recommend that approach but can adjust to your needs), let us know; we’re all set to meet your expectations.

  • What technologies do you specialise in?

    Our core expertise includes:

    The list is quite dynamic, as we often have to learn new things, so if something of your interest isn’t on the list, contact us and we’ll let you know what our experience in that area is.

  • What is the typical tech stack you are using?

    When making technical decisions, we are choosing technologies, frameworks, programming languages, and other development tools that are a good match to solve a given problem. These decisions have a high impact and can go a long way in making your life easier or miserable in the future, so there is no recommendation of a silver bullet solution when it comes to tech stack. We always focus on a problem to be solved and choose our tools based on that.

    Here you can learn more about the art of making the right technical decisions.

  • How will you choose the right tech stack for my project?

    Our engineers consider several factors when choosing the perfect technologies for your project:

    • our hands-on development experience with specific software frameworks, tools, and software architecture and design concepts,
    • our experience in solving edge-cases and knowledge of given technologies and tools,
    • the popularity of different IT technologies and their costs,
    • the size of various tech communities around given technologies: the bigger the community, the more support and up to date maintenance you can expect
    • the commercial support offered by software libraries, tool creators and maintainers.

    Here you can read more about nuances of choosing the right tech stack for your project.

  • Why Scala?

    Scala is our language of choice. Adam Warski, our CTO explained it well once: Scala is especially well suited for certain problem domains (but not all!). The biggest strength of Scala is its flexibility in defining abstractions. There’s a number of basic building blocks at our disposal; sometimes defining an abstraction is as simple as using a class, methods, and lambdas; sometimes an implicit parameter has to be used, or an extension method; in rare cases, there’s a need to resort to a macro. However, the options are there.

    Hence, Scala works great when there’s a need to navigate a complex domain. Distributed and concurrent programming is one example. Parallelism is very tricky to get right and Scala offers a number of libraries that make this task easier by building abstractions. There are two main approaches: an actor-based, represented by Akka, and an FP-based one, represented by Monix/cats-effect and Scalaz/ZIO (if you’d like to read more about how these compare, our CTO’s written a series of articles on this subject).

    But of course that’s not the only possible domain. Modelling typical business applications can also be taken to another level, using the available Scala features. Here, however, the complexity is of a different kind. With distributed systems, the complexity was technical. With business applications, the complexity is in the problem domain itself. Find out more in this video.

    Moreover, we don’t just use Scala; we actively support and grow the Scala community. SoftwareMill is the proud organizer of Scalar, the premier Scala conference in Central Europe.

    Discover Scala.page
    Download Scala 3 Tech Report

  • Why Java?

    Java is one of the most popular programming languages, and the JVM is one of the most heavily optimized and battle-proven runtimes. Java might be a pragmatic choice; often, our clients have existing Java teams and projects where we help develop a particular challenging functionality or introduce a new component.

    Moreover, Java has a vibrant and open community, meaning that for a particular problem, chances are high that a Java library or framework helps solve it. The above makes Java an excellent choice for large-scale enterprise software development, including back-end, Machine Learning, and Big Data projects, which we specialise in.

  • Why Kotlin?

    Kotlin's clear and simple syntax helps developers work more efficiently. It reduces unnecessary code, speeding up the development process. Kotlin's built-in features, like null safety and immutability, help create reliable and less error-prone code, making it a great choice for strong backend systems.

    Kotlin works well with Java, allowing teams to adopt it gradually without having to rewrite everything. It makes it a good option for updating existing Java projects. Its powerful features make Kotlin suitable for handling complex tasks while supporting object-oriented and functional programming.

    Many large companies, such as Revolut, Zalando, and Amazon, are choosing Kotlin for backend development. It combines productivity, safety, and JVM compatibility, making creating scalable and maintainable systems easier.

  • Why Typescript?

    Static typing is a great tool for making our work more efficient and eliminating a whole class of potential bugs. For some domains, such as the frontend and in some cases on the backend, using the JavaScript runtime is required; in such cases, our language of choice is TypeScript, which combines the flexibility and universality of JavaScript with the power of static typing.

    Our Senior Software Developer, Marcin Baraniecki, has advocated for the use of TypeScript in multiple open-source and commercial projects. He has had an overwhelmingly positive experience with the language. Here you can read his story.

  • Are you actively maintaining OSS?

    We are involved in many open source initiatives, not only because it feels appropriate to contribute to the open source community, which we heavily rely on in our day-to-day work. It’s also a great learning opportunity, but in the end, it also fills the niches where we have found insufficient investment.

    “Scratching your own itch” as they call it. Quite a few are related to the Scala language and functional programming as these are our favourite tools. We primarily contribute to our own projects and collaborate on existing ones, but also donate to some — take a look at our open-source showpage.

    A second major reason why OSS matters to us so much is that we are committed to building a "Simple Scala Stack" - a step toward a better Scala ecosystem that could use simpler or better thought-through APIs. Therefore, we’ve created tapir and sttp libraries which are widely known and used by the community.

    Our latest OSS projects leverage the new concurrency model for the JVM: Virtual Threads. Ox for Scala and Jox for Java provide developer-friendly concurrency and streaming toolkits. On our tech blog you’ll find more information about them.

  • Who should I contact regarding my tech needs?

    Fill out our contact form or reach out to us at hello@softwaremill.com to let us know that you’d like to dive straight into technical discussions from the very first meeting. While we don’t typically recommend this approach, we’re happy to adapt to your needs. Rest assured, our software engineers will be part of the conversation when discussing your project requirements.

  • Can I meet your software engineers before I commit?

    Yes, of course! During the sales process, our business development team arranges tech calls where we introduce carefully matched software engineers to your specific needs. These calls provide an opportunity for you to discuss technical requirements, ask questions, and get a feel for how our experts approach problem-solving. In fact, in about 80% of cases, the engineers you meet during these early discussions form the foundation of your dedicated project team. It ensures a smooth transition from initial conversations to project execution, with developers who already understand your vision and objectives.

  • Can my software engineers be part of the buying process?

    Absolutely! Your developers are more than welcome to join the technical call, where they can engage in discussions about requirements, architecture, and best practices. We love diving into conversations about programming and the software world, so feel free to reach out to us at hello@softwaremill.com, connect on Slack AMA, or say hi at the IT events we actively participate in.

  • Can I contact my tech team with you?

    Yes, you’re welcome to bring your developers on the technical call.

    Plus, we are always eager to talk about programming and the software world. You can approach us via hello@softwaremill.com, write to us on Slack AMA, or simply say hi on various IT events we actively participate in.