maciej łebkowski
Maciej Łebkowski

Professional articles

  • Turtle: the unit testing showcase

    A demo project showcasing test suite organization, arrange/act/assert pattern, how to create and use test doubles, gherkin syntax for unit tests, and more
  • Automated testing

    After you follow a few simple rules, automated testing poses no challenges. Here are some principles I follow to make my life easier.
  • Advent of code

  • Perfect code

    I learned how to write perfect code, and it’s simple too.
  • What do you consider an ideal process to deliver value through software?

  • Remote work is not about the location you’re working from

  • Learning NestJS

    Chapter 4/4: some technical details about how I approached using the NestJS framework
  • Switching the tech stack

    Chapter 3/4: I knew that by joining the team I would have to start using new technologies. This part describes my approach to actually selecting the one for my first project.
  • Changing teams

    Chapter 2/4: After I left the Phone team it was time to find a new place for me. To my surprise, the process was exceptionally pleasant.
  • Leaving phone

    Chapter 1/4: Despite wanting to stay for at least 5 years, I left the company a little earlier. The start of a 4-part story that unfolded in the last 3 months.
  • Interdisciplinary teams

    Here’s a crazy thought: why won’t we stop building single discipline teams?
  • The path to Docplanner Phone’s frontend app architecture

    This is the description of the journey we took during the last 18 months to arrive at a well thought out, scalable and maintainable application.
  • What questions should I ask the candidate for a software engineering role?

    Ones to query the practical knowledge or theoretical background? High level or detailed? Related to your stack or abstract? Struggling to come up with a list? What if I told you I have a solution that you could adapt regardless of the candidate’s skill level, programming language, or used frameworks and libraries?
  • How we do Scrum

    Implementing only a part of Scrum is possible, but the result is not Scrum. We were slowly getting there, until we stopped to think about the problems we need to solve.
  • Unit tests code style

    How our unit tests for higher-order became more readable and maitnainable.
  • Commenting code

    Usually there is always a better way than just leaving a code comment
  • PHP

    The role of the PHP language changed over the last two decades, and the job market along with it. What does this mean for products relying on it as a primary backend language?
  • A tale about two candidates

    Two recruitment processes that taught me that you shoudln’t always make an offer at all cost, even if the candidate is hitting on all cylinders
  • Pacing your teambuilding efforts

    Do you remember the urge to apply all those new and shiny engineering tools to your codebase? What happens if you take a similar aproach to leadership? What leadership lessons can you get from your engineering experience?
  • The XY problem

    Focusing to much on the solution might cloud your vision and lead you into a dead end
  • The Geniuses and the Butterflies

    I’d like my team to be diverse in many ways, also in the level of knowledge and social skills
  • We’re a good team for experienced developers

    There’s something much more valuable to my team that putting in 50+ hours of work every week
  • Givers vs Takers

    One bad apple can spoil the bunch. Do you know how to spot it?
  • Performance vs trust

    Simon Sinek want’s you to figure out who’s the asshole on your team, an who’s the natural leader
  • Building a remote-only team

    We were robbed of an opportunity to build our Docplanner Phone team as we would like it by the forced remote work, but as it turns out, we managed to build a great working culture anyway
  • Dlaczego nie używam buzzwordów w ogłoszeniach rekrutacyjnych

    AI-powered FinTech Big Data blockchain expert needed for work in young and dynamic team. Terms may apply.
  • Stay focused

    A couple of quick tips to apply for better productivity. Spoiler alert: it’s not about methods, time management and other tools but rather focus and priorities
  • Security checklist

    How can you increase the security of your application without expensive tools and with minimal effort
  • Coding standard deviations

    „What are those emoji thingies I keep hearing about and how can we use them to make our code more Y2K compliant” — nobody never
  • Przestań mówić, posłuchaj i zainspiruj się

    Kilka punktów, które pomogą Ci polepszyć jakość Twoich rozmów i zbudować nić porozumienia ze swoimi rozmówcami.
  • It was just called blogging back in my days!

    Some conclusions from a quick survey about developer’s reading habbits.
  • The first Docplanner Phone team retrospective

    Our journey to find the right tools to start building our team from the ground up
  • Query side effects

    A story about an exception to the rule stating not to set expectations about query-like methods dependencies
  • Use calendly

    „— Are you available tomorrow? — Nope, I’m busy all day. Can we try next monday? — Sorry, out of office. Is tuesday good for you?”… What if there was a way to schedule a meeting without this back-and-forth?
  • Dług techniczny

    Dług techniczny w bardzo szerokim, biznesowym ujęciu. U mnie w firmie pomógł osobom nietechnicznym inaczej myśleć o refaktoryzacji, testach i ogólnym dbaniu o jakość kodu, ale przede wszystkim o tym jak brak higieny kodu może odbić się na biznesie.
  • Podejście „sprzedawaj, a nie kupuj” do ogłoszeń o prace w IT

    Jakiś czas temu pisałem o tym, czego zdecydowaliśmy się nie dodawać do ogłoszeń rekrutacyjnych. Tym razem, dla odmiany, słów kilka na przeciwny temat, czyli jakie elementy muszą się tam znaleźć i dlaczego.
  • Don’t send me private messages on Slack

  • Podsumowanie roku pracy w Ars Thanea

    Spojrzenie wstecz na to co udało nam się zrealizować przez rok pracy w Ars Thanea
  • Cleaning up docker to reclaim disk space

    Explanation of the docker volumes storage and how to remove unused ones to reclaim disk space
  • How to ask your boss to make a decision

  • Sensowne ogłoszenie o pracę dla programistów

    Kilka sugestii w jaki sposób przygotować ogłoszenie o pracy dla programisty, trafić do odpowiednich kandydatów i nie skompromitować się w ich oczach przy okazji
  • Why I wanted #nomanagers on my team and failed

    Promoting people to managers not from authority or wisdom but from necessity or politics kills our professional culture.
  • Our Software Engineering values

    A set of skills and perks we decided is most valuable in a software engineer
  • Git workflow, branch naming and pull requests

    This is the basic workflow for git at Docplanner. It’s loosely based on gitflow, but hasn’t got that much in common.
  • Things to watch out for when reviewing code

  • Configuring SVN via SSH using public keys

    The process of configuring SVN over SSH using private/public key pairs is quite complicated, especially on Windows platform — I couldn’t find a robust instruction on the net, so I’m writing my own.
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. This means that you may use it for commercial purposes, adapt upon it, but you need to release it under the same license. In any case you must give credit to the original author of the work (Maciej Łebkowski), including a URI to the work.