11 reasons why you will love working at SoftwareMill

Ola Puchta-Górska
SoftwareMill Tech Blog
10 min readDec 6, 2018

--

Article updated on 25.10.2021.

Our mission at SoftwareMill is to create the best workplace for true engineers. We’ve been pursuing this mission for over 12 years already! Read more to find out what matters most to us and why the chances are high that you will fall in love with your possible role at SoftwareMill.

Already convinced? Apply today and become part of our team!

Download the ebook and find out all the secrets of our 100% remote team.

#1 New technologies

Our main area of focus are the latest back-end technologies. We invest in our skills and knowledge to not only stay up-to-date but make the most out of the new technologies in the projects we work on.

Our projects benefit from the powerful new devops-oriented technologies like Kubernetes and all the tools around it. In Scala ecosystem, we heavily use Akka Streams, as well as Akka Cluster and Persistence. We also work on functional codebases with fs2, cats-effects and related libraries. As for infrastructure, we are highly experienced with Apache Kafka, Cassandra and Redis with advanced monitoring capabilities of Prometheus, Graylog and Grafana, all of that well established in a distributed environment.

Within the problem area of Machine Learning, we create end-to-end Artificial Intelligence solutions for Computer Vision, Natural Language Processing, and predictive models. For that, we use Python as the main program language and Tensorflow, scikit-learn, OpenCV, PyTorch, and mlflow as base technologies.

Finally, we’re experts in blockchain technologies, especially Hyperledger Fabric, Ethereum, Solidity, Smart Contracts design, and decentralized applications.

#2 Interesting projects

All the mentioned technologies get implemented in really interesting projects. From a migration of SMS Gateway service to the AWS Cloud, through a reactive platform for real-time asset trading up to a high-performance SMS broker. These are just three examples of the projects you could work on at SoftwareMill and there are many more.

Let’s look into the details of one of our projects — a modern end to end collections platform Flexys described by a developer working on it — Magda Stożek. Here is how she describes it:

“We benefit from the new technologies within three areas: Scala, Slick, akka-http, akka-persistence, PostgreSQL, Cassandra and Kafka are used on the backend, Angular 6 with RxJS and Typescript in the frontend, and Docker and Kubernetes on the infrastructure side. We learn, exchange knowledge and get to decide about the architecture and libraries used throughout the project. We work closely with the rest of the development team located in Bristol, UK, every day. What’s really great is that we travel there twice a year for a couple of days to work side-by-side and have fun together.”

Another project that was really interesting is a reactive platform for real-time asset trading. Here are the details of a project from Krzysztof Ciesielski who was part of the team working on it:

“It required a design based on event sourcing, with a very strong emphasis on performance and reliability, as well as advanced monitoring and alerting. We achieved all that using Akka Persistence and Akka Cluster, combined with Kafka and Cassandra. I learned a lot about how to design and run performance tests with Gatling, and how to approach observability to track important metrics. The event-driven architecture was very challenging to get properly designed, deployed, and tested. Ultimately, however it turned out to be remarkably robust, not to mention how greatly it helped to recover from some incidents and infrastructure failures. It’s hard to overstate how much I learned from teammates on our way to build and maintain the system.”

Being experts in functional programming and distributed systems, we also enjoy consulting projects as well as helping out with projects that need a special ‘rescue’ approach.

Apart from commercial projects, we also work on some fun projects. Shelly — a programming language for drawing is one of them.

#3 Remote work that works

We’ve been working 100% remotely for over 12 years already! That’s a lot of time to learn how to optimize the remote work as a company.

Thanks to that time we’ve developed habits, best practices, and tools that help us make the most out of our work. And the recent COVID times have pushed us even further in mastering remote work. We have 300 active Slack channels that let us focus our discussions around different aspects of our work, company, interests or family life. We’ve launched ‘donut meetings’ that let us chat with different people from the whole company during a short weekly meeting.

Although we all work remotely, we do provide you with the equipment and software you need. Anything that helps with your productivity — whether it’s another monitor, a web app or headphones — we got you covered.

#4 Time spent together

Being fans of remote setup, we’ve always valued time spent IRL. That’s why in the pandemic times we put huge effort into developing social initiatives that could make it up for in-person, all-company meetings. We enjoyed lots of different types of online activities like a pub quiz, food and drinks tasting, escape rooms, and different types of games. Read more to find out which activity won our hearts.

Apart from the monthly meetings, we have two special annual retreats — family weekend-away and company weekend away. The goal of the first is to spend time with our families and get to know each others’ partners and kids. The goal of the latter is to have lots of fun. It’s always a surprise where we go and the event is a gift from our Board. All these meetings enable us to bond and build relations that play a big part in effective remote work.

#5 Culture of sharing

As self-development is part of our DNA, we love to share the things that we’ve learned with our colleagues. One way to do that is by taking part in our Friday Markets. The goal of this weekly meeting is to present a new thing that someone has learned recently. It could be a new library, a solution to a complex problem, interesting app architecture, or simply a dry-run of the conference presentation.

Friday Market presentation by Grzegorz Kocur

