Our contribution to open source – djoser 0.7 release

We are proud to anounce 0.7 release of djoser! This is one of the biggest releases so far and a result of 2 months of intensive work with more than 100 pushed commits.

We’ve managed to make large amount of changes on many fronts. We have added some long-awaited features such as the setting for the token model. We’ve refactored most of the codebase and even managed to find and fix the security bug that had existed practically from the beginning of the project!

You can check out the list of all changes here: https://github.com/sunscrapers/djoser/releases/tag/0.7.0

Sunscrapers in Top Web & Software Developers in Poland by Clutch

We thoroughly check opinions about a product before we make a purchase. It is pretty obvious right? The same goes with looking for a reliable web development company. We know how important it is to research information before cooperation starts. And at this point there is a rescue for all companies looking for software providers – Clutch. Clutch is a B2B market research firm that helps to find partners for one-off project or a long-term relationship. It uses an innovative research process that melds a traditional research and newer consumer review services.

We were really thrilled to hear that we were showcased in their recently updated listing of Top Polish Web & Software Developers! We stood out from almost 140 companies with a thirteenth place.

Leaders Matrix

Leaders Matrix consists of 15th best Polish companies that are able to deliver. We feel that it is just the beginning of changing the image of Polish developers in the world!

What are our biggest advantages? Our clients mentioned our engagement in offshoring cooperation, which made any communication barriers or time zone differences irrelevant. Also our superior English skills and uncompromising responsiveness were indicated as our strong points. What is more, our our knowledge and passion for Python was much appreciated in our client’s reviews and we are more than happy to read that!

Highlight from our client’s review.

Our startup client wrote that “For a company the size of Sunscrapers, it’s unique that they try to keep relationships on a personal level. They invest in people and find quality programmers who don’t only care about being paid a lot. We are glad we found Sunscrapers as a partner.”

Big thanks everyone!

We feel grateful for being acknowledged by Clutch. Thanks to the support from our clients, we are able to solve their problems with technology. Big thanks to our team as well. We are really proud of our developers: keep up the good work!

If you would like to read more reviews, check out our Clutch. Feel free to contact us if you have any questions!

Python – our language of choice

image
Choosing the right programming language for your business 

Regardless of whether a large company is introducing a new IT project or a startup is building its first MVP, choosing software engineers is one of the most important decisions any team will make. This decision will determine a project’s success or failure. Today I explain the reasons why we believe Python is the best language of choice for us.

There are many programming languages to choose from, as well as there isn’t just one feature to think about during this selection. Each language has different characteristics, communities, ecosystems and support to consider. In this article we want to show you how to analyze the relevant factors when selecting a programming language. What’s more, we explain why our language of choice is Python.

Let’s think about two kind of circumstances. If it’s for a personal project, you may choose a language you know. However, if you have your own company or want to start one, there are more factors to consider before choosing a perfect technology to solve your business problems. A choice of technology determines a second step which is finding the best tech partner.

Which aspects are relevant during a selection process of a programming language? To answer the question you should concentrate on two aspects related to the programming stack. The first one is the popularity of a language. Make sure that there are many well qualified developers on your market who are ready to work at your company. The second one is the problem that you want to solve using a particular technology – check which technology was used in similar business problems and if there are libraries supporting it.

 

Our language of choice is Python

This post will explain to you why Sunscrapers uses Python and will describe the benefits which our clients get due to that choice. At Sunscrapers, our backend language of choice has been Python for 5+ years.

Our previous post answers to the question: what do we love Python for? There are three main reasons:

  • Python is developed under an open source license;
  • its community is open and mature;
  • its foundations are easy to learn for beginners.

Now we want to go further and explain you why Python is our language of choice.

 

Let’s take a look at the most relevant aspects of Python

We should start with a brief presentation of Python’s definition and its usage. Python is high-level, general-purpose, interpreted, dynamic programming language. Its design philosophy emphasizes code readability and its syntax allows programmers to express concepts in fewer lines of code than possible in other languages such as C++ or Java.

