Gdzie są te słynne "Janusz Soft-y"? W ogłoszeniach widzę same duże firmy

0

Niektórzy tak się nie mogą pogodzić z tym, że dobre teoryjki wcale nie są takie dobre i uniwersalne, że z góry przyjmują założenia, że robię oprogramowanie wg scenariusza: napisać -> kilka razy użyć -> wyrzucić, bo przecież niemożliwe, abym skutecznie utrzymywał oprogramowanie napisane z pominięciem dobrych teoryjek. Jasne, że nie jest to jakiś gigantyczny projekt, bo nawet najlepsza strategia nie przezwycięży normalnych, ludzkich ograniczeń pojedynczego człowieka.

Przykład dobrej praktyki, który podałem (trzymanie w kodzie kilku niewiele różniących się od siebie wersji tej samej funkcjonalności) jest ewidentnym złamaniem dobrej teoryjki DRY. I nie jest specjalnie wdzięczny marketingowo, dlatego nie nazywam go dobrą teoryjką. Jest tego mnóstwo w praktycznie zrealizowanych bibliotekach, jak choćby w SQLite, ale to się generalnie robi a nie opowiada o tym - bo wytłumaczenie, dlaczego w tym konkretnym przypadku było to właściwą decyzją, nie jest takie proste i nie wzbudza takiego entuzjazmu u słuchacza/czytającego.
I też jest dość łatwo wyobrazić sobie charakterystykę projektów, w których ta technika będzie bezużyteczna/szkodliwa; u mnie akurat jest przydatna, mimo że nie robię bibliotek do wykorzystania przez innych.

0

Dodam że miałem kiedyś szefa (programistę) który zawsze mówił: "nie mamy czasu pisać dobrego kodu, najpierw zróbmy kupę kasy, a potem będziemy ulepszać kod" po kilku latach nic się nie zmieniło. Jego dewiza to chyba coś w stylu Comarch - każdy trudny problem da się zastąpić skończona ilością ifow. Poza tym twierdził też ze Facebook pod kątem skomplikowania kodu jest prosty... Ale to zupełnie inna bajka.

0

Muszę skorygować swoją wypowiedź, zanim ktoś mi zarzuci: nie wiem, czy SQLite stosuje dokładnie to co opisałem - nie sprawdzałem - możliwe, że tylko pojawia się nowa nazwa funkcji, typu sqlite3_open_v2 natomiast wewnątrz mają spójnie - jak by nie mieli, tak jak ja, czy odmiennie, wierzę że dla swojego projektu wybrali właściwie.

2

Jednak większość dobrych teoryjek mi w tym nie pomaga, więc w mojej pracy te teoryjki pozostają teoriami a nie praktykami.

Widzę adepta https://static.4programmers.net/uploads/attachment/7948577756c899b6da2d7.jpg ;)

Swoją drogą, drabinka if-ów jest czytelna, szczególnie jeśli bardzo dawno się do danego fragmentu nie zaglądało i się go nie pamięta.

Tak, widziałem, na produkcji taka drabinkę ifów, o 10 poziomach zagłębienia i długą na 720 linii. Codziennie zgłaszane było do niej kilka nowych bugów, bo poprawiając jeden case psuło się 2 kolejne. Jedyne co pozwalała szybko "odczytać" to to, że developer który to zrobił był idiotą i powinien mieć zakaz zblizania się do komputera. Jak masz jednego ifa to nie jest źle, jak masz tam jakieś else to też nie ma tragedii. Tylko że w pewnej chwili trzeba się zmusić do refleksji i zamiast dodać 10 ifa, zabrać się za refaktoring, bo potem to juz jest szybki downhill i nagle tych warunków jest na tyle dużo, ze nikt już tego nie tknie bo raz ze za dużo pracy a dwa że 99% szans że sie coś zepsuje.
Do wszystkiego trzeba podchodzić zdroworozsądkowo, ale w programowaniu bardzo rzadko jakiś szybki dirty hack sprawdza się na dłuższą metę. Dużo częściej generuje znacznie więcej problemów, pracy i kosztów w dalszej perspektywie.

1

A propos dirty hacków to gdzieś czytałem że GCC był praktycznie zbudowany w oparciu o nie :D (źródło: zdupy) i to był główny powód szybkiej adopcji LLVM i Clanga. Nie przeszkodziło to jednak GCC stać się popularnym kompilatorem generującym najszybszy kod.

Do czego dążę - dobre praktyki są dla nas devów. Biznesu i laików mało to interesuje - jeśli jakieś rozwiązanie jest popularne albo ma dobre wsparcie to dostanie zielone światło bez względu na to co jest pod spodem. Biznes może wymuszać też złe decyzje podyktowane kwestiami prawnymi - Android wdrożył swoją bibliotekę standardową C (Bionic) mimo że istniały już gotowe rozwiązania. A kod tej libki pod spodem podobno też jest ciekawy ;)

Dobre praktyki nie mają nic wspólnego z Januszsoftem czy dużymi firmami na G czy F. Jedynym wspólnym mianownikiem są ludzie - jeśli trafisz na kogoś dobrego to i w Januszsofcie będzie pisał dobry kod (nie, Janusz mu tego nie zabroni). Reszta to statystyka - masz dużo mniejsze szanse na trafienie na dobrych ludzi w Januszsofcie bo rynek dobrze i sensownie płaci dobrym. Więc jeśli to nie będzie jakiś gościu z syndromem sztokholmskim to nie zabawi tam długo.

1

Do czego dążę - dobre praktyki są dla nas devów. Biznesu i laików mało to interesuje

Do czasu kiedy koszty utrzymania softu nie rosną wykładniczo. Albo do czasu kiedy okazuje sie ze naprawienie jakichś krytycznych bugów wymaga przepisania połowy systemu.

jeśli trafisz na kogoś dobrego to i w Januszsofcie będzie pisał dobry kod (nie, Janusz mu tego nie zabroni)

Nie byłbym tego taki pewny. Jak dostajesz zakaz pisania unit testów żeby "nie tracić czasu" to niewiele mozesz zrobić. Tak samo kiedy janusz wrzuca nowe taski non stop i nie ma nawet chwili na jakiś refaktor. To powoduje że po prostu nie trafisz na dobrych ludzi w januszsofcie, bo się zwolnią raz dwa przy takich warunkach. Zostaną tylko ci którym nie przeszkadza pisanie gównianego softu.

0

tylko janusze zwykle nastawiają się na projekty o krótkim życiu i szybkim starcie (stąd taka popularność wordpressa) a klient zadowolony, bo ma tanio

0
Wibowit napisał(a):

Kilka lat temu pracowałem w Javowym JanuszSofcie tworzącym stronę e-podróżnik.pl Chciałem ich przekonać do pisania testów automatycznych, ale szefostwo mnie wyśmiało. Stwierdzili że pisanie testów automatycznych to strata czasu. Z drugiej strony jakoś nie widzieli absurdu w tym, by programiści regularnie testowali ręcznie system tracąc przy tym mnóstwo czasu. Być może do teraz zmienili podejście, ale jak się ma emocjonalne podejście do sprawy to można takich oczywistych absurdów nie zauważyć.

Ale jak widzisz, e-podróżnik sobie radzi, korzystam intensywnie i ze strony i z ich aplikacji mobilnej. Gdyby ten hype na arbitralnie narzucane "dobre praktyki" był prawdą, to nie uciągnęliby takiego projektu. Nigdy nie spotkałem się z żadnym bugiem u nich na produkcji, a aplikacja nie jest mała ani prosta, a wręcz dotyka wrażliwych danych, gdzie za wyciek czy dziurę można zapłacić głową (obsługa płatności za bilety na przykład + zarządzanie danymi osobowymi).

0
loza_szydercow napisał(a):

Do czego dążę - dobre praktyki są dla nas devów. Biznesu i laików mało to interesuje

A powinno, bo przecież czysty kod to taki, który łatwiej się rozwija i utrzymuje. A łatwiej znaczy taniej.

0
Krzywy Programista napisał(a):

Ale jak widzisz, e-podróżnik sobie radzi, korzystam intensywnie i ze strony i z ich aplikacji mobilnej. Gdyby ten hype na arbitralnie narzucane "dobre praktyki" był prawdą, to nie uciągnęliby takiego projektu. Nigdy nie spotkałem się z żadnym bugiem u nich na produkcji

Łubu dubu
Łubu dubu
Niech na żyje

To pisałem ja
Jarząbek
Programista drugiej klasy

2
Coredump napisał(a):

Przykład dobrej praktyki, który podałem (trzymanie w kodzie kilku niewiele różniących się od siebie wersji tej samej funkcjonalności) jest ewidentnym złamaniem dobrej teoryjki DRY.

W DRY chodzi o niepowielanie logiki (nie kodu!) w ramach kodu aplikacji. Tworzenie nowej wersji modułu jako forka starego, w którym kod został zamrożony w żaden sposób nie łamie DRY, bo działa na innym poziomie (nie kodu lecz produktu). I jest to powszechnie stosowana dobra praktyka.

Czyli potwierdziła się moja hipoteza, że po prostu nie znasz i nie rozumiesz dobrych praktyk.

1

Ale jak widzisz, e-podróżnik sobie radzi, korzystam intensywnie i ze strony i z ich aplikacji mobilnej. Gdyby ten hype na arbitralnie narzucane "dobre praktyki" był prawdą, to nie uciągnęliby takiego projektu.

To przecież bzdura. Jedno z drugim nie ma nic wspólnego. Rozbija się to tylko o koszty. Koszty utrzymania systemu bez unit testów, napisanego bez poszanowania godności ludzkiej ani standardów, są zwyczajnie (wielokrotnie) wyższe. Ale jeśli ktoś może sobie na to pozwolić to czemu nie?

0
somekind napisał(a):

W DRY chodzi o niepowielanie logiki (nie kodu!) w ramach kodu aplikacji. Tworzenie nowej wersji modułu jako forka starego, w którym kod został zamrożony w żaden sposób nie łamie DRY, bo działa na innym poziomie (nie kodu lecz produktu). I jest to powszechnie stosowana dobra praktyka.

Czyli potwierdziła się moja hipoteza, że po prostu nie znasz i nie rozumiesz dobrych praktyk.

Potwierdza to się to, że stosujesz technikę retoryczną "No true Scotsman".
Czy to na prawdę tak trudno zaakceptować, że da się robić dobrze działające oprogramowanie, nie stosując się do najbardziej modnych dobrych teoryjek? I aby jakoś pogodzić się z tą wizją rzeczywistości odmienną od ideologii, którą z takim zacietrzewieniem wyznajesz, przyjmujesz założenie, że przedstawiający pogląd przeciwny to na pewno nieuk.

Załóż swoją firmę, jak jesteś taki przekonany o słuszności swoich poglądów.

Gdybyś chciał pójść w projekty za duże dla jednej osoby, ze znalezieniem programistów myślących podobnie, nie będziesz miał żadnego problemu - widać to choćby po tym wątku. Mogę jednak już na samym starcie przewidzieć pewien nieodłączny element - każdy z Was będzie miał inną interpretację przełożenia poszczególnych dobrych teoryjek na praktykę. "Jakość kodu" jednego programisty, widziana oczami drugiego będzie kiepska itp...

0

Równie dobrze można zrobić "dobrze jeżdżący samochód" z klocków lego - jeździ to jeździ, na ... drążyć temat.

lecz np dołożenie uszczelek do drzwi albo dodanie ogrzewania już nie będzie taka szybka, no i taki samochód mimo że działa to jednak różni się sporo od nawet starego poprawnie wykonanego pojazdu.

"Jakość kodu" jednego programisty, widziana oczami drugiego będzie kiepska - nie nie bardzo, bo dobre wzorce zastosowane tam gdzie trzeba od razu pokazują poziom programisty, natomiast walenie drabin if'ów pokazuje tylko drugą część tego stwierdzenia, z drobną różnica "...widziana oczami dobrych programistów będzie kiepska"

0
axelbest napisał(a):

Równie dobrze można zrobić "dobrze jeżdżący samochód" z klocków lego - jeździ to jeździ, na ... drążyć temat.

Akurat ten filmik jest lepszą ilustracją entuzjastów dobrych teoryjek, niż osób takich jak ja. Bo tutaj twórcy samochodu na starcie sobie założyli, jaką konkretnie technikę - klocki lego - wykorzystają za wszelką cenę. Dali radę osiągnąć efekt, natomiast bez wątpienia dałoby się osiągnąć go szybciej/lepiej, gdyby się na zastosowanie tej wybranej przez nich "dobrej praktyki" nie upierać.

1
Coredump napisał(a):

Czy to na prawdę tak trudno zaakceptować, że da się robić dobrze działające oprogramowanie, nie stosując się do najbardziej modnych dobrych teoryjek?

Nigdzie temu nie przeczyłem. Da się - tylko w wielu przypadkach będzie to masochizm i strata czasu.

I aby jakoś pogodzić się z tą wizją rzeczywistości odmienną od ideologii, którą z takim zacietrzewieniem wyznajesz, przyjmujesz założenie, że przedstawiający pogląd przeciwny to na pewno nieuk.

Od momentu, w którym to potwierdziłeś swoim poprzednim postem to już nie jest założenie. Udowodniłeś, że nie wiesz co krytykujesz.

A do tego nie jesteś najwyraźniej w stanie zrozumieć, że dobre praktyki to narzędzia, które się dobiera do problemu, a nie stosuje wszystkie naraz za każdym razem, bo ktoś kiedyś powiedział, że tak ma być. Umiejętność dobrania narzędzi to właśnie coś, co odróżnia dobrego programistę od klepacza.

Załóż swoją firmę, jak jesteś taki przekonany o słuszności swoich poglądów.

Lol. :D Prowadzenie firmy wymaga przecież zupełnie innych umiejętności niż pisanie dobrego softu.

Zdarzało mi się pisać w pojedynkę soft na zamówienie, jest używany do tej pory od wielu lat i jakoś nie ma bugów.

każdy z Was będzie miał inną interpretację przełożenia poszczególnych dobrych teoryjek na praktykę. "Jakość kodu" jednego programisty, widziana oczami drugiego będzie kiepska itp...

No właśnie nie, jeśli faktycznie się zna i stosuje te praktyki ze zrozumieniem, i dopasowuje do rozwiązywanych problemów, a nie używa ich tylko żeby użyć, to takie coś się nie zdarzy.

0

Przypominam sobie jedno ogłoszenie epodróżnika.
Dla juniora, napisali wprost (cytuję z pamięci)
"Preferowani absolwenci IET AGH i TCS UJ"

0
somekind napisał(a):

Załóż swoją firmę, jak jesteś taki przekonany o słuszności swoich poglądów.

Lol. :D Prowadzenie firmy wymaga przecież zupełnie innych umiejętności niż pisanie dobrego softu.

Ja też większości tych umiejętności nie posiadam. Otrzymałem bardzo dużą pomoc od ludzi, którzy znali mnie jako pracownika etatowego współpracującej z nimi firmy. Nie mieliśmy żadnych relacji osobistych, żadnego pokrewieństwa, żadna sytuacja w rodzaju znajomy znajomego. Nie byli to programiści - nie interesowali się kodem źródłowym, tylko działaniem, reakcją na zgłaszane problemy itp...

Także co prawda wymaga to odrobiny szczęścia, ale da się założyć firmę nie mając żadnych umiejętności handlowych, umiejętności zdobywania kontaktów itp. Konieczna jest natomiast akceptacja ryzyka porażki.

0

Ja też większości tych umiejętności nie posiadam.

Programistycznych też nie. Nie rozumiem po co w ogóle się udzielasz, jesteś nieświadomie niekompetentny (inb4. dyskusję prowadzić można, ale to wymaga chociaż minimum zrozumienia tematu, o którym się dyskutuje), dla mnie EOT.

0
Herrefolket napisał(a):

Ja też większości tych umiejętności nie posiadam.

Programistycznych też nie. Nie rozumiem po co w ogóle się udzielasz, jesteś nieświadomie niekompetentny (inb4. dyskusję prowadzić można, ale to wymaga chociaż minimum zrozumienia tematu, o którym się dyskutuje), dla mnie EOT.

O ile w pełni naturalne by było ocenianie na podstawie tego wątku moich umiejętności retorycznych, o tyle do oceniania programistycznych chyba jednak nie ma podstaw.

4
Krzywy Programista napisał(a):
Wibowit napisał(a):

Kilka lat temu pracowałem w Javowym JanuszSofcie tworzącym stronę e-podróżnik.pl Chciałem ich przekonać do pisania testów automatycznych, ale szefostwo mnie wyśmiało. Stwierdzili że pisanie testów automatycznych to strata czasu. Z drugiej strony jakoś nie widzieli absurdu w tym, by programiści regularnie testowali ręcznie system tracąc przy tym mnóstwo czasu. Być może do teraz zmienili podejście, ale jak się ma emocjonalne podejście do sprawy to można takich oczywistych absurdów nie zauważyć.

Ale jak widzisz, e-podróżnik sobie radzi, korzystam intensywnie i ze strony i z ich aplikacji mobilnej. Gdyby ten hype na arbitralnie narzucane "dobre praktyki" był prawdą, to nie uciągnęliby takiego projektu. Nigdy nie spotkałem się z żadnym bugiem u nich na produkcji, a aplikacja nie jest mała ani prosta, a wręcz dotyka wrażliwych danych, gdzie za wyciek czy dziurę można zapłacić głową (obsługa płatności za bilety na przykład + zarządzanie danymi osobowymi).

Nie napisałem, że sobie nie radzi. Jednak ich sposób rozwijania produktu był nieefektywny. Nie wiem czy mieli wycieki danych, ale na pewno kwestie płatności mieli słabo ogarnięte. Zdarzało im się źle wyliczyć faktury, bo przy kolejnej zmianie systemu ktoś zapomniał któregoś z N kroków ręcznego testowania systemu. Klient wyłapywał błędy i robił awantury przez telefon. Płatności natomiast są robione poprzez zewnętrze serwisy (ZTCP to jakieś PayU czy coś podobnego).

W epodróżniku pracowałem nad wieloma rzeczami. Jedną z nich była obsługa czytnika kart płatniczych. Miałem napisać jego obsługę przed dostaniem go w ogóle do ręki. Udało mi się to zrobić dzięki temu, że napisałem sobie testy według specyfikacji. Same te testy pozwoliły mi wykryć błędy w kodzie (!). Po dostaniu działającego sprzętu niewiele już trzeba było poprawiać.

Innym zadaniem była obsługa licznika monet w biletomacie. Tutaj sprawa była trudniejsza bo pisałem jedynie Javową nakładkę (wraz z algorytmem wydawania reszty, ZTCP to był chyba książkowy algorytm plecakowy oparty o programowanie dynamiczne) na bibliotekę napisaną w Delphi. Problem polegał na tym, że ta biblioteka była pisana przez 70-letniego pana Dariusza, którego już nie było sensu reformować na zdroworozsądkowe metodyki programowania. Pan Dariusz oparł program na globalnej mutowalnej (w zasadzie) maszynie stanów i morzu ifów. Testów automatycznych nie było do tego w ogóle (a ja miałem w ręce tylko binarkę działającą z rzeczywistym sprzętem) więc przez kilka (naście? nie pamiętam już) tygodni byłem testerem, który wrzucał monety do biletomatu i sprawdzał czy licznik monet nie oszaleje. Codziennie szalał, ja opisywałem problem, pan Dariusz przysyłał nową binarkę (pewnie z pozmienianymi ifami), a ja kolejnego dnia miałem dzień świra, bo wszystko się powtarzało. Za mojej kadencji biletomatu nie udało się doprowadzić do stanu używalności. Jakiś czas później projekt został zaorany.

Ogólnie przy ocenianiu technik programistycznych polecam po pierwsze nabrać w nich wprawy na tyle by móc rzeczowo się do nich odnieść. Po drugie nie należy uważać własnego przypadku za reprezentatywny. Zupełnie inaczej sprawa wygląda w przypadku krótkich niekrytycznych jednoosobowych projektów, a zupełnie inaczej w projektach trwających 10+ lat rozwijanych przez kilka zespołów i z dużymi wymaganiami co do niezawodności i odporności na duże obciążenie. Nie mówiąc już o sytuacjach skrajnych typu program na zaliczenie (który można zaklepać w weekend i potem go wyrzucić) czy sterownik statku kosmicznego albo sprzętu medycznego (gdzie drobny błąd może kosztować życie ludzkie).

0

Nie zgodzę się żeby tylko małe projekty dało się robić metodami chałupniczymi. Wystarczy charyzmatyczny szef który potrafi rozedrzeć się na produkcji i jeszcze raz wymusić łatanie błędów w nadgodzinach (bezpłatnych z poczuciem winy pracowników).
Dobrze zmotywowani programiści co nie mają w testach i specyfikacji to mają w głowach. System sypie się dopiero przy pracy kilku firm w jednym projekcie.
Ryk wściekłego szefa nie działa na odległość a brak testów i sensownie napisanego elastycznego kodu nie pozwala współpracować.
Dopóki nawet duży projekt ogarnia jeden duży zespół partyzantkę można skutecznie uprawiać do końca świata.
Przy okazji klient jest uwiązany do końca i buli jak za zboże bo stajni Augiasza w kodzie nie ogarnie żadna inna firma choćby miała go przejąć za połowę obecnie płaconych kosztów. Z punktu widzenia właściciela takich firm przejście na clean code nie dałoby żadnych korzyści.

0

Z punktu widzenia właściciela takich firm przejście na clean code nie dałoby żadnych korzyści.

Inwestycja w dobry kod nie ma sensu, ale spełnianie dowolnych żądań pracowników, którzy mają opanowany zagmatwany kod już ma sens? Tutaj na forum czasem pojawiają się dylematy moralne programistów, którzy wstrzymują się przed opuszczeniem kiepskiego projektu, bo oznaczałoby to duże trudności w znalezieniu następców, którzy mogliby opanować projekt.

Im częściej programiści będą protestować (poprzez dyskusję albo w ostateczności zwalnianie się) przeciwko kiepsko prowadzonym projektom tym częściej Janusze się przejadą na takich pomysłach i może w końcu zobaczą korzyść z profesjonalnego podejścia. A jeśli nie to dalej będziemy mieć Januszów oraz ich ofiary z syndromem sztokholmskim.

0

A może to jest metoda? Pisać kod, który działa, ale nikt poza mną go nie zrozumie. Wtedy będę niezastąpiony, jak zrezygnuję, to projekt upadnie.

0

