5 Ways to Fight the Impostor Syndrome

impostor syndromeThe impostor syndrome is on everyone’s lips recently, especially in the programming world. Ever had a terrible feeling that you aren’t good enough? That what you are doing is not sufficient? That everyone else know more than you do? You’re not alone. 

The impostor syndrome is a persistent feeling that it’s a matter of time till you will be exposed as a fraud. It usually affects high-achieving individuals who find it hard to be proud or happy about their accomplishments. They feel like they don’t deserve a success they achieved. What’s interesting, they attribute good timing, luck or ability to fool others, as reasons why they succeeded.

It happens that despite our knowledge, me and my teammates have such negative thoughts about our skills from time to time. The scale of the problem might be discouraging. Impostor syndrome has affected approximately almost 70% of population and we’re not talking about developers only! What’s more difficult though is actually fighting the impostor syndrome. That’s why we’ve gathered few tips which are working for us!

1. Cooperate

Contributing to a developers’ community is something that works wonders while coping with impostor syndrome. Our teammates mentioned that doing code reviews for other developers is their rubber duck for low self-esteem. What’s really important here is a positive attitude towards code review. Don’t be scared of doing it! It helps you and the community, what could be wrong with that?

Pair programming is another really helpful invention. Paired developers are less likely to make mistakes in their code, which results in a higher quality code. Not to mention that everyone can share their knowledge in a painless way. Pair programming can also increase morale, which is a relevant part of fighting impostor syndrome.

2. Work hard, train hard

Work hard! And we’re not talking about your gym achievements. Remember to constantly learn new things and broaden your horizons. You can attend supplementary trainings or tech talks. Reading insightful newsletters or watching tutorials on YouTube might help. Whatever works – possibilities are endless! Just don’t stay still. Evolve. If you have problems with being productive check out one of our previous posts about it 6 Tips How to Be More Productive Every Day.  You will see that constant self-development can help you believe in yourself. Of course, if you’re a perfectionist, you will never be 100% pleased with yourself. But you have to try, right?

3. Take your time

Junior developers in particular have problems with being content about their work. There are many questions that are troubling their thoughts. When do I stop being a junior? How much do I know? How much can I offer? We have to calm you down. It’s completely natural to have such doubts.

Impostor syndrome tends to hit junior developers, but it affects seniors as well. Is it possible that in the world full of professionals, everyone is a fraud? We don’t think so. It means that impostor syndrome can happen to anyone, but… it gets better with time. While it sounds like a Paulo Coelho quote, it’s true! Your experience as a developer and time spent on self-development matter a lot. Is it comforting that it won’t always be like that? We hope so!

4. Find a good place of work

Your workplace has a huge impact on your well-being. What projects are you working on? Is your team supportive and friendly? Does the atmosphere there suits you? Do you have work-life balance and possibilities to develop your skills? Answer those questions and try to look for a workplace which will help you have a fulfilling and happy life.

At Sunscrapers, we put a big emphasis on our team’s well-being. We know how much it means to work in a cheerful and enriching environment. That’s why even if one of our teammates is struggling with impostor syndrome, we are here to comfort them. Our support blended with a chunk of laughter helps with any low self-esteem issues!

5. Share your knowledge

We are sure that you’re thinking right now: “Yeah, right. How can I teach others if I lack knowledge?”. You couldn’t be more wrong. Obviously, if you take part in pair programming or code reviews, you already noticed that you don’t know everything. But you know SOMETHING. Try to recall situations where you knew a solution for your partner’s problem. It could be a small thing like a tiny bug that was hiding between the code lines. But you helped him. Teaching others might be a solution for overcoming the impostor syndrome. Go to Quora or Stackoverflow and look at other people’s questions. Try to answer them. You will be surprised how many issues you can solve! Maybe you’re not that inexperienced as you think?

impostor syndrome
Impostor syndrome vs. reality

We know that it’s not easy to overcome the impostor syndrome. There is no golden rule that will work for everyone, neither fast nor easy way to do this. Hopefully with our tips and some positive attitude you will be able to fight your low-esteem demons. Believe in yourself, take your time and remember – you are awesome!

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 – Przemek Lewandowski

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

image
See the complete list of available presentations from our 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).

 

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

image 
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. Every presentation is recorded and a speaker can decide whether to publish it or not.

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: