📜 ⬆️ ⬇️

Startups and abnormal programming. Tbd

In the run-up to HolyJS, we discussed the problems of start-ups, the geographical differences in development, and the impact of open source on the industry with George Mandis. At one time, he had already proved in practice that political boundaries and geographical coordinates were not really important for a developer, working for several years from different countries of the world. And today I decided to share my observations with us.


- We would like to ask a few questions about your experience with start-ups: did you encounter setbacks that inspired you to work further?

George Mandis: Although I was an independent developer for 11 years, I was not affected by the many traditional problems of startups. I was invited as an external specialist.
')
I will not list problems by name, but personally, many aspects of start-up culture seem unsuccessful to me. Because the very fact of the infusion of large amounts of money does not automatically work, just as it does not make the industry as a whole important or changing the world.

As for the inspiring success - I once had a project that I consider to be a personal success: I built a social service completely from scratch by writing my own authentication library. There were other things that I absolutely should not have done. From a career point of view, these initiatives were ambitious and not timely (very, very early). But the tasks were solved and all this did not break (amazingly!).

In the process I received a huge amount of knowledge. It was in the period before the iPad, a little after the iPhone, but when the development still revolved around Internet Explorer 6.0. I would not repeat it again. But I am proud of the result.

- How does the startup life and the standard corporate environment (enterprise-segment) differ from the standpoint of an independent developer?

George Mandis: In the enterprise segment, there is more money and confidence, but startups almost always sound sexier - especially when you are young. In an enterprise, I don’t worry about payment, I’m not getting offers to pay for stocks, and if I work well, I can expect a repeat order.

Working with startups is more like a game, but I think you can choose the right projects so that this is not always the case. After several intense projects earlier, I came up with the expression: "Be careful, stepping on the first floor of other people's dreams." Staying up all night and debugging your own projects is one thing. Doing this for another person, no matter how much he pays me, is different. Having been a couple of times in such a situation, I became more attentive to which startups to participate in, and learned to identify such “headaches” at an early stage.

I worked for a professional sports team for a year and a half, and this work had a lot in common with a startup. We had a small development team, many different projects that were formulated as they were created, and a surprisingly limited budget. Frequent course changes and internal organization have proven to be one of the biggest problems. And now this experience prompts me to expect more from a startup. Things are not always what they seem!

- What are the differences between the countries in which you worked (in terms of technical and social conditions)?

George Mandis: I spent years working and traveling the world. In total, he lived in 18 different countries. It completely changed me, and I remember it all the time.

During travels, I often turned to local developers, partly to understand what it was like to work there, as well as to start communication in a new place. As a result, I had certain ideas.

Some things are the same. The desire to connect and network, it seems, were everywhere I went, and they were especially enthusiastic and optimistic among developers. Secondly, I told people that I was making business cards from wood, and the conversation immediately turned to business ideas. Spain, Turkey, Kenya, Serbia, Thailand, Japan - so it was in all these places. At one unforgettable moment, I knocked on the wrong door in search of a web development office. With the help of my broken Spanish, we were able to eliminate the confusion, but I left with a business card, an e-mail address and a serious offer to “stay in touch.”

But the work, it seemed to me, is different and even somewhat limited in some places. In Turkey, for example, I have met many wonderful, friendly developers of various specializations. Their skills and technical background were diverse, but most of them seemed to work for TĂĽrk Telekom, which surprised me a little. Perhaps this is normal, and maybe it just coincided in the team that I found.

I discovered the design and design salon in Nairobi! For various reasons, this attempt to meet other developers was one of the most remarkable. They focused on small business websites, but they also worked for American companies — they sent emails that, frankly, get to the US in the middle of the night and are likely to be deleted in the morning without reading.

They worked in shifts to intersect with US work time. Much of their business has been associated with text messaging and M-PESA, which is very popular in East Africa. It was fascinating to learn about such things and see everything in action with our own eyes.

Another difference: sometimes finding clean water is a more difficult problem than accessing the Internet.

Working in a time zone 10 hours earlier than most of my clients in the United States turned out to be perfect for me and contributed to a better balance of work and life: I could work in the morning and evening when working hours crossed, and spend the daytime learning a new place.

- Do you remember any specificity: Internet connection, regulator actions, time zones, etc.?

George Mandis: In some countries, I was not able to access certain sites. I was ready for some locks and had spare ways, like in China. But others surprised me. Suddenly, in South America, I was blocked from accessing several hosting companies. True, it was not so difficult to fix: VPN and proxy - a friend of the developer!

During the visit, I learned something interesting about the Internet in North Korea ... but I never tried to work from there. Honestly, that would be impossible. The situation with Wi-Fi at airports is different around the world.

I was also surprised that the Internet is being measured in some countries. It was in Iceland. I lived in a house with 4 or 5 other people, and one day the internet slowed down. At the end of the month it resumed. It happened the next day, but I was not used to this. In the US, immobile tariff plans are almost never limited in terms of data volume, and I never think about it.

- Was there any strange experience?

George Mandis: Haha! There is always a strange experience! Some arrangements have been violated. Receiving payment in Bitcoin was not so much strange, as new and fun.

- Could you say a few words about your commercial projects for which you receive money? It would be great if you talked about the technologies used and the reasons why you chose them.

George Mandis: I do not have separate commercial projects that bring in money. This is all development, consulting and - recently - training.
I think that in my entire career, JavaScript has given me the greatest return in terms of effort invested, but this knowledge is hardly useful to others!

I have several internal Python and Ruby tools that I use to manage my time, projects, and billing. Most of my new, funnier things are built using Express. I still have a good job through WordPress agencies and over the past couple of years I have inherited several PHP projects. I'm trying to find a good project for React.js, but this has not happened yet.

You must select technology stacks based on a combination of your own ideas about benefits, innate appeal / ease of understanding and community interests. Probably the latter has more influence on what one of us uses than we would like to think.

I do argue that for 90% of what we do, language is not as important as we think. Different ways of thinking, different efficiency are important in scale for really large companies with complex needs (Google, Facebook, Netflix, etc.). But for the overwhelming majority of us, is it often the case that this factor comes into play? I think a lot about it.

- Open source is a modern trend and even a buzzword. What do you think about OSS? Some say that the OSS will rule the world in 10 years. Corporations invest huge amounts of money here. Does this mean that we will all be freelancers who write open source?

George Mandis: He already rules the world! Maybe everything just does not look like people imagined it.

The web literally cannot work without open source, so it’s hard for me to treat it as a buzzword or a modern trend. Of course, our attitude towards open-source and its very concept have changed. There is a difference in the pre- and post-GitHub perception of what open-source means to some people, which I cannot describe, but I can see. Also for me there is a big difference between the GNU and the Free Software Foundation, who use OSS as a kind of philosophy, and developers participate in OSS initiatives initiated by corporations, using this as a career step.

Some OSS are a tool for empowering or enhancing public goods. A good example is SecureDrop. In other cases, I feel that corporations are trying to get free labor for an internal tool. The scheme may work fine as long as the project continues to meet the needs of the corporations, but as soon as the focus shifts, the company will leave the project in search of greener meadows. The project may be frozen. Honestly, I do not really trust Facebook in this regard (this is a corporation, which I think about first of all when I am talking about such a lack of confidence). Perhaps this is one of the essential reasons for my slow adoption of React.js!

Strictly speaking, most of the open source projects we are talking about are tools and frameworks for creating other things. Almost all of us use these things, even if we do not actively promote their development. I made a tiny contribution only when I stumbled over the boundary conditions and errors or I needed to develop an adapter or plug-in so that it communicates with a service that is not currently supported.

So if the question is, will we all work exclusively to create tools, I think not. Working on tools is good, but the real work is using these tools to create things for non-developers. This is where you come across real border conditions, mistakes and problems that need to be solved.

A quick note: my biggest contribution to the OS is completely frivolous: konami-js. I'm proud of it.

- Today, a common practice for developers is to find a warm place in a large company in order to receive a salary of 100 thousand dollars a year. Do you think everything will change when OSS spreads everywhere?

George Mandis: As I said, I think that OSS is already quite common. OSS significantly levels the playing field in many areas. Speaking of a project that I already mentioned - I find it incredible that a publication like the New Yorker can run SecureDrop and provide a safe place for anonymous tips. If the site were proprietary and secretive, we would almost certainly see fewer organizations able to offer such a service.

Therefore, I think that the playing field will continue to level off. Technologies that 10 or 15 years ago were unattainable for small organizations due to cost or other restrictions will become cheaper and more affordable. Publication platforms, security, voice and image recognition, artificial intelligence and deep learning - all these things today I can drag and drop into my project, and this is great!

On the reverse side of this optimism: the tools are open-source, but the end product is often not. Large corporations with very different interests and needs dictate the direction of development and popularity of these tools.

And from the perspective of an employee, I’m not at all sure that there is a difference between open and closed software (but this is a very US-centered view of things).

- And the last question: the life cycle of the modern JS framework is rather short (several years). Now React, Redux, Angular, Vue, etc. govern the JS world. How long will they live? And what will happen next?

George Mandis: If the tool life cycle is short, I would say that this is not a life cycle, but a trend (although I understand that with some of my answers, I look like an old man).

People love to reinvent the wheels. I actually think it's good - for training - but it becomes difficult when the next new wheels are advertised as the direction in which everything has to go. The funny thing is that we have seen all this before. I remember Google Web Toolkit and SproutCore, and Cappucino, and other frameworks designed to help us create better web applications.

Tools are reinvented from scratch, but concepts are usually only updated. I think it is important to remember.

The best advice I can give: learn to learn things, ideally - quickly. It is enough to know how to reveal the “essence” of something and where you need to look later to clarify some features. If you can, identify yourself with a developer who knows integral programming concepts in any language or framework, or with someone who knows the main language, but I would caution against limiting yourself too much with tools.

In my opinion, this is a bit like a contractor who specializes in using only a specific hammer. Would you hire him to work in your kitchen? Would you find it a little strange that he limits himself in this way? Maybe. But ultimately you want a specialist who creates things and understands how they are built.

In short: do not confuse skills with tools. I see a lot of people who do that, and when technology moves, they feel they are left behind.

Some time ago, I took the car Lyft ( similar to Uber ) and started a conversation with the driver about the work. The driver told me that he was also involved in web development. I asked what kind of work it was and he replied: “A lot of PHP and MySQL for financial institutions ... But all the tasks of PHP and MySQL have dried up! Very sorry."

This stack is not super sexy and not advanced, but the basic concepts and the ability to write object-oriented code that interacts with the SQL database should be a very portable set of skills! Those. sometimes people identify language / framework / tool too much.

So, learn the basic concepts, learn the core language at the heart of the framework. Update your knowledge of general programming algorithms, but beware of identifying yourself too much with React Developer or Angular Developer. Now in this area there are many jobs, and this situation may persist for a long time. But if you continue this path ... Someday it will all become obsolete.

Hey, are there any more COBOL programmers and Cold Fusion stores?

George Mandis is interested in a wide variety of tasks. His more practical report on using JS to work with small computers (Raspberry, Arduino, etc.) - Make More Than Music with Tiny Computers, JavaScript and MIDI - is scheduled for the first day of HolyJS in St. Petersburg.

Source: https://habr.com/ru/post/329940/


All Articles