The other initiatives are:

  • Team Leaders Group (Kuźnia) — it’s a group for discussing challenges we encounter in our projects — either related to the client or other developers,
  • Software Architecture Group — in this group we discuss software architecture, investigate technologies and do architectural katas together,
  • #learn-machine-learning — meetings to tackle maths and code problems in ML,
  • Tech and Soft-Skills Book Clubs — groups for discussing books we’ve read,
  • English lessons — fun discussions moderated by our wonderful Gośka Orzechowska (BizDev Team),
  • And finally — our latest initiative — a group that learns storytelling from the Khan Academy course by Pixar.

For specific, technical support we have dedicated Slack channels where you can ask about just anything. Whenever you run into an issue that you can’t solve by yourself, we’re here to help. And last but not least, we follow code review and pair programming best practices to make sure we all stay on the same page, exchange know-how and learn from each other.

#6 Being part of the community

We strongly appreciate the community we’re part of and we love meeting all of you during events, exchanging ideas and sharing the things that we’ve learned.

We also like to host some of the events. We’ve been co-organizing AgileByExample conference in the past. Right now we organize the 6th edition of one of the largest conferences for Scala community in Europe — Scalar. We used to co-organize Confitura conference and some of us are still active co-organizers of JUGs in Warsaw, Zielona Góra, Poznań and Szczecin.

#7 Renowned newsletters’ curators

And you might be surprised that it’s our team (mainly Krzysztof Ciesielski and Adam Warski) that’s behind Scala Times. They are the ones that curate and send out the best reading pieces about Scala every week. We’ve already sent 400 newsletters and Scala Times has 5700 subscribers!

We cover not only Scala but Java-related stories as well. Our team member (Tomasz Dziurko) is the initiator and author of another technology-focused newsletter — JVM Bloggers.

#8 Open-source contributors

Open-source is something we strongly hold with. Some of the projects we own or contributed to include: tapir, sttp, alpakka, Magnolia, MacWire, ElasticMQ, Apache Struts, Bootzooka and Quicklens. We deeply appreciate all the opportunities that OSS projects bring. Self-development, networking, collaboration are just some of them. That’s why we encourage other developers to do the same and share tips on how to start contributing to open-source.

#9 Self-organized

When asked about SoftwareMill, most people say that it’s a “self-organized” company. But what does it really mean? Here are the main characteristics of a flat company that define SoftwareMill, our structure and culture:

  • Transparency: organisational, business and financial. You have free access to any information you want. We disclose all the information such as salaries of all employees, our clients’ fees or administration costs.
  • Bottom-up structure/hierarchy: “being flat” doesn’t mean that we don’t have any hierarchy or structure. It means that structure emerges from the bottom-up, is usually informal and not imposed like in a traditional organization model.
  • Initiative: how our work is organised and how the company runs is only up to us. Nothing is set in stone, and everything can be changed.
  • Decisiveness: everybody can, and is encouraged to make decisions. Decisions should be made on the level where the necessary knowledge is. The ground rule is: the smaller the group making a decision, the better.
  • Responsibility for decisions: in general, we believe in “Ask for forgiveness and not for permission” approach. Things can go wrong and it’s part of life. What’s important is that if you make a mistake, you own the results and responsibility to tidy things up. Make sure to always understand what went wrong and try not to repeat the same mistake again.
  • Support: the power of SML lies in the efficient decision-making process. If a decision was made, we support it — whether it was right or wrong. We all learn from the decisions made in the past.
  • Responsibility for the community: when making a decision don’t think only about yourself and your goals, make sure you understand its impact on the whole company.
  • Trust: last but not least we believe that everyone makes the best possible decision based on the information they had and using their competences.

#10 Caring for each other

Life at SoftwareMill is full of really colorful people — you will find a troll in each of us, but deep inside we’re warm, friendly and caring. And that’s why we came up with few ideas that help us care for each other.

Everything starts with your mood. It’s a measure of your happiness and we want you to be happy where you are. That’s why every day each of us types on scale 1–5 what’s their mood today when logging out. We gather the data and keep charts of everyone’s moods throughout their history at SML. But what’s more important, we get alarmed if someone is not feeling well for a couple of days and we know it’s time to act.

Another way of taking care of everyone’s feelings and well-being is the role of a Guardian. It’s a kind of buddy person that you pick for a year. It’s the person you can talk to about just anything and it stays between you two.

Finally, we strongly value our health and that’s why we not only finance sports cards but also yearly whole-body health check-ups.

#11 People

All the things mentioned above are thanks to the people that are part of SoftwareMill. You might have met some of us already at one of the events. Next time it happens, make sure to have a chat with us and get to know us better. This is probably the most important reason why working at SML is so great.

Still not convinced? Apply to SoftwareMill to get a sense of how we work and who we are. We’re quite sure you’ll like the experience 😀

Questions? Ask us anything about remote work, how does the cooperation with us look like, what projects do we have, or anything else on the dedicated Slack channel 💡

Not ready for a change at the moment?

Let us know about your friend who’s ready to boost their skillset and get up to 5K PLN.

--

--

• Marketing Manager at SoftwareMill • Growbots , Estimote and Webmuses alumna