Moja definicja januszsoftów: gościu będzie cię ruchał bez wazeliny i powie jeszcze że to twoja wina. W normalnej firmie natomiast czujesz, że pracujesz z ludźmi którzy wiedzą o co chodzi i nie ma tzw. zmowy milczenia, jakiegoś tabu odnośnie kasy, wszystkich traktuje się po prostu po ludzku. Ja nie wiem, ja jak odczuwam się wykorzystywany to wiem, że to Janusz.

1

Przykład dobrej praktyki, który podałem (trzymanie w kodzie kilku niewiele różniących się od siebie wersji tej samej funkcjonalności)
jest ewidentnym złamaniem dobrej teoryjki DRY.

można by jednak argumentować, że jest jednak zastosowaniem zasady open-closed (w stosunku do całego projektu - projekt jest otwarty na rozszerzenia, bo możesz dodać nowy moduł, ale zamknięty na modyfikację, bo tego, co już jest, nie możesz zmienić). Jest też również zachowaniem zasady niemutowalności, tyle, że do całych klas (a nie do samych danych) - czyli: "nic nie może zostać zmienione". Czyli stosujesz i tak "dobre teoryjki", te czy inne.

I nie jest specjalnie wdzięczny marketingowo

To nazwij to np. ActiveX a będzie bardziej wdzięczny (w ActiveX podobnie było z tego co pamiętam - każda nowa interfejsu to nowy numer). Albo zacznij używać pojęć "kompatybilność wsteczna", "stabilność API", "kontrakty", "continuous integration" i też będzie to bardziej poważniej brzmiało.

No ale z drugiej strony nadmierne wersjonowanie modułów to często droga na skróty i chamskie kopiuj-wklejki, które aż proszą się o abstrakcję (np. ileś podobnych modułów, które zostały chamsko przekopiowane i pomodyfikowane i potem wszystko trzeba zmieniać w 15 różnych miejscach w razie jakiejkolwiek zmiany biznesowej).

Myślę, że duża migracja ze starego API do nowego API (i dlatego utrzymywanie kilku wersji API naraz mogłoby być uzasadnione), to trochę inny przypadek niż "przekopiuję, bo tak jest szybciej, bo dowiozę funkcjonalność w jeden dzień, zamiast w 3 dni robocze, najwyżej będę potem musiał spłacać dług techniczny"(a mam wrażenie, że większość tego typu praktyk jest właśnie powodowana lenistwem i pośpiechem)

1

Ja ostatnio byłem na rozmowie u Janusza.. jako php developer (symfony). Janusz poza tym chciał, żebym mu wspierał projekty na Ruby On Rails, Pythonie, React itd. jak dowiedział się ile chce to się zdziwił, że tak dużo. Przykre jest natomiast to, że firma mieści się prawie w centrum Poznania... Biuro bardzo małe a pracownicy sami sobie muszą przynosić komputery... tzn laptopy....

0

Co do laptopow -> bedzie to co raz czestsza praktyka, jak sie rzad wezmie za B2B ;) Cytat z bezprawnika (nie moge jako anonim dac linka) :

Nowy kodeks to również wzmocnienie kontrolerów inspekcji pracy. Ma zostać wprowadzone domniemanie zatrudnienia, a zatem ciężar dowodu spadnie na pracodawców. To ma być sposób na walkę z wszechobecnym i powszechnym samozatrudnieniem. W myśl nowych przepisów przykładowy kierowca autobusu, pomimo faktu prowadzenia własnej działalności gospodarczej będzie traktowany jako pracownik miejskiego przewoźnika – jego usługa nie wnosi niczego nowego do działalności firmy i jest po prostu ukrytą formą zatrudnienia. Dopiero, jeżeli pracodawca wykaże, że autobus, którym jeździ kierowca stanowi jego własność, to będzie mogło być uznane za świadczenie usług.

0

Usługa użyczenia sprzętu i wszystko cacy.

1

Nie ma takiej niegodziwosci, ktorej rzad by mogl nie zrobic, jak mu sie skoncza pieniadze obywateli ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1