We can use Python in these fields:

  • web development
  • scientific programming
  • big data and machine learning
  • computer graphics
  • scripting

Python responds to the needs of our customers and helps us ensure the best quality of support. Thanks to its fast implementation we can introduce changes in our clients’ projects without additional waste of time. The next valuable aspect is readable code – we can easily involve new person to the development process when our client wants to upbuild his project. Python is good for web development  – it fits nicely with front-end frameworks like Angular.js. It can scale to solve complex problems. Also, it guarantees an intensive focus on the problem because of a simple and elegant syntax. We can easily build MVP in Python to test our client’s business idea.

There are other important benefits that boost the effectiveness of working in Python. Most of all, Python is constantly updated and thanks to that the projects written in it will not stack in an old technology. We should also appreciate its active community which organizes valuable events, promotes Python and is created by many talented developers. The last one is a spectacular amount of open source libraries which gives us additional possibilities of building-up our projects.

As you may have noticed, Python gives us a wide range of possibilities to support our clients through the use of technology. We want to go deeper into this topic and that’s why future posts in this section will compare Python to other languages. Stay tuned!

How to justify your recommendation? – Łukasz Karwacki

Łukasz’s presentation explains the subject of justifying our recommendation to people who we work with. It can be applied not only to our clients or coworkers but anyone in our life.

The general rules that we should follow are:

1. get involved

2. communicate

3. present benefits (from client’s POV)

4. provide options

This presentation is a part of Sunscrapers’ weekly talks.

Slides available here: http://www.slideshare.net/sunscrapers/how-to-justify-your-recommendation-ukasz-karwacki

PostgreSQL and JSON  with Python

This presentation is a part of Sunscrapers’ weekly talks. The main points include: PostgreSQL types,  HStore vs JSON vs JSONB,  SQLAlchemy, Django.

1. Why?

  • Schema-less data
  • Schema-unknown data
  • Document storage
  • User-defined schema

2. PostgreSQL types:

  • XML (since 8.2)
  • HStore (since 8.2)
  • JSON (since 9.2)
  • JSONB (since 9.4)

3. HStore vs JSON vs JSONB

  • Only simple key/value pairs
  • No nesting
  • Strings only
  • Indexing
  • Many functions and operators

4. SQLAlchemy

  • Simple validation on input
  • Stored as text (like XML)
  • Preserves key order and duplicates
  • Indexes (only expression index)

5. JSONB

  • Full JSON implementation
  • Binary storage
  • No key order or duplicate preservation
  • Fast access operations
  • Indexing
  • No date type!

6. SQLAlchemy

  • PostgreSQL dialect
  • Close to database
  • HStore, JSON, JSONB data types and much more

7. Django ORM

  • HStoreField since 1.8
  • JSONField since 1.9 (uses JSONB)
  • Support for migrations
  • Third party libs like: django-hstore

 

Slides available here: http://www.slideshare.net/sunscrapers/postgresql-and-json-with-python-przemek-lewandowski

The complete list of our tech talks

Every Thursday at 4:30 p.m. our team gathers in a conference room to participate in a presentation prepared by one of us. The topic of the speech can concern tech (IT, project management) and soft skills (work culture, communication).

See the complete list of available presentations from our weekly tech talks!

We explain our idea in this post: Our work culture: weekly tech talks.

For a video of each talk, please click on the title below: 

1. Reactive programming – Jakub Włodaczyk 

2. Meta catch-ups – Łukasz Karwacki

3. Foundations of Foundation 6 – Jakub Włodaczyk 

4. Our work culture – Łukasz Karwacki

5. Interruptions at the team level – Łukasz Karwacki

6. Creating value for customers – Łukasz Karwacki

7. Design focused development – Przemek Lewandowski  

8. Going remote!

9. Main rules of web design – Dawid Domański 

10. Visitors tracking tools – Konrad Hałas

11. Quick guide to virtualization – Szymon Teżewski

12. Flat Design – Dawid Domański

13. Tmux and screen inception 

14. Aircraft spotting – Konrad Hałas

15. Scrum and XP from the Trenches – Przemek Lewandowski

16. Semantic HTML – Szymon Teżewski

17. The art of writing emails – Łukasz Karwacki 

18. Introduction to ReactJS – Comparison to AngularJS 2 – Robert Piękoś (pl)

19. DVCS Workflows for Teams – Bartek Rychlicki

20. Swift – Krzysztof Skarupa

21. Django ORM – Marcin Markiewicz

22. How to justify your recommendation – Łukasz Karwacki

Our work culture: weekly tech talks

What are weekly tech talks? Every Thursday at 4:30 p.m. our team gathers in a conference room to participate in a presentation prepared by one of us. The topic of the speech can concern tech (IT, project management) and soft skills (work culture, communication).


The main rule is an appropriate timeline: we limit our presentations to 10 minutes and leave the remaining time for questions and discussion. Ten minutes is more than enough time to present a compelling and effective speech.

The power of soft skills

There are many reasons why we’ve introduced Thursday’s presentations. Tech talks are connected with different expectations, challenges and results. They support soft skills’ development – we exercise public speaking, teaching and effective communication. That’s one of the most important reasons why we’ve started a journey with presentations. We step out of our comfort zone and learn new things which is a huge value hard to gain in other conditions. Thanks to these presentations we feel comfortable at conferences and IT events (as participants – during networking, as lecturers and as organizers of PyWaw meetups and PyWaw Summit). Soft talks also improve our language skills (many presentations are in English). Even today there is not that many IT companies that appreciate soft skills, and invest in developing the soft skills and look for them in potential candidates.

Professional development

On the other hand, the goal of tech talks is to help us develop professionally. These presentations create a possibility to systematize our knowledge about a particular topic and introduce new points. What’s more, we stay up-to-date with the latest technology news (new libraries and technologies are a frequently chosen subject). Finally, tech talks diversify our daily work routine and learning process, additionally guaranteeing that we have time for self-development.

image

The foundations of discipline

The key to success in giving a good presentation is discipline and preparation. It is extremely important for the presenter to follow the time guideline. Preparing 10 minutes talk isn’t as simple as it seems. It requires adding or deleting slides and a few rehearsals to make sure that you fit within your time. Learning the whole presentation by heart is difficult and time consuming. Instead, the speaker should try to learn key points he wants to include and come up with clues to remind himself when to change slides. A presentation should be well-structured – time spent on each topic should be allocated in a direct proportion to its importance. The best way is to start with an introduction which = overviews the subject, then go through main points and summarize the talk with key conclusions.

A collaboration really works!

Our teammate, Paweł, volunteered to be a supervisor of the presentation routine. His role includes administration tasks (managing the calendar, collecting topics and gathering people before the presentation, setting up a video stream) and encouraging colleagues to prepare a speech about a chosen topic. Robert, on the other hand, is our ‘video guy’. He records all presentations and edits them afterwards. Finally there comes Beata. Her role is to add presentations to our blog and share them with the world through social media.

Why do we record presentations?

We pay huge attention to recording because it motivates the speaker to prepare himself well   and assures a high quality presentation. Why does it matter so much? We engage the whole team for 20-30 minutes and we don’t want to waste anybody’s time. We also become independent of somebody’s time and availability: a person interested in the subject can always watch the talk later. We have already a solid base of valuable presentations on various topics and we refresh them when we need a revision of a particular topic.

Let’s talk about effects

These talks show who we are in an authentic way – everyone can see who we are, what we do and where we work. The whole initiative is coherent with our mission statement and work culture. We share our knowledge not only with our Warsaw based team but also with our remote teammates and the broader public. Our latest idea – inviting our clients’ team to join our tech talk – has received a great feedback, which then inspired us to think about organizing a joint workshop as an evolution of this concept.

Check out 3 examples of our presentations: