January 04 2019, 21:11

Today marks 3 years at EPAM.

I can say that so far, it’s the best workplace out of all the ones I’ve had over the last 25 years. Each one had its beauty, but EPAM leads in terms of cumulative qualities.

First off, it’s in the USA. I really like where I live, near Washington. I’ve traveled around America and so far haven’t found another place where I’d want to move from Virginia. It’s too hot and weather-monotonous in Florida and LA, and too cold, windy, or rainy in NY and Seattle. Moscow was good too, but I needed to move forward. My field in Russia feels just too tight. Very tight. There, besides my former team, there are only two small ones, and no one else. Because there’s no market yet.

Secondly, the people. Here, there are hundreds from whom I want to learn, and dozens from whom I manage to learn (considering my distance from the main offices in Europe). EPAM has a very powerful intranet. There are so many training videos and courses here, you couldn’t get through them all in a lifetime.

Thirdly, the projects. They are on a completely different scale compared to those in Russia, both in terms of complexity and budgets. Working as a Solution Architect in a hundred-person team teaches you a lot. I had an experience on a project in Belgium, where I was entirely on my own for two and a half months. Diversity, periodic changes in topics and technologies are very important.

Fourthly, in these three years, I’ve familiarized myself with a slew of new technologies that had been waiting in line for my free time. Python, NodeJS, Angular, Vue Framework & Vuex, Groovy, Neo4J, Weka, Tsung, JMeter, JProfiler, Pentaho, SOLR Cloud, Varnish, MongoDB, Memcached, Redis, Drools Fusion, Drools Rule Engine, PredictionIO, Microsoft Bot Framework, PDF libs, OpenNLP, SAML & SSO. From the SAP portfolio – Hybris Marketing, Commerce Cloud v2, and Spartacus. And from non-SAP products that are worth knowing deeper than a BA at my position – Oracle ATG, Magento Enterprise – and I’ve gotten to grips with all this (to varying depths) over these three years.

Fifthly, my hobbies have grown here – from electronics and piano to drums and drawing, and all these are now accessible to me at the office. Mainly because there’s no commute – I live literally a five-minute walk from the office. Right now, I’m trying to make a lock opened by an RFID card using Arduino and a couple of additional boards.

Sixthly, business trips. Despite usual “rush jobs” on-site, I found time to see Krakow, Amsterdam, Brussels, Bruges, Ghent, Barcelona, and several neighboring states in the USA.

Of course, it varies for everyone. I know some poor souls who got stuck on rather dull projects for several years. Partly, it’s a lottery: clients are chosen not so much for their interestingness as for their ability to pay for good work, which is, in turn, not necessarily interesting for every team member. But I noticed that such “dull” projects are predominantly with large and old clients. There, all the interesting work has long been done, and only typical routine remains. It’s the same everywhere.

I cannot share the names of the clients and projects I have worked on or am working on at EPAM. But each of them gave me new knowledge and experience and exceptionally positive memories.

Thank you, EPAM 😉 Hello, fourth year

Valeri Makovik Zimnitskaya Katsiaryna Valentin Morev #epam

January 03 2019, 16:28

A small, yet useful lifehack. In Russia, you receive a receipt from the Russian Post at home that says “Something has arrived for you, come and pick it up”. It lacks any sender information or description of what has arrived. In some cases, you can simply ignore the parcel if only the sender’s identity were known – often just this piece of information is enough to decide whether to rush to the post office, go unhurriedly, or just ignore it. But this information is not on the receipt.

However, there is a barcode. And its number can be successfully looked up on the Russian Post tracking service. There, you can see who sent it.

December 29 2018, 11:13

UPDATE: Solved. Thank you Timofey Klyubin, using werkzeug, so far so good

If anyone is really good at Python and especially at writing servers with it, please knock on my door. I’m stuck. Specifically, ThreadingMixIn + HTTPServer. HTTPRequestHandler is working inconsistently.

I might be reinventing the wheel, and there might already be some Python code or Node code that sets up a local server, takes a request, forwards it to a real domain, gets a response, logs everything along the way, and if necessary, modifies headers. HTTPS is not needed. Essentially, it’s a request router, but it needs to be easily customizable.