Tuesday, May 11, 2010

Плата на програмери во Македонија

Како продолжение на мојот претходен пост, а и големото интересирање за темава на форумите на it.com.mk, еве еден преглед на платите на програмери кои денес се постигнуваат во Македонија.
Ве молам да имате предвид дека ова во никој случај не е правило, туку повеќе пресек на она што постои. Значи, платите можат да варираат и нагоре и надолу, зависно од компанијата, нејзината успешност, но и стопанските фактори (криза/подем/стагнација).



Ниво 1 - Програмер - јуниор
Потребни вештини:
  • Знае да одговори на телефон и да го каже тоа што треба („Го добивте Инфопроект, зборувате со Јован Јовановски, како можам да ви помогнам?“) (сериозен сум).
  • Знае да одговори на телефон кога ќе се јави корисник и да запише што сакал корисникот, но на начин да звучи кохерентно и разбирливо (кој, од која фирма, што му требало, ако има грешка: која програма/модул, кои услови, дали грешката се повторува, колку е грешката критична за корисникот).
  • Се труди (со запишување и прашување) да го разбере фрејмворкот на кој работиме.
  • Постојано му е отворена страницата со документација за Mootools (основната JS библиотека која ја употребуваме во front-end-от).
  • Ја анализира централната база од клучната апликација и се труди да ги разбере врските (околу 190 - 200 табели, просечно).
  • Покажува иницијатива - идеално, бара да му отвориме тест-апликација на серверот за да може да вежба.
  • После извесно време, способен е -- со релативно малку прашување -- да напише базичен CRUD програм за работа со некоја едноставна табела, да го вклучи во фрејмворкот (да се појави во менијата) и да не заборави да стави во meta дека енкодингот е utf-8.
Плата: на ваквите, 200 евра им е доволно, и тоа ако покажуваат иницијатива, а инаку им се заблагодаруваме на соработката (don't call us, we'll call you).

Ниво 2 - Програмер - аналитичар
Потребни вештини:
  • Кога ќе се јави корисник со проблем, воглавно може да разбере за што се работи, ако треба, да го потпраша за објаснување и да пренесе што се случило, а ако е напреден и грешката е помала, дури и да преземе нешто (со претходно одобрување).
  • Знае доволно за клучната апликација за да изработи преглед со *зададена* програмска спецификација (кои се влезни параметри, кои се колони, групирање/подсуми/суми/салда) (обрнете внимание на „зададена спецификација“).
  • Прави помали интервенции во базата (update, види дали се впишува ...), може да ги синхронизира базите (развојна/тест/продукциска).
  • Може да направи „странични“ модули од типот: пријава на комитенти со сите додатни табели (но со зададени изгледи на форми), прекнижување на податоци, конфигурација на тип на документ, одржување на изборниците (менијата), итн.
  • Може да предложи поситни подобрувања, оптимизации, да забележи недостатоци па дури и да ги отстрани.
  • Оди на терен кај корисници и прави обука за користење на апликациите, запишува feedback, можеби и дискутира со корисникот за одредени прашања
Плата: 350 евра, тука некаде

Ниво 3 - Програмер - сениор
Потребни вештини:
  • Изработува сериозни модули (нпр. внос на документ, врзување на ставки, внос на налог ...), со многу малку консултации. Програмската спецификација си ја изработува самиот.
  • Со корисниците самостојно договара и изработува прегледи, ги рафинира и ги инсталира.
  • Може рамноправно да разговара со, што знам -- шефот на сметководство кај корисникот, и потоа да ги имплементира измените кои тој ги побарал.
  • Полноправно учествува во дизајнот и развојот на секоја нова и стара апликација.
  • Можеш да ѝ кажеш: „Светле, оди те молам кај тој-и-тој корисник и види што треба да се направи“, без да се грижиш.
Плата: 500 евра, по заслуга и повеќе (бонус, награда, итн.)

Ниво 4 - Rock star
Потребни вештини:
  • „Горан, склучив зделка со компанијата XYZ за опфат на нивното целокупно работење. Договорив 80.000 евра за 12 месеци. 10.000 се за тебе. Ај, те молам, направи што треба.“ (Јасно? Имав еден Горан кај мене своевремено. Вистински rock-star! Сега е битен на битно место.)
Плата: над 1000 евра плус процент/износ од зделките.

23 comments:

  1. Не се реални бројките. 500 евра за сениор програмер е потценување и навреда, само човек без трошка самопочит би се согласил на тоа.

    ReplyDelete
  2. Има две „реалности“: она што сакате да го добиете, и она што реално се добива.
    За која зборуваш?

    ReplyDelete
  3. Сите сениор програмери што ги познавам заработуваат повеќе од 500 евра месечно, би рекол дека просекот е околу 700, но и 1000 не е проблем.

    ReplyDelete
  4. Од кога програмерите склучуваат договори и бркаат нови клиенти? Не е тоа веќе друга позиција во која можеби е предност да се знае програмирање или вработениот да го има "поминато" тоа?

    ReplyDelete
  5. Помалите компании немаат посебни комерцијални оддели или луѓе кои се бават само со продажба. Ееех, кога би било така ... :)

    Честопати се случува програмерите да бидат контактирани за „компјутерџиски прашања“, внатре или надвор од компанијата (комшиски, пријателски, итн.).
    Зошто да не може и тој програмер да придонесе на компанијата? Во Инфопроект имаме институционализиран начин на наградување на ваквите активности.

    ReplyDelete
  6. Дискусија за написов има и на Пинг.

    ReplyDelete
  7. Vanco get a grip.. ti si samo za u Japonija :)

    ReplyDelete
  8. Ванчо имај образ и не ги бриши коментарите. Ако веќе пишуваш статии треба да трпиш критики!
    Оваа е коментарот што го избриша:

    "Ти си бате комплетен ИДИОТ. Заради такви како тебе јас работам во Бугарија. А и 90% од квалитетниот кадар ни е надвор од државата!!!"

    ReplyDelete
    Replies
    1. Драг мој донето, фала ти за лекцијата од етика, ама таа не важи во овој случај...

      Коментари во кои се навредува некој, било кој, па и јас, ќе бидат избришани. Згора на сѐ, коментарот беше поставен анонимно. Е, тоа е ем неетички, ем без без мадиња!

      За невоспитана стока нема место на мојот блог. Блог ми е, двор ми е!

      Delete
  9. Zdravo decki, vi posakuvam uspeh vo rabotata. Megjutoa ne razbiram sto znaci 1000 evra plata. Dali e toa mesecna plata? Jas do pred izvesno vreme seriozno se zanimavav so programiranje i solidno gi poznavam Java i JS kako i Java za mobilni aplikacii, VB, C i C++. No pretezno programirav so Java i Java za mobilni i VB. Ziveam i rabotam vo Sidnej, gledajki kolku plakjate vo Makedonija ne znam dali bi se nafatil. No od druga strana, za zal, cenata na programerite drasticno e opadnata vo posledive desetina godini. Pricina za toa se Indija i Kina. Posebno Indija, kade ima programeri so lopata da gi rines i rabotat za smesno mali pari, toa gi kine preostanatite programeri vo svetot. Svetskite kompanii se poveke gi koristat uslugite na Indijskite programeri, taka za zal i programiranjeto kako i mnogu drugi uslovi se sveduva na iskoristuvanje na eftina rabotna raka. Vo Makedonija mozebi ste poveke izolirani pa tolku ne go cuvstuvate toa no globalnata situacija e takva - nema golemi pari vo programiranjeto kako sto izgledase od pocetok. Ke mi bide drago da gresam, no takvi se moite sogleduvanja. Pozdrav od Sidnej :)

    ReplyDelete
    Replies
    1. здраво владо,
      "kako sto izgledase od pocetok" не знам на кој почеток мислиш, но денес, како никогаш досега постои потреба од нов софтвер. custom софтвер за компании секогаш ќе постои, web devel сѐ уште не го достигна платото, mobile и data analysis - допрва ќе експлодираат. можно е веќе пазарот во австралија да не е компетитивен, но знам дека во америка одлуките devel да се outsource-ува во индија се сѐ поретки, поради лошиот квалитет и комуникација. во македонија побарувачката на софтвер не сопира, исто како и недостатокот на кадар. од мое лично искуство, во скопје најмногу доаѓаат пари од америка, израел, германија, швајцарија, шведска и други европски земји, и мошне сум убеден дека нема наскоро да сопре.

      Delete
  10. Се согласувам со Ванчо, дека едно е она што сакаме да го добиеме, а друго е реалноста што ќе добиеме. Доколку некој сениор програмер сака плата од 1.000 евра, може да си отворис воја фирма во која ќе обучи свој тим и ќе програмира за други фирми.

    Прашањето ми беше, доколку тимот се прошири и се вметне позиција на сениор програмер (според листава работи дел од обврските на сениор програмер, без програмирање), на кое ниво и со која плата би го рангирал во листава?

    ReplyDelete
    Replies
    1. Фала за поддршката. Одлична ти е поентата: на кој не му се допаѓа, фирма денес се отвора во еден ден. Па нека тој се бори „на рука“ со програмерите...

      Што се однесува до прашањето, веројатно мислиш на проект-менаџер, или можеби софтвер-архитект.
      За првите, проект-менаџерите, платата веројатно би била повисока од онаа на сениот програмерот, додека софтвер-архитекти има толку малку (барем добри има малку), што треба да се платат со суво злато...

      Delete
    2. @neformalno: "Доколку некој сениор програмер сака плата од 1.000 евра, може..." може и да си отиде у друга фирма кај што ќе му го платат трудот и искуството - ако не сака да тера бизнис. имаше добар пример кога од некои фирми пред неполна година си отидоа и по 15 програмери само зашто газдите размислуваа како тебе.
      "друго е реалноста што ќе добиеме" - па, мислам дека ни ти ни ванчо не сте доволно запознаени со пазарот на трудот во скопје.

      Delete
  11. Hello, I'm doing research on average salary for senior software developer in Macedonia. The discussion would gain in specifying if you are referring to net or gross monthly income. This is especially important with the changes in social taxes during these last years. What are people's thoughts on acceptable net monthly salary for senior software developer?

    ReplyDelete
    Replies
    1. The numbers are in net income. Add around 66% of the net sum to get the gross amount (as a rule of thumb, this is not the exact math).
      This blog post is two years old, maybe the salaries has gone up a bit, especially with the growing number of outsourcing companies which work as a sub-contractor for foreign principals.
      Senior software developer is a rather broad category, having in mind the skills necessary for the particular job post. I think that it should start at at least €700 (net), but for the really good developers, the ones that can put their shoulders under a project, it should go way up, maybe €1200 - €1500.
      Another thing which is very important is the stability of the company and its ability to pay out the salaries regularly, every month on time. I've seen a lot of promised slaries being broken on the third or the fourth month.
      Also, bear in mind that, even in Macedonia, there are virtually no unemployed programmers, let alone senior ones. And they are ready to jump ship for even 50 euros more...
      Here are some interesting numbers that I got from a coleague which has one of these sub-contracting companies here, in Macedonia: Working for the German market, the going rate for man/month for Polish developers is between €4000-€4500 (gross), and he is outsourcing projects for around €2500 man/month, although he told me that his feeling is that this could go up to €3000 man/month.
      Mind you, these numbers are not the salaries for the programmers, but the money the company receives. This sum must cover all costs: workplace, taxes, vacation, project management and, of course, the cut for the company/owner/organizer of the whole deal. Add a middleman, and the money suddenly does not look that good.
      So, there you have it...
      (Of course, if you are interested in doing projects together, we are open for business! :) )

      Delete
    2. Thanks for the interesting input, Vanco.

      I'm not too familiar with the Macedonian tax code, but I read that, for 2012, social taxes (unemployment, retirement, and health insurances) amount to 22.50% of gross income. On that basis, to compute gross income from net, one would have to multiply by 1.29 (i.e. gross = net / (1 - 0.225)). Am I misunderstanding something wrong here?

      Or is the "net" income referred to is after income tax? I would assume there are some deductions that varies from one individual to the next which would make the comparison difficult; plus one would have to know if income tax is computed on net or gross salary. Luckily for the math, it's a simple 10% flat tax rate. It's also my understanding that only social taxes are taken out of the salary by the employer, so it wouldn't make sense to negotiate "net income" to be post-income tax. After all, only what the employer actually gives to the employee is important to the employee :-)

      As for the outsourcing rates, I agree there is a lot of things that are involved: VAT, overhead costs, commission, and of course the revenue needs to be spread to cover for vacation time and so on.

      Delete
    3. Sorry, my mistake, I reversed the percentages... You are right, I was wrong.

      Over here, one usually negotiates his net salary, given that social security, pension fund and, of course, the tax are mandatory...

      There is one more way to work with programmers, especially on shorter or smaller projects -- you do not employ them, but work with them under contract. The payment is being made through one of the authorized agencies, and in that case you pay only the peronal tax (10%), plus the commision to the agency (1-2%).
      I know of some, usually good and skillfull programmers, that would work only under contract.
      Of course, the problem with this is availability of the particular programmer, he/she may not be there for the next project (unless you pay them really well)...

      Delete
  12. (vonPetrushev)
    Уште во делот за јуниор програмер се гледа колку проблеми имаш со парадигмите на современото софтверско инженерство. Бараш од јуниор програмер да 1) зборува на телефон со корисник 2) да работи фронт-енд (mootools) 3) да работи бек-енд (бази, crud). За да работи сѐ ефикасно и стабилно, овие три одговорности треба да ги поделиш на тројца, макар и почетници. Ако им дадеш на овие тројца 200 евра, само за 200 евра и ќе ти работат. Според моите сознанија кои се темелат на пазарот (потребата од програмери, потребата за изработка на софтвер, outsourcing потреби etc), почетник не треба да се задоволува со помалце од 250 евра кои треба да пораснат до 400-450 ако навистина се покаже. Intermediate - ок си го опишал, со тоа што никој таков не ти почнува со под 500 евра, ако некој таков ти работи за 350 - значи дека е многу предан на работата, па нема појма што се случува во реалниот свет, зашто ќе си отидеше вчера. Сениор под 700 исто така тешка работа. Исто така, не знам зошто ги туркаш сите со корисници да разговараат на телефон? Да не мислиш на клиенти? Дури и за разговор со клиент, подобро е да имаш продукт/проект менаџер, што ќе биде прокси до техничкиот тим. Ако веќе имаш корисници што ти се јавуваат на телефон - ти треба tech-support човек/тим, што ќе биде цело време на телефон. И на крај - rock star - really?!? Јас не познавам ниту еден искусен програмер што не би се навредил со таков назив, ninja, samurai, whatever. Следниот пат пробај professional. И направи го партнер кога веќе цел tech тим го носи на рамена, e.g. cto. Накратко - ич не се сложувам со твојава анализа, крајно е буржујски ти како работодавец да кажуваш кој колку плата `е реално` да зема.

    ReplyDelete
    Replies
    1. Стално добивам вакви, слични, дискусии на оваа тема...

      Прво, сите дискутанти инсистираат дека имаат *право* на ваква или онаква плата, како компаниите да се Дизниленд.
      Затоа, по стоти пат: Работната сила е стока, економска категорија, и нејзината вредност е одраз на моменталната состојба на пазарот, а не некакво право утврдено во Повелбата на ОН.

      Второ, стално ми ја прекројуваат организационата шема и кој што треба да работи, што обично значи најмалку удвојување на работната сила (и на фондот за плати, нели).
      Можеби у тековните учебници факултетите за информатичари (или каде веќе ги учите ваквиве работи) и пишува различно, но - знаеш што? - фирмата ја водиме веќе 23 години и сме сосема среќни со распоредот.

      И трето, можеби во Македонија има фирми и со погоелми плати од наведените, но сигурно има и со помали. Сѐ на сѐ, можеме безбедно да тврдиме дека просекот е тој, или малку повисок од оној во оригиналниот текст (напишан пред две години).

      Без намера да звучам лично кон тебе (напротив), во сите дискусии се насетува и одредена ароганција на „инџилерите“, кои, ете, се многу паметни штом станале тоа што се.
      У моја фирма, инжинерот и ќе се јави кај клиентот, корисникот, чистачот на корисникот, и ќе се бутне под маса да спои мрежа, и ќе иде на обука на теткици у Свирипичино, но ќе биде крајно почитуван за добро завршената работа. И исплатен на први.
      Таа надменост е особина на сите технократски настроени занимања - не само кај програмерите. Како што ги учеле дома: учи сине, да станеш инженер, ќе можеш да си бираш жена...
      Кога само ќе помислам дека и син ми годинава ќе се запише на таков факултет!

      Немам ништо против да не се согласуваш со мене, секој има право на свое мислење. Секогаш сум бил за фајтерска дискусија...
      Ти пожелувам да си основаш своја успешна фирма, но ти гарантирам дека ќе се сетиш на разговоров и ќе помислиш на бројот на работни места и висина на платите секој први, кога ќе мораш да створиш пари, да ги извадиш од магична шапка, за да не ти избегаат вработените или да не те казни државата.

      Delete
    2. Blagoj, according to your experience, what net monthly income would be satisfactory to a senior software developer for a stable position?

      Delete
    3. @vanco: "Работната сила е стока" , да, цената се диктира од пазарот, ама и ти на своја кожа сигурно си сетил како е кога ќе треба да замениш програмер што си отишол, не е исто как чип рам што се расипал. Не велам ја платите работниците да ги диктираат, само велам дека не си искрен за тоа што вели пазарот, или барем не си информиран.

      "фирмата ја водиме веќе 23 години и сме сосема среќни со распоредот" супер ако е така, и ја сум среќен за тебе. btw- јас напуштив проект, и голем chunk-o-monies пред неколку месеци, зашто ми дојде преку глава од непостоење на sysadmin, па морав секој втор празник да се јавувам на рецепција оти нешто паднало. еми сеа- ем немаат sysadmin, ем нов lead треба да бараат.

      "можеме безбедно да тврдиме дека просекот е тој" - не, тоа _ти_ тврдиш дека тој е просекот. јас не познавам програмер со искуство од две години што не добива повеќе од 600 eu плата.

      "Кога само ќе помислам дека и син ми годинава ќе се запише на таков факултет" - многу згреши душа овде. со среќа нека му е, оти у мизеријава наша може само така да биде безбеден (и ќе биде).

      и не знам зошто упорно повторувате „нека си отвори свој бизнис“ - многу е пасив-агресив и крајно климактерично. јас познавам еден куп програмери што си работат фриленс-outsource од дома и ич не им текнува да сменат нешто. тоа не е за мене, ама секако е опција.

      "кога ќе мораш да створиш пари, да ги извадиш од магична шапка, за да не ти избегаат вработените" ај ај... солзи ми потекоа, знаеме и двајцата дека добро се заработува, ептен добро. можеш да одвоиш малце од профитот за поголеми плати. а и ќе мораш, кога ќе станат платите во овој сектор малце потранспарентни, кога ќе се знае колку пари носи софтверот на фирмите, и колку пари земаат другите програмери, ќе се избалансираат малце платите, во спротивно ќе ти ги снема горановците.

      Delete
    4. @blogologist: i mentioned some numbers in my original post, so, roughly - junior: 250 - 450, intermediate: 450 - 700, senior: 700 - sky (i know people with 1600). these are net salaries, the totals are about 40% higher.

      Delete