• Berlari tanpa garis akhir

    Salah satu isu yang sering dihadapi programmer terutama yang bekerja secara project by project adalah update, penyesuaian atau revisi pekerjaan yang berlalu begitu lama yang bisa sampai berbulan-bulan atau bahkan lebih. Dulu waktu saya masih bekerja pada salah satu software house ada istilah “never ending story” atau ya ibarat lari,…

    selanjutnya

    Salah satu isu yang sering dihadapi programmer terutama yang bekerja secara project by project adalah update, penyesuaian atau revisi pekerjaan yang berlalu begitu lama yang bisa sampai berbulan-bulan atau bahkan lebih. Dulu waktu saya masih bekerja pada salah satu software house ada istilah “never ending story” atau ya ibarat lari, lari tanpa garis akhir.

    Ada beberapa hal yang menjadi penyebab dari isu ini.

    Briefing tidak detail

    Entah dari sisi klien yang kurang detail menjelaskan kebutuhan dan harapan dari projek yang akan dikerjakan ini atau dari sisi programmer nya yang kurang nangkep curahan hati si klien, pada kebanyakan kasus menyebabkan projek gak pernah kelar karena gak sesuai dengan kebutuhan, ya karena memang dari awal tidak terindeks masalah apa yang ingin di selesaikan, lalu solusi atau bantuan seperti apa yang diharapkan dan didapat dari projek tersebut.

    Hal ini menyebabkan si klien akan terus mengubah dan menambahkan fitur kedalam projek walaupun sebenarnya sudah melewati dari scope pekerjaan, timeline dan budget.

    Oleh karena itu penting untuk merumuskan sejak awal pengerjaan projek untuk mengetahui apa sih sebenarnya yang di harapkan dari projek tersebut? Biarkan si klien curhat, pastiin si klien mengeluarkan semua ekspektasi dari projek ini, lalu rekap semua nya dalam bentuk kontrak untuk menjaga scope pekerjaan.

    Menganggap remeh spesifikasi projek

    Tentu saja mudah mengatakan untuk membuat kontrak lalu komit dengan kontrak tersebut, tapi pada kebanyakan kasus selama masa pengerjaan projek akan banyak hal yang muncul di luar kesepakatan.

    Biasa terjadi karena baik klien maupun programmer sama-sama menganggap remeh projek dan berpikir “ntar gampang-lah diubah, tinggal tambah sedikit”.

    Sebagai freelancer, saya juga sering menganggap remeh urusan spesifikasi pekerjaan ini, yang penting deal dulu. Ternyata belakangan sering menyebabkan konflik karena spesifikasi projek yang selalu berkembang karena tidak di define secara baik dari awal.

    Kadang klien juga karena merasa sebagai pembayar, maka yaudah lepas tangan gak mau ikut repot dalam perencanaan, bahkan sering tidak memperhatikan spesifikasi projek, sehingga kemungkinan untuk salah paham dalam mendefinisikan kebutuhan sangat besar.

    Perbedaan persepsi klien dan programmer

    Yang paling sering adalah perbedaan definisi tentang maintenance bug/error dari projek dan pengembangan fitur baru. Beberapa klien menanggap masa testing atau juga masa support adalah masa dimana si klien boleh menambah atau request fitur baru, sehingga ya gak kelar-kelar karena scope pekerjaan berkembang.

    Padahal harusnya masa tersebut lebih fokus pada perbaikan error/bug yang ditemukan.


    Tips and Trick

    Tentu saja ada beragam alasan kenapa sebuah projek bahkan tidak mendekati garis finish, pertanyaan berikutnya, bagaimana menghadapi kasus seperti ini?

    Ada beberapa trik dan cara mengatasi masalah seperti ini, beberapa yang biasa saya lakukan adalah sebagai berikut:

    Mengingatkan spesifikasi ke klien

    Karena ya itu tadi, kadang spesifikasi hanya dianggap sebagai formalitas padahal spesifikasi pekerjaan menunjukkan apa yang akan dikerjakan, apabila ada yang tidak sesuai bisa di cegah dari awal.

    Memberikan laporan berkala

    Supaya selalu on the track. Kalau perlukan di lakukan demo atau pertunjukan langsung apa yang sudah dikerjakan secara berkala.

    Jelaskan perbedaan revisi dan new request

    Termasuk konsekuensinya, seperti misal penambahan atau perubahan suatu modul pekerjaan, maka perlu diingatkan bahwa hal tersebut menyebabkan projek keluar dari timeline, sehingga kemungkinan bakal telat dari jadwal, sampai kemungkinan penambahan biaya karena ya tambahan masa kerja.

    Kontrak awal itu penting

    Ini bukan sekedar potensi tambahan penghasilan, tapi lebih ke peringatan kepada klien untuk lebih memperhatikan projek.

    Untuk beberapa kasus ini berhasil membuat klien lebih memperhatikan setiap request yang di berikan, karena ya bisa menjadi extra cost di sisi mereka.

    Setelah semua alasan dan cara menghindari projek “never ending story” ini, poin penting nya sebenarnya terletak pada perencanaan projek dan kemampuan menjaga kontrak yang disepakati, walaupun setelah itu tentunya kembali ke pihak-pihak yang terkait dengan projek tersebut.

  • Flexible Working Hours

    Kalau ditanya, apa yang paling menarik dari bekerja as freelancer (dalam hal ini programmer freelance), maka saya akan menjawab kebebasan memilih jam kerja AKA Flexible Working Hours. Beberapa orang mungkin bakal menjawab kebebasan untuk bekerja secara remote, dimana bisa bekerja secara bebas dimana saja. Tapi saya beruntung karena sempat merasakan…

    selanjutnya

    Kalau ditanya, apa yang paling menarik dari bekerja as freelancer (dalam hal ini programmer freelance), maka saya akan menjawab kebebasan memilih jam kerja AKA Flexible Working Hours. Beberapa orang mungkin bakal menjawab kebebasan untuk bekerja secara remote, dimana bisa bekerja secara bebas dimana saja. Tapi saya beruntung karena sempat merasakan bekerja pada digital agensi dan webshop dari bandung, jakarta, sydney, bahkan florida dimana semuanya mengijinkan saya untuk bekerja secara remote walaupun sebagai karyawan, sehingga kerja remote bukanlah hal baru lagi bagi saya. Flexible Working Hours adalah hal yang benar-benar baru dan menyenangkan yang saya rasakan ketika memulai fulltime freelancer.

    Privilege

    Seperti ditulis diatas, Flexible Working Hours adalah kebebasan untuk memilih jam kerja. Sebagai freelancer, saya bisa memilih kapan saya harus bekerja, bisa di pagi hari, siang hari, malam, apapun tanpa ikatan dan keharusan untuk standby 9 to 5, atau 8 jam straight. Tentu Saja ini gak bisa diberlakukan untuk semua jenis profesi, tapi sangat memungkinkan untuk pekerjaan yang sifatnya kreatif (pekerja kreatif) yang tidak langsung berhubungan dengan user/klien/masyarakat.

    Kenapa ini sangat spesial? karena apabila kamu adalah pekerja kreatif, bisa jadi programmer, designer, penulis, ataupun profesi lainnya yang menggunakan kreatifitas, maka kamu pasti pernah merasakan ada jam-jam atau bahkan hari-hari tertentu dimana kamu bener-bener gak mood, gak dapat ide, gak masuk zona produktif, atau simply, kamu gak bisa melakukan apapun, atau sebaliknya, ada masa-masa tertentu dimana kamu bener-bener semangat, on fire, produktif sekali, bekerja lebih cepat dan efisien, baik secara kualitas ataupun kuantiti. Disinilah kebebasan memilih jam kerja sangat berperan dalam membantu menghasilkan produk kerja yang optimal.

    Katakanlah kamu bekerja “9-5” setiap harinya, tapi ternyata ada masa dimana suatu pagi kamu beneran gak in ke kerjaanmu, lagi gak semangat, lagi stuck, atau kejadian lain yang tidak terkendali (listrik mati, internet mati, laptop rusak). Baru setelah istirahat makan siang kamu mulai dapet semangat dan ide baru, tapi jam kerja sudah akan berakhir, dan jadilah kamu mengakhiri hari kerja mu dengan pekerjaan yang gak beres. Beberapa orang terbiasa dengan lembur atau menambah jam kerja untuk mengejar ketertinggalan, yang akhirnya malah jadi bumerang, kelelahan karena pulang larut, stress karena gak sempat melakukan hal lain, si bos jadi bingung karena kerjaannya molor, melebihi jam pulang kerja, dan lagi mesti bayar biaya ekstra untuk bayar jam lembur karena kerjaan yang dilakukan “diluar jam kerja”.

    Dengan Flexible Working Hours, saya bisa mengatur jam kerja saya sendiri. Kalau lagi pas gak dapet ide, stuck, dan gak in touch ama yang dikerjain, ya sudah, saya memilih untuk rehat, bermain atau jalan-jalan bersama anak dan istri, having fun, dan begitu balik, sudah seger, baru mulai melanjutkan pekerjaan yang tertunda dengan semangat baru dan ya terasa, semuanya menjadi lebih mudah. No extra hours, karena pada dasarnya saya bekerja tidak lebih banyak dari jumlah jam kerja, bahkan untuk beberapa kasus saya melakukan pekerjaan lebih banyak dengan jumlah jam kerja yang lebih sedikit.

    Efisien

    Selain kebebasan mengatur jam kerja, salah satu potensi lain dari flexible working hours adalah kebebasan mengatur jumlah jam kerja. Sama seperti contoh diatas, kalau kamu bisa menyelesaikan pekerjaan dengan waktu 4-5 jam, kenapa harus standby di meja kerja selama 8 jam? ya tentu saja jawabannya adalah “karena peraturannya memang sudah begitu”. duh.

    Saya pernah merasakan ketika masih bekerja pada salah satu web shop, dimana saya ditegur karena jam kerja mingguan saya hanya sekitar 26 jam (saya lupa tepatnya) yang mana hanya sekitar setengah dari yang normalnya dan harusnya dilakukan, yaitu 40 jam. Saat itu saya mengajukan keberatan karena pada dasarnya, walaupun dengan jam kerja hanya setengah dari yang ditetapkan, saya menghasilkan produk kerja 5 kali lebih banyak dari rekan-rekan programmer lain, yang mana menjadikan tugas saya kosong, dan gak ada yang mesti dikerjain, that’s why jam kerja saya gak sampai 40 jam. Tapi ya tetep, saya yang kalah dan ya emang salah, karena “kebijakan perusahaan”. Menurut saya, ini gak manusiawi, dan ini juga menjadi salah satu alasan kenapa saya memilih jalur freelance ini.

    Saya sendiri, biasanya bekerja 6 jam * 5 hari, dengan komposisi 4 jam di pagi hari, 2 jam di sore hari setelah tidur siang, kadang sebaliknya, atau kadang 2 jam pagi hari, 2 jam sore hari, dan 2 jam malam hari. Pemisahan jam kerja ini tentu saja berdasarkan beragam variabel keadaan. Sejauh ini komposisi ini aman-aman saja, ya gak bisa di pungkiri, beberapa kasus harus memaksa keluar dari komposisi ini, misal salah satu kerjaan saya yang harus stick dengan jam kerja mereka (pake timezone US pula), atau tugas-tugas yang sifatnya kritikal dan urgent banget, tapi overall ini ok saja, saya bisa bekerja lebih rileks, lebih bisa menikmati waktu, bukannya dikejar-kejar waktu, dan pada beberapa kasus si klien jadi lebih hemat, karena jam kerja lebih sedikit namun kerjaan tetap terjaga.

    Belakangan ini saya lagi dalam proses eksperimen untuk memotong lebih jauh, menjadi 4 jam * 6 hari. Harapannya bisa punya lebih banyak waktu untuk belajar, quality time ama anak istri, mengerjakan sideproject, ataupun hal lainnya namun tetap menghasilkan pekerjaan yang sama baiknya atau bahkan lebih baik dibanding dengan programmer kantoran yang bekerja 8 jam sehari straight.

    Ah itu mah kamu nya aja yang males, gak disiplin.

    yep, ini gak sepenuhnya salah. Setiap orang pasti ada masanya untuk merasa males, that’s ok, menurut saya, itu manusiawi. Ketika lagi masa males itu, saya gak bakal efektif kalau tetep disuruh melakukan hal yang males-in tersebut. Jadi daripada kerja dengan males-malesan, mending diputar, diganti waktunya, sehingga akhirnya bisa bekerja dengan semangat, dan menghasilkan kerja lebih baik dan menurut saya itu masuk kategori disiplin karena sesuai target yang ditetapkan.

    Dih, namanya juga kerja, mau males, gak mood, stuck, ya mesti kerja sesuai aturan

    Salah satu dosen saya pernah nyeletuk ketika lagi ngobrol-ngobrol di luar kelas, “kita, manusia harus mengontrol pekerjaan, bukan sebaliknya”. Ya saya sadar bahwa gak semua orang punya opsi untuk memilih pekerjaan ataupun aturan yang dijalani, jadi ya gak bisa protes. Nah kebetulan saya punya kesempatan untuk memilih apa yang akan saya kerjakan jadi saya gak harus mengikuti aturan yang ada, saya memilih membuat aturan main sendiri untuk mengontrol pekerjaan saya.

    Mana ada perusahaan yang mau hire programmer yang kerja semaunya gitu

    Sebenarnya ada banyak perusahaan yang menerapkan ini, terutama perusahaan yang berada dalam skala global, timnya terdisitribusi diberbagai negara, seperti Toptal, 37Signals, Buffer, atau yang famous si Automattic dan lainnya. Kalau di Indonesia sendiri, saya kurang survey, tapi sempet liat salah satu postingan di group facebook, dimana ada startup yang menawarkan job offer dengan sistem kerja remote dan flexible working hours ini. Tapi ya emang langka banget, that’s why saya masih memilih jadi freelancer saja :).

    Terus gimana cara komunikasi, diskusi ama rekan lain kalau jamnya pada fleksibel?

    Nah, ini agak tricky. Bakal berbeda-beda untuk berbagai case. Biasanya saya bakal menggunakan waktu di pagi hari untuk menyapa rekan kerja / klien, report tugas hari sebelumnya kalau ada yang belum di report, konfirmasi tugas yang mau dikerjain hari ini, lalu yaudah, skype di smartphone saya selalu standby. Yang perlu diperhatikan adalah, gak semua pesan perlu langsung dikerjakan saat itu juga, kebanyakan pesan yang masuk hanya berisi konfirmasi, kalaupun ada tugas yang datang kadang hanya perlu quick response seperti “Ok, ntar ya”.

    Bukan berarti gak responsif, tapi pada kebanyakan projek, semua tugas sudah di defined dan di scheduled sejak awal, jadi kalau ada tugas baru datang di luar roadmap, kemungkinan tugas tersebut berupa “keinginan sesaat” atau tugas yang begitu besar, yang berarti mesti di pelajari lebih jauh, mengecek korelasi prioritas dengan tugas lainnya, jadi ya “ntar ya”. Kalau di 37 Signals, terkenal dengan istilah Work can wait.

    Flexible working hours menurut saya adalah salah satu sistem yang sangat manusiawi, yang memperhatikan aspek perasaan, keadaan, kebutuhan dan situasi kerja para pekerjanya, yang menyadari bahwa ya as human, ada masa suntuk, bosen, gak mood, sedih, atau juga perasaan bahagia, penuh semangat, bukannya dipukul sama rata dan mesti standby pada jam yang over-general. Yah tentu saja, seperti disebutkan diatas, hal ini gak bisa diperlakukan untuk semua orang dan semua jenis pekerjaan.

    Referensi bacaan terkait flexible working hours

  • Samarinda Food Delivery Services

    Pada waktu acara Telkomsel nextdev kemarin, temen saya sempat bertanya, “nyari dimana nih makanan yang asik disini dan tetep cocok ama lidah orang jakarta?” saya lupa promosiin beberapa delivery services yang ada di samarinda, seandainya beliau tahu, ada banyak layanan antar makanan di Samarinda ini. Efek gojek di Jakarta sana akhirnya sampai juga di ibukota Kalimantan…

    selanjutnya

    Pada waktu acara Telkomsel nextdev kemarin, temen saya sempat bertanya, “nyari dimana nih makanan yang asik disini dan tetep cocok ama lidah orang jakarta?” saya lupa promosiin beberapa delivery services yang ada di samarinda, seandainya beliau tahu, ada banyak layanan antar makanan di Samarinda ini.

    Efek gojek di Jakarta sana akhirnya sampai juga di ibukota Kalimantan Timur ini, sama seperti di ibukota sana yang bermunculan xxx-jek lain setelah kehadiran gojek, disini pun kurang lebih sama. Beberapa menawarkan layanan yang sama seperti gojek, mengantar segala macam tumpangan, tapi ada juga yang memilih fokus pada layanan tertentu seperti mengantar makanan saja.

    Samarinda punya beberapa layanan food delivery services yang bisa bikin kamu gak perlu bingung cari makan, berikut ini adalah beberapa layanan antar makanan yang saya tahu, kalaupun ada lagi di luar list ini, mungkin karena saya gak gaul atau memang layanan tersebut belum beken.

    Gofood

    Tentu saja, yang pertama gofood, si unicorn ini akhirnya sampai juga di Samarinda, kurang tahu tepatnya tapi rasanya baru di 2016 ini gojek dkk hadir disini. Awalnya tentu saja masih jarang, tapi sekarang sudah banyak dan rasanya setiap saya makan di luar, selalu ada kurir gojek yang lagi antri juga membeli makanan untuk layanan gofood mereka.

    Tentu saja, sebagai unicorn, deretan layanan dan aplikasinya sudah lengkap dan mengakomodasi kebutuhan driver dan konsumen. (nb: saya sh gak pernah nyobain aplikasi gojek, gofood, ataupun semua aplikasi lain di list ini)

    Speku

    liputan media

    Pertama saya liat speku ini di cover banner salah satu grup Facebook, saya lupa grup mana, lalu kemudian mulai banyak juga berseliweran driver speku di jalan-jalan dan di tempat makan. Kalau liat dari berita di link tadi sih, katanya uda mulai sejak 3 tahun lalu, berarti sebelum gojek. Saya kurang tau gimana sistem kerja atau cara order mereka, karena di website resmi mereka juga gak ada keterangan tentang cara ordernya. Kalau yang saya tangkap sih, sepertinya kalau mau order kamu mesti telpon/line/bbm customer service mereka, ntar mereka bakal mengutus driver untuk mengantarkan pesanan anda.

    PesanBungkus

    liputan media

    PesanBungkus saat ini setahu saya masih tahap beta dan lagi pengujian disana sini, Saya sudah melihat tim dan orang-orang dibalik PesanBungkus, dan mereka terlihat sangat siap dan bersemangat untuk menjalankan layanan ini. Tapi karena masih beta, saya gak banyak lihat driver nya di jalanan atau di tempat makan.

    PesanBungkus juga punya website dan android apps yang bisa membantu masyarakat untuk melakukan pemesanan makanan / order.

    KirimKanai

    liputan media

    Yang ini saya kenal dengan foundernya karena dulu pernah kerja sama beliau ketika membangun undas.co, beberapa bulan lalu sempet liat di share timeline facebook bahwa ini adalah project baru beliau, layanan kirim dan kurir untuk kota Samarinda.

    Untuk pemesanan mesti chat ke akun line mereka, ntar ada admin yang ready untuk menjawab dan menugaskan kurir untuk mengantar pesananmu. Saya sih belum pernah ketemu di jalan dengan kurir mereka, tapi kalau dilihat dari foto nya, sepertinya memang mereka gak pake seragam official seperti layanan-layanan sebelumnya diatas. Dari info di facebook KirimKanai, saat ini mereka punya 15 KurirKanai yang siap mengantar pesanan.

    Cully

    Cully ini sebenarnya terhitung baru di telinga saya, setelah dimention beberapa kali di grup Startup Samarinda. Gak ketemu juga sih info tentang website atau facebook pages mereka. Tapi dari android apps mereka kelihatanya sih sudah oke dan siap jalan.

    NyamanBanar

    Kalau NyamanBanar ini sebenarnya adalah salah satu side-project dari teman dan rekan kerja saya, beliau sudah cerita ini sejak lama (sebelum gojek-hype), tapi sepertinya moment nya gak pas karena masih belum beken yang beginian, selain itu, pada waktu itu si founder masih sekantor sama saya di kantor saya sebelumnya, jadi masih belum fokus, tapi setelah beberapa waktu lalu resign, semoga yang tadinya side-project jadi dapet perhatian lebih 🙂

    Tentu saja, kalau urusan antar makanan, selain 6 penyedia layanan tersebut, masih ada yang lain, yang paling nampak adalah KFC dan PizzaHut, termasuk juga beberapa tempat makan, restoran lain, sebenarnya dari dulu sudah punya layanan antar makanan dengan sistem kamu telpon, pesan dan mereka antar, done.

    Jadi inget, beberapa tahun lalu ketika masih kuliah, yang nge-hype adalah social media, semua pada bikin social media sendiri, sampai ada socmed khusus petani dan peserta gym segala. Lalu trend berganti dengan hype marketplace dan toko online. Lalu sekarang trend nya adalah xxx-jek, semua serba diantar, kurir, delivery dll.

    Ya semoga layanan-layanan ini bertahan lama, bisa terus berkembang, yang masih beta, yang masih development semoga bisa cepet kelar dan ikut nge-rame-in persaingan lokal atau bahkan nasional.

    Yang baru mau bikin, saran saya mah, uda, gak usah bikin, itu kontak aja masing-masing layanan yang sudah ada, merging aja 🙂

  • Tips untuk freelancers

    Seperti yang sudah diketahui, saya bekerja secara freelance dengan berbagai macam clients, baik secara individu, agensi, ataupun institusi secara serius sejak maret 2016 lalu. Sebenarnya jauh sebelum-sebelumnya sejak awal mengenal dunia web development di tahun 2010-an saya sudah memulai freelancing, tapi hanya sekedar sambilan, mengisi waktu, side project intinya gak pernah sampai serius. Ternyata memang sangat…

    selanjutnya

    Seperti yang sudah diketahui, saya bekerja secara freelance dengan berbagai macam clients, baik secara individu, agensi, ataupun institusi secara serius sejak maret 2016 lalu. Sebenarnya jauh sebelum-sebelumnya sejak awal mengenal dunia web development di tahun 2010-an saya sudah memulai freelancing, tapi hanya sekedar sambilan, mengisi waktu, side project intinya gak pernah sampai serius. Ternyata memang sangat berbeda rasanya ketika freelancing sebagai side project atau malah kerja tambahan dengan freelancing sebagai pekerjaan utama.

    Sebelumnya saya juga pernah menulis tentang pengalaman saya 6 bulan awal saya freelancing, ada banyak pelajaran yang saya dapatkan. Tapi seperti kata para freelancers yang sudah pro, 1-2 tahun di awal freelance itu memang masih masa gonjang-ganjing, semua nya masih proses sampai ntar 3 tahun, baru agak stabil. Stabil di bawah atau stabil diatas :D.

    Ngobrolin freelance, ada beberapa link bagus yang saya dapat selama beberapa waktu lalu, yang oke juga untuk kamu baca yang tertarik dengan freelancing.

    Bagaimana memulai karir sebagai freelancer? 

    Pertanyaan dari salah satu member di freelancer stack exchange, yang cukup basic untuk yang baru memulai dan mempertimbangkan untuk terjun ke dunia freelancing. Ada banyak masukan disana yang cocok untuk yang baru mau mulai atau yang baru mulai serius seperti saya.

    Bagaimana menentukan harga project?

    Masih di forum yang sama, ada pertanyaan yang juga penting banget, menentukan harga. Bahkan saya sampai sekarang kadang bingung menentukan harga, ketika dipasang terlalu tinggi, bisa-bisa klien nya gak mau, terlalu rendah, bisa-bisa jadi merasa kerja rodi walaupun sebenarnya sadar yang menawarkan harga tersebut ya kita sendiri.

    Bagaimana mengatur waktu bersama keluarga sebagai freelancer? 

    Ini pertanyaan yang cocok buat freelancer yang sudah berkeluarga seperti saya. Mau gak mau harus diakui jam kerja freelancer yang bebas kadang jadi bumerang, kadang waktu di habiskan untuk mengejar deadline yang akhirnya malah mengurangi family time. Padahal niat awal freelancer salah satunya adalah agar bisa menikmati waktu lebih banyak bersama keluarga.

    Tips untuk ‘single fighter’ 

    ada banyak freelance yang berkerja secara single fighter, semua dikerjain sendiri. Saya termasuk salah satunya. Ada banyak alasan mengapa saya selalu mengerjakan sendiri, tapi makin kesini makin kerasa bahwa ya kadang kita perlu bantuan orang lain, kita perlu partner, rekan kerja yang bakal menjadi sidekick untuk bantuin pekerjaan kita. nah pada artikel tersebut ada beberapa tips memilih rekan kerja kita.

    4 tips mencari pekerjaan remote.

    Ok ok, remote worker != freelancer, tapi tips tersebut bisa dipakai para freelancers untuk menjadi employable. Ya kali ketemu client yang bener-bener ok dan kamu beralih sementara dari freelancer menjadi fulltime crew secara remote.

    11 side project yang bisa dikerjakan untuk mendapatkan income tambahan.

    Kalau lagi agak longgar, atau beberapa freelancer pro memang menyediakan waktu mereka untuk mengerjakan side project yang mana punya banyak tujuan dan manfaat. Salah satunya sebagai sumber income tambahan, syukur-syukur bisa jadi pasif income 🙂

    Trends freelance di 2017

    yep 2 bulan lagi akan masuk ke 2017, freelancer, remote worker, dikatakan akan berkembang lebih masif lagi di tahun 2017. kalau dari saya mah, dimana era makin maju, teknologi makin canggih, ini sudah seperti ‘ya uda, wajar sih’. Harapan saya cuma semoga istilah freelance dan remote worker makin menyebar luas terutama di Indonesia, supaya orang-orang yang berada di sisi ini gak di pandang sebelah mata 😉

  • Downgrade Mac OS

    Sejak beberapa waktu lalu saya pengen banget melakukan reinstall MacBook saya, karena ya mulai terasa lambat dan mulai penuh dengan junk files. Sayangnya saya gak punya installer untuk el Capitan, versi yang lagi saya pakai, yang ada hanya installer Yosemite. Ada sih temen yang punya installer Sierra, versi terbaru tapi…

    selanjutnya

    Sejak beberapa waktu lalu saya pengen banget melakukan reinstall MacBook saya, karena ya mulai terasa lambat dan mulai penuh dengan junk files. Sayangnya saya gak punya installer untuk el Capitan, versi yang lagi saya pakai, yang ada hanya installer Yosemite. Ada sih temen yang punya installer Sierra, versi terbaru tapi atas berbagai macam pertimbangan saya putuskan untuk downgrade saja lah. Salah satu alasan utama adalah saya sadar diri aja, MacBook saya sudah tua (2011) jadi gak bakal dapat banyak fitur baru dari Sierra.

    Instalasi mah karena sudah berupa USB Installer jadi seperti installasi pada OS lainnya, tinggal next next aja.

    Setelah installasi selesai, berikutnya adalah install aplikasi yang dibutuhkan. Nah, disini saya mulai me-list apa aja sih sebenarnya yang saya butuhin, dan akhirnya berikut adalah list aplikasi yang terinstall di MacBook saya.

    (lebih…)
  • Ngulik WordPress

    Beberapa bulan terakhir saya lebih sering dapet project terkait dengan WordPress Development. Mulai dari pembuatan theme simple untuk keperluan re-design suatu instansi sampai pembuatan plugin yang cukup unik dan “menantang” dari sisi development. Saya sendiri gak asing sebenarnya dengan WordPress karena pekerjaan saya di kantor sebelumnya juga full WordPress theme developer. Walaupun ada…

    selanjutnya

    Beberapa bulan terakhir saya lebih sering dapet project terkait dengan WordPress Development. Mulai dari pembuatan theme simple untuk keperluan re-design suatu instansi sampai pembuatan plugin yang cukup unik dan “menantang” dari sisi development. Saya sendiri gak asing sebenarnya dengan WordPress karena pekerjaan saya di kantor sebelumnya juga full WordPress theme developer. Walaupun ada banyaak bad-mouth tentang WordPress, tapi ya pasar gak bohong, 25% web di dunia pakai WordPress 😉

    Salah satu yang lagi saya kerjakan kali ini adalah project yang skala nya cukup besar, atau bisa dibilang yang terbesar yang pernah saya handle pada platform WordPress. Salah satu toko online yang menjual pakaian anak yang cukup famous dengan sales sampai 250 ribu pcs per 3 bulannya (semoga gak salah info), sedang melakukan migrasi dari sistem mereka yang lama (magento) ke WordPress (dengan woocommerce), dan saya bersyukur dapat terlibat langsung pada projek ini. Projek ini bukan sekedar bikin theme, tapi juga meliputi sistem back office, membership, stock inventory dan beberapa hal lainnya yang semuanya dilakukan diatas platform WordPress.  Kebayang bakal dapet pengalaman handling WordPress untuk very high traffic.

    (lebih…)

  • Seputar Telkomsel Nextdev

    Beberapa hari lalu telkomsel mengadakan event tahunan telkomsel next Dev, event yang termasuk keren, karena jarang banget event seperti ini ada di ibukota Kalimantan Timur ini. Kebetulan salah satu speaker adalah rekan kerja saya, dan beliau juga memutuskan untuk stay beberapa hari di sini. Jadi selama 3 hari kemarin, kita…

    selanjutnya

    Beberapa hari lalu telkomsel mengadakan event tahunan telkomsel next Dev, event yang termasuk keren, karena jarang banget event seperti ini ada di ibukota Kalimantan Timur ini.

    Kebetulan salah satu speaker adalah rekan kerja saya, dan beliau juga memutuskan untuk stay beberapa hari di sini. Jadi selama 3 hari kemarin, kita banyak ngobrol dan diskusi berbagai macam hal, kita jadi banyak ngobrol tentang kehidupan startup dan pekerja kreatif. Ada banyak hal yang kita bicarakan mulai dari dapur startup sampai dapur pribadi :D.

    (lebih…)

  • 6 bulan full-time freelancing, ini yang saya rasakan

    Melanjutkan post saya sebelumnya, tanggal 1 maret 2016 kemarin saya mulai full time freelancing. Sebenarnya statusnya sih masih belum full, karena masih sebagai karyawan tapi memang sudah masa-masa resign, sampai 10 hari kemudian beneran resign. Sebelum-sebelumnya saya juga sudah mulai freelancing, tapi lebih sekedar side-job, dan setelah kemarin resign, saya memutuskan…

    selanjutnya

    Melanjutkan post saya sebelumnya, tanggal 1 maret 2016 kemarin saya mulai full time freelancing. Sebenarnya statusnya sih masih belum full, karena masih sebagai karyawan tapi memang sudah masa-masa resign, sampai 10 hari kemudian beneran resign. Sebelum-sebelumnya saya juga sudah mulai freelancing, tapi lebih sekedar side-job, dan setelah kemarin resign, saya memutuskan gak nyari kerjaan resmi dulu, mau merasakan kehidupan full-time freelancer.

    Dalam 6 bulan ini, ada banyak hal dan kejadian yang baru kerasa dan terjadi setelah merasakan langsung full-time freelancing, Beberapa menarik dan positif, namun tentunya gak semua hal bisa nyaman sesuai maunya kita.

    Baca juga:

    Mesti nyari projek sendiri

    Ini tentunya yang paling kerasa di awal, karena sesuai pengalaman saya di kantor sebelum-sebelumnya, biasanya kerjaan datang dari PM atau pak bos langsung di kantor, kali ini saya mesti nyari sendiri. Upwork masih jadi jalan terakhir buat nyari projek, saya bersyukur gak pernah sampai kehabisan atau sampai menggunakan 50% quota jatah bid kerjaan untuk dapet projek. Sisi gak enaknya, beberapa waktu lalu upwork merubah sistem fee nya, yang kerasa banget efeknya buat freelancer yang baru mulai di upwork. Untungnya sebagian besar client di upwork biasanya setelah selesai projek atau bahkan berbulan-bulan setelah projek, bakal menawarkan untuk lanjut ke projek lain, yang kadang terjadi di luar upwork.

    Selain dari upwork, saya bersyukur masih ada beberapa temen yang me-referensi kan saya untuk mengambil beberapa projek untuk dikerjakan. Saya juga sempet tergabung dalam beberapa startup, yang dari sisi ekonomis nya, saya bisa dapet stabil income.

    Lebih fleksibel mengatur waktu

    Fleksibel ini bagai 2 sisi pedang, bisa jadi untung, bisa jadi buntung 😀

    Pertama, yang positif nya dulu, Saya lebih enak mengatur waktu misal ada keperluan lain di luar, atau memang lagi pengen jalan-jalan ama istri dan anak, saya gak perlu ijin atau malah kabur tanpa ijin dengan perasaan berdosa karena korupsi waktu. Saya hanya perlu memindah dan membagi waktu yang harusnya kerja ke waktu yang lain. Dan jalan-jalan di weekday itu menyenangkan loh!

    Lalu, yang “gak enaknya”, kemungkinan untuk overtime itu besar banget, karena ya gak ada jam pulang kerja. Apalagi kalau lagi multi-deadline, deadline dari beberapa kerjaan barengan, beuh. tanya istri saya deh 😀

    Namun, overtime ini biasanya saya manfaatin untuk ngejar target supaya esok harinya saya bisa istirahat full seharian, atau ya jalan-jalan tadi. kecuali beneran hectic banget. 🙂

    ‘Dapet’ sesuai apa yang dikerjain

    Ini salah satu yang paling kerasa dan pertimbangan lebih untuk tetep full-time freelancer. Kalau bahasa freelance yang sudah pro, ini disebut kemerdekaan mengatur penghasilan, misal lagi ada kebutuhan lebih, berarti mesti buka dan nerima kerjaan lebih banyak dan selesein lebih cepet, supaya cepet closing projek. Atau kalau lagi ‘sejahtera’ bisa lebih longgar nerima kerjaan, gak perlu merasa makan gaji buta, dan dapet banyak waktu senggang supaya bisa di alokasikan ke kegiatan lain.

    Beberapa catatan

    Ada beberapa hal lain yang jadi catatan saya, dan mungkin jadi pelajaran untuk yang akan terjun full-time freelancer, antara lain

    Freelancer perlu modal

    Seperti di post saya sebelumnya, saya sudah menyiapkan segala hal untuk full-time freelancer. modal disini yang paling nyata adaah modal dari finansial karena gak ada jaminan bakal langsung dapet kerjaan dan pembayaran di bulan-bulan awal.

    Lalu modal skill, karena untuk start freelancing, bakal banyak ketemu saingan freelancer lainnya bahkan jika menggunakan channel seperti upwork maka saingannya bertambah dari penjuru dunia. Pada kondisi seperti ini cuma ada 2 cara untuk bertahan, turunin harga (yang berarti kamu perlu ekstra sabar, dan modal finansial yang kuat buat nutupin kebutuhan sehari-hari mu) atau naikin skill dan kualitas supaya menonjol dari yang lain.

    Gak selalu enak

    Kerasa banget dalam 6 bulan ini, gak selalu enak, bisa di bilang saya hanya menikmati di bulan pertama dan kemduian 2 bulan belakangan ini, ditengah-tengah, kerasa banget kerja kerasnya, berat dan ribet. Masalah-masalah seperti kerjaan yang molor dan jadi menumpuk berujung ke pembayaran yang di pending dan seterusnya. fuh.

    Dan yang paling gak enak adalah ketika ditanya ‘kerja dimana?’ mending kalau yang nanya dari kalangan millennials, kalau yang nanya lebih berumur biasanya bakal susah memberikan penjelasan yang bisa diterima.

    Treat like business

    Ini baru saya sadari sejak bulan terakhir ini, sebelumnya as freelancer, saya mah taunya cuma cari projek, kerjakan, dan dapet bayaran, sudah. Akhir-akhir ini saya mulai tersadar setelah nimbrung-nimbrung di berbagai grup freelancer online (beberapa yg oke : /r/freelance, dan freelance stack exchange), saya mulai fokus pada bagaimana caranya supaya saya sebagai frelancer, bisa scaling and growing up.

    Salah satu langkah awal adalah membuat report berkala supaya bisa terlihat perkembangannya, yang paling mudah dan nyata adalah melakukan report detail cash flow, nah sayangnya saya kepedean, saya pikir bank (dalam hal ini saya menggunakan BCA) sebagai money gateway saya, bakal menyimpan semua log history, tapi ternyata gak, kita hanya bisa melihat transaksi hingga 30 hari terakhir, sehingga saya gak bisa menghitung dan melihat perkembangan selama 6 bulan ini dengan data yang real.

    Kesimpulan,

    Selama 6 bulan ini, bisa dibilang saya belum mencapai level nyaman dan sukses dari sisi finansial, it’s so so lah dibanding kerjaan dikantor sebelumnya. Sedangkan dari sisi happiness saya merasa lebih bahagia, saya bisa mengatur waktu lebih bebas sehingga bisa mengobati atau menghindari kejenuhan kerja di saat yang dibutuhkan. Saya mau bilang kebahagian bisa bebas memilih tempat kerja, sehingga saya bisa berkerja di rumah sambil bermain dengan anak atau kegiatan rumahan lainnya, tapi memang sebelum-sebelumnya saya kerja remote, jadi ya sama aja.

    Di sisi lain, sisi karir, saya merasa jauh lebih produktif dan lebih berkembang karena lebih banyak kasus nyata yang ada di lapangan, saya mulai fokus dengan produktifitas kerja, karena ya kalau kerja nya tertunda-tunda atau gak beres-beres ujungnya pembayaran di delay atau bahkan di suspend, duh.

    Kalau ditanya apakah terpikir untuk balik kerja secara ‘official’ ? saat ini belum, saya terlanjur keenakan menikmati freedom dari freelancing, bukan berarti saya gak mau kerja dengan peraturan, beberapa projek yang saya kerjakan juga mengharuskan saya mentaati perarturan seperti jam kerja dan kehadiran, laporan kerja, dan peraturan layaknya karyawan pada umumnya, bahkan beberapa lebih ketat. Hanya saja saya masih banyak melihat tempat kerja yang konvensional yang menganggap karyawan adalah karyawan, bukan sebagai manusia yang berkembang. Sehingga saya belum tertarik untuk kerja secara ‘official’.

    Btw, Saya lebih memilih sebagai partner, so kalau kamu lagi ngerjain atau lagi ada projek web, kamu bisa konsultasi dan diskusi dengan saya lebih lanjut 😉

  • Mengirim dan Tracking email newsletter dengan laravel dan mailgun

    Salah satu project terbaru saya adalah membuat sebuah newsletter engine, yang secara garis besar tujuannya adalah memberikan kemudahan untuk para sales / internet marketing untuk mengirim email newsletter kepada para konsumen (ataupun target konsumennya). Konten dari newsletter sendiri akan diambil secara otomatis dari berbagai sosial media. Salah satu fitur utamanya…

    selanjutnya

    Salah satu project terbaru saya adalah membuat sebuah newsletter engine, yang secara garis besar tujuannya adalah memberikan kemudahan untuk para sales / internet marketing untuk mengirim email newsletter kepada para konsumen (ataupun target konsumennya). Konten dari newsletter sendiri akan diambil secara otomatis dari berbagai sosial media.

    Salah satu fitur utamanya adalah tentu saja, mengirim email newsletter, dan kemudian melakukan tracking untuk mengetahui berapa email yang terkirim, berapa email yang dibuka atau berapa email yang melakukan klik pada link yang ingin di promoin, ataupun klik link unsubscribe dan juga ‘mark as spam’. Saya menggunakan mailgun untuk email engine nya karena secara out of the box, sudah menyediakan fitur tersebut, dan juga lebih efisien di banding membangun email engine sendiri yang bakal lebih banyak makan waktu dan kemungkinan bakal di tandai sebagai spam oleh provider layanan email adalah sangat besar. Selain itu, mailgun juga sangat di support oleh laravel, PHP Framework yang saya gunakan untuk membangun projek ini. Laravel menyediakan driver untuk mailgun sehingga hanya dengan sedikit konfigurasi, mailgun akan terintegrasi dengan baik pada laravel.

    Tentang Mailgun

    Mailgun adalah penyedia layanan email as services dimana intinya sih kamu bisa mengirim email menggunakan server mereka. Dengan adanya mailgun, developer gak perlu bikin email server sendiri, atau kuatir email yang dikirim akan masuk ke spam, atau juga menjaga server agar tetap ‘sehat’ sehingga para email provider (gmail, yahoo, etc) tidak menganggap server kamu sebagai server yang mencurigakan dan memasukkan semua email dari server mu ke folder spam. Ada banyak fitur lain dari mailgun yang bisa di lihat di website mereka

    Mailgun dan Laravel

    Seperti yang sudah saya singgung diatas, laravel menyediakan driver untuk menggunakan mailgun sebagai email engine. Sebenarnya sih mailgun sendiri punya PHP SDK sendiri yang bakal bantuin kamu berinteraksi dengan API nya secara mudah, tapi kalau projek mu menggunakan laravel, maka akan lebih bijak kalau menggunakan “laravel way” nya, karena… ya emang itu kan salah satu fungsi menggunakan framework? 😃 Supaya kamu dan rekan-rekan mu sesama developer punya bahasa yang sama untuk melakukan beberapa macam kegiatan yang sudah di sediakan oleh framework.

    Untuk setting mailgun di laravel, kamu bisa di dokumentasi laravel, thanks to dotenv, karena kamu bisa setup secara mudah dengan cara edit file .env pada root folder laravel. dan masukkan parameter berikut

    MAIL_DRIVER=
    MAIL_HOST=
    MAIL_USERNAME=
    MAIL_PASSWORD=
    MAIL_DOMAIN= 
    MAIL_SECRET=

    Data untuk mengisi masing-masing parameter diatas bisa dilakukan setelah melakukan registrasi di web mailgun, kalau hanya untuk keperluan testing, kamu bisa pakai fitur free dengan batasan 10.000 email per bulan. lumayan tuh 🙂

    Setelah registrasi selesai, disana ada sandbox domain yang bisa dipakai, atau mau menggunakan custom domain sendiri juga boleh, saat ini saya masih menggunakan sandbox karena memang masih tahap development. Nah, di halaman detail domain, akan terdapat informasi untuk mengisi file .env diatas tadi.

    Mengirim Email

    Untuk mengirim email, karena menggunakan fitur built-in laravel, kamu bisa tinggal ikut dokumentasi laravel mail.

    Mail::send(
        'campaign/templates/newsletter',
        $data,
        function ( $message ) use ( $args ) {
            $message->from( "[email protected]" )
                    ->subject( 'Example Newsletter' )
                    ->to( $args[ 'sendto' ] );
        }
    );

    Anyway, Sampai sekarang saya masih takjub dengan betapa laravel membuat mengirim email menjadi lebih mudah dan eksplisit seperti ini (sebelumnya saya menggunakan codeigniter dan juga raw PHP, ribet dan gak elegan)

    Memberi Tagging

    Mailgun memang memberikan fitur data analitik untuk email yang terkirim, tapi data analitik ini secara global, bukan untuk masing-masing email yang terkirim. Namun mailgun menyediakan juga fitur tagging, atau bahasa gampangnya penanda email setiap melakukan pengiriman email. Sebagai contoh untuk kasus saya, sebelum mengirim email, setiap email yang akan dikirim akan disimpan di database dan memiliki field ID masing-masing. Lalu saya gunakan ID ini untuk menjadi tagging pada email yang dikirim, sehingga setiap email akan memiliki ID / Tagging yang unik.

    Sebelumnya saya sempet ribet untuk memberi tagging ini pada laravel karena fitur mail pada laravel hanya support untuk general purpose untuk beragam driver, jadi kalau mengikuti dokumentasi tagging pada mailgun dimana mailgun membutuhkan parameter “o:tag” yang tentu saja gak bisa di implementasiin di laravel.

    Setelah googling dan membaca dokumentasi swiftmailer (mail engine yang digunakan laravel) akhirnya saya berhasil menambahkan tagging pada email dengan menambahkan 2 baris kode baru pada kode pengirim email diatas tadi.

    Mail::send(
        'campaign/templates/newsletter',
        $data,
        function ( $message ) use ( $args ) {
            $message->from( "[email protected]" )
                    ->subject( 'newsletter' )
                    ->to( $args[ 'sendto' ] );
    
            // adding tagging to email
            $headers = $message->getHeaders();
            $headers->addTextHeader( 'X-Mailgun-Tag', 'campaign-' . $args[ 'ID' ] );
        }
    );

    berhasil! 💯

    Mendapatkan Statistik Email

    Untuk mendapatkan statistik email dari mailgun cara paling mudah adalah menggunakan PHP SDK dari mailgun sendiri.

    Lah, tadi katanya gak pake PHP SDK nya mailgun?

    Iya, untuk keperluan yang sudah disediakan oleh framework mah lebih baik menggunakan yang sudah ada, namun untuk keperluan lain yang gak disediain ya mending buat sendiri atau pake library lain yang sudah ada. Dalam hal ini mailgun cukup keren karena punya banyak SDK untuk beberapa macam bahasa pemprograman, termasuk PHP.

    Nah berikut adalah potongan kode untuk pengambilan statistik email berdasarkan tagging nya dari dokumentasi mailgun.

    $mail   = new Mailgun( env( 'MAILGUN_SECRET' ) );
    $domain = env( 'MAILGUN_DOMAIN' );
    $tags   = "campaign-17";
    $events = "opened";
    
    try {
        $data = $mail->get(
            $domain . "/tags/" . $tags . "/stats",
            array(
                'event' => $events
            )
        );
    
        return $data->http_response_body;
    } catch ( \Exception $e ) {
        return array();
    }

    Berdasarkan dokumentasi itu juga, terdapat beberapa event yang bisa di tracking.

    Dengan info selengkap ini, para user bisa mengetahui statistik dari setiap newsletter yang dikirim kepada konsumen nya yang tentunya akan berpengaruh pada strategi marketing berikutnya.

  • Full-time freelancers

    Full-time freelancers

    6 bulan lalu saya bergabung dengan sebuah perusahaan lokal dengan klien dari beberapa negara tetangga, mostly australia dan juga dari negara paman sam, ada beberapa hal yang saya suka seperti how they paid me well, and disclipined work hours. Ini penting karena kalau kamu baca pengalaman saya sebelumnya, disiplin jam…

    selanjutnya

    6 bulan lalu saya bergabung dengan sebuah perusahaan lokal dengan klien dari beberapa negara tetangga, mostly australia dan juga dari negara paman sam, ada beberapa hal yang saya suka seperti how they paid me well, and disclipined work hours. Ini penting karena kalau kamu baca pengalaman saya sebelumnya, disiplin jam kerja itu susah, apalagi untuk pekerja remote yang notabene rumah sudah jadi layaknya kantor. Sering kali bisa lupa waktu “pulang”.

    Sebenarnya sejak minggu pertama kerja sudah terasa bahwa saya gak akan betah lama, karena ada banyak hal yang berbeda yang saya pikir hal yang wajar, proses move on selalu tidak mudah. Tapi makin kesini semakin banyak hal yang membuat saya merasa bahwa saya gak cocok dengan culture kantor dan ada beberapa masalah yang belakangan muncul dan menjadikan saya fix bertekad bulat untuk resign di awal bulan maret ini tadi.

    Kalau kamu sudah berkeluarga dan punya buah hati yang masih kecil, kamu pasti tahu bahwa resign dari kantor tanpa ada rencana kemana akan berlabuh berikutnya adalah sama dengan bunuh diri. Beruntung saya terbantukan dengan beberapa side project yang sedang berjalan dan beberapa ada yang sudah masa closing, sehingga cukup memberi “modal” untuk beberapa bulan kedepan. Saya juga terbantukan dengan beberapa klien dari upwork yang suka dengan hasil kerja saya dan memberikan long term contract.

    So what next?

    Untuk jangka pendek, saat ini saya memilih fokus freelancing mengerjakan beberapa project yang sudah deal, karena uda gak kepotong jam kerja saya lebih punya banyak waktu buat pengerjaan, doing it fast, deliver faster, get payment, and go for holiday as soon as posible.

    Sedangkan untuk jangka panjang, saya pikir saya akan memanfaatkan jam kerja freelancing untuk sharpen and getting new skills, harapannya sih bisa membantu step up the game, naik level ke level kerja yang lebih worth.

    Tapi dari pengalaman temen-temen ‘seprofesi’, kebanyakan programmer (yang berkembang) cuma punya 2 tujuan hidup, berakhir jadi freelancers selamanya atau jadi business owner entah di bidang lain atau paling minim bikin web shop sendiri, biasanya sih malah keduanya.

    Yang jelas dari dulu sudah memang penasaran, dan kepengen untuk full-time freelancers untuk ngejar work-life balanced. Ini bukan masalah keren-keren-an, ini masalah freedom, terutama freedom dalam masalah menentukan jam kerja, karena para pekerja kreatif pasti tau bahwa mood dan semangat untuk menghasilkan karya gak datang straight 8 jam. Terkadang ada kalanya di masa suntuk yang biar ngotot seperti apa yang dihasilkan cuma lelah tanpa hasil. Kadang kalau lagi onfire gak perlu waktu lama untuk menyelesaikan banyak masalah. Saya melihat ini bakal jadi kesempatan buat menjalani rasa penasaran saya, tinggal ntar di lihat, berapa lama bisa bertahan dengan bekerja as full-time freelancers.

    Anyway, kalau kamu butuh SDM lebih buat segala macam aplikasi berbasis web, selalu bisa kontak saya 😉

  • 1 Tahun bersama PHPStorm

    11 februari kemarin lisensi PHPStorm saya telah expired yang berarti sudah 1 tahun saya menggunakan PHPStorm untuk menemani saya bekerja. Saya masih ingat ketika itu masih menggunakan PHPStorm 8 sampai sekarang yang terbaru versi 10 dan sepertinya versi 11 akan keluar 1-2 bulan kedepan. Sebelumnya saya menggunakan sublime text dan…

    selanjutnya

    11 februari kemarin lisensi PHPStorm saya telah expired yang berarti sudah 1 tahun saya menggunakan PHPStorm untuk menemani saya bekerja. Saya masih ingat ketika itu masih menggunakan PHPStorm 8 sampai sekarang yang terbaru versi 10 dan sepertinya versi 11 akan keluar 1-2 bulan kedepan.

    Sebelumnya saya menggunakan sublime text dan sempet mencoba atom namun waktu itu atom masih buggy banget, saya memang agak pesimis dengan aplikasi yang berbasis HTML, CSS, dan JS lalu di package jadi aplikasi desktop. Sampai akhirnya atas pertimbangan produktifitas saya beralih ke IDE, netbeans dan aptana gak bisa dibilang baik dari sisi tampilan dan performa (agak jadi lambat, typikal aplikasi desktop berbasis java) dan pilihannya waktu itu PHPStorm. Saya putuskan mencoba trial selama 30 hari, yang kemudian tertarik untuk melanjutkan ke full version.

    (lebih…)

  • Masalah case-sensitive di Vagrant pada OSX

    Sebagai programmer, khususnya web programmer sering dong ya masalah dimana sebuah aplikasi yang kamu develop berjalan sempurna di laptop atau komputer mu, kemudian ketika handsoff ke klien atau kamu upload-in ke server mereka, tiba-tiba aplikasi kamu gak works sebagaimana mestinya, dan kamu bakal pakai alasan sejuta programmer, “ditempat saya jalan…

    selanjutnya

    Sebagai programmer, khususnya web programmer sering dong ya masalah dimana sebuah aplikasi yang kamu develop berjalan sempurna di laptop atau komputer mu, kemudian ketika handsoff ke klien atau kamu upload-in ke server mereka, tiba-tiba aplikasi kamu gak works sebagaimana mestinya, dan kamu bakal pakai alasan sejuta programmer, “ditempat saya jalan kok”.

    (lebih…)

  • Membuat notifikasi packtub free

    Kalau kamu sama seperti saya dan beberapa orang yang suka memanfaatkan packtub free ebook yang mana packtub akan membagikan 1 ebook setiap hari, maka kemungkinan kamu mengalami apa yang saya rasakan, dimana mesti buka tiap hari kalau gak mau kelewatan ebook keren yang di gratisin. Packtub tidak menyediakan notifikasi untuk ebook…

    selanjutnya

    Kalau kamu sama seperti saya dan beberapa orang yang suka memanfaatkan packtub free ebook yang mana packtub akan membagikan 1 ebook setiap hari, maka kemungkinan kamu mengalami apa yang saya rasakan, dimana mesti buka tiap hari kalau gak mau kelewatan ebook keren yang di gratisin.

    Packtub tidak menyediakan notifikasi untuk ebook yang di jadiin gratis setiap hari nya, ada sih di twitter packtub tapi gak tiap hari dan biasanya tercampur dengan tweet dari packtub sendiri. Saya juga sudah mencoba subscribe newsletter packtub, tapi kadang sehari bisa dapet lebih dari 1 email dan isi nya promo semua, tidak ada informasi tentang ebook yang lagi di gratiskan. Saya tidak tahu apakah saya yang miss-information sehingga tidak mengetahui ebook yang di gratiskan tiap hari nya, jadi yang saya lakukan adalah tiap pagi ngebuka website free packtub.

    (lebih…)

  • Tentang Kerja Remote

    Tentang Kerja Remote

    Sebentar lagi tahun 2015 berakhir, dan memasuki januari tahun 2016 berarti saya akan memasukin tahun ke-3 saya sebagai remote worker atau pekerja remote. Awalnya saya belum mengenal kerja remote dan saya masih bekerja onsite di Bandung, iseng aja nanya ke atasan saya “saya boleh kerja dari tempat saya saja di…

    selanjutnya

    Sebentar lagi tahun 2015 berakhir, dan memasuki januari tahun 2016 berarti saya akan memasukin tahun ke-3 saya sebagai remote worker atau pekerja remote. Awalnya saya belum mengenal kerja remote dan saya masih bekerja onsite di Bandung, iseng aja nanya ke atasan saya “saya boleh kerja dari tempat saya saja di Samarinda?” karena waktu itu saya berpikir, as programmer saya bisa kok mengerjakan dan mengirim source code dan kerja online gak mesti di kantor. Atasan ternyata memberikan ijin namun dengan syarat, mesti 1 tahun dulu onsite dan sudah berkeluarga, dan kebetulan saat itu memang ada rencana untuk berkeluarga di 1 tahun berikutnya, dan akhirnya saya pun memulai sistem kerja yang ternyata sudah lama nge-trend dengan istilah remote working atau kerja remote.

    Baca juga:

    Pertengahan tahun 2015 ini saya menemukan grup facebook dengan nama kami kerja remote, dan ternyata beberapa teman saya sudah join disitu, keberadaan grup ini lumayan membantu beberapa teman saya mengenal jenis pekerjaan yang saya lakuin, karena kalau kamu bekerja as remote worker kamu pasti sering mengalami moment sedikit bingung ketika menceritakan pekerjaanmu ke teman-teman sekitar mu :D.

    Di grup itu juga, terlihat beberapa member memang awalnya masih belum tepat mengartikan tentang kerja remote, beberapa menganggap pengguna software remote (teamviewer, vcn, ssh, dll) atau ada juga yang menganggap ini jenis pekerjaan khusus programmer. Tentu saja bukan cuma beberapa member tersebut yang bingung, tetangga saya mengira saya kerja sebagai tukang bikin remote ketika menjelaskan pekerjaan saya ke tetangga :(, atau seperti beberapa teman saya yang dikira pesugihan karena gak pernah keliatan ngantor. hiks.

    Beberapa opini tentang kerja remote yang paling sering ada dan gak tepat

    Kerja Remote == Freelancer

    Ini yang paling sering, kerja remote disamakan dengan freelancer. iya sih kebanyakan freelancer kerja secara remote, tapi gak semua juga. Freelancer adalah masalah kontrak, dimana kita sebagai freelancer dikontrak untuk bekerja pada satuan waktu tertentu atau berdasarkan projek yang dikerjakan. Misal kamu kerja dengan status freelancers dan kamu gak mesti datang kekantor, itu baru disebut freelancer yang kerja remote, tapi ada juga freelancer yang mesti datang ke kantor, tiap hari. Dikantor saya dulu kami sempet nge-hire freelancer karena kekurangan tenaga, dan walaupun freelancer, orang tersebut mesti datang kekantor, meeting dan kerja di kantor setiap hari. Kalau sudah begini, dia bener freelancer, tapi kerja nya onsite, bukan kerja remote.

    Kerja Remote == Part Timer

    Terlepas dari ngelempar lowongan kerja di facebook itu kadang jadi absurd, jawaban dari orang ke 2 alias pemberi kerja agak gak nyambung, dan saya menduga mungkin pemberi kerjaan mengira kerja remote ini semacam freelancer, atau malah part timer. Padahal ini hal simple, part timer adalah kerja paruh waktu, biasanya para pelajar yang mau sambil kerja, atau saya juga pernah sebagai part timer walaupun masih dalam status karyawan di tempat lain. Sama seperti freelance, kalau kerja sebagai part timer dan mesti datang kekantor, namanya ya kerja onsite juga, bukan remote. Bisa jadi juga kerja nya part time atau malah full time, tapi gak mesti kekantor, berarti ya termasuk kerja remote.

    Kerja Remote mesti jadi Programmer

    Beberapa orang menganggap perlu jadi programmer buat ngerasain kerja remote. Sebenarnya gak juga, kamu bisa kerja remote dengan profesi apapun, rasanya pernah baca dokter melakukan operasi jarak jauh menggunakan teleconference, itu juga termasuk remote. Jadi bukan masalah kemampuan atau profesi, tapi lebih masalah persepsi bahwa kerja gak mesti ngumpul di 1 tempat. Profesi lain seperti desainer (desainer apapun), penulis (blog atau buku), pengajar ( pernah liat perkuliahan online? ), scientist dan photographer (contoh fotographer ama peneliti national geographic yang lagi di tengah hutan).

    Kerja Remote mesti di kantor luar negeri

    Memang sih jarang banget kantor / perusahaan yang akomodir kerja remote di Indonesia. Tapi bukan berarti gak ada, selama ini saya kerja remote pada 2 kantor di Indonesia, kantor pertama ada di Bandung dan kantor yang sekarang di Jakarta dan rumah saya di Samarinda. Ini lebih kearah pinter-pinter nego ke atasan mu kalau mau minta ijin kerja remote, dan karena masih jarang jadi ya agak maklum kalau gak di approve oleh si bos. pro tips nya mungkin kamu mesti tunjukin dulu bahwa kamu bisa kerja yang bener ketika onsite lalu seltelah beberapa waktu mulai deh obrolan tentang kerja remote.

    Digital Nomad

    Nah kalau ini level lebih tinggi dari para pekerja remote. Masih jarang banget sih istilah ini dipakai oleh temen-temen. Digital nomad ini sebenarnya adalah kebiasaan dimana si pekerja sukanya sambil traveling, ya karena sebagai pekerja remote, kita gak dibatasin mau kerja dimana saja, jadilah beberapa orang lebih memilih untuk sambil traveling keliling dunia, “karena dunia terlalu luas untuk tinggal di satu tempat” begitu sih biasanya slogan nya. Belum pernah sih denger orang indonesia yang ngelakuin digital nomad gini, tapi kalau para bule udah hal biasa. Seperti om vitally friedman, doi yang punya website smashing magazine, hidup nya pindah-pindah dari satu tempat ke tempat lain, bahkan dia gak punya rumah, kamu bisa baca disini. Tapi walaupun begitu, ada juga digital nomad yang kerjanya gak remote, saya pernah baca beberapa orang seperti pengajar, dokter, dan instruktur yang hidup nomaden sambil traveling, ketika sampai disuatu tempat mereka akan mencari kerja sebagai tenaga kerja lokal di tempat tersebut, sampai beberapa bulan mereka resign dan melanjutkan perjalanan.

    Tentang Kerja Remote

    Jadi kerja remote itu sebenarnya simple, kalau kamu bekerja entah jadi karyawan resmi, atau sekedar freelance, magang atau yang lainnya dan kamu gak mesti datang kekantor maka sudah termasuk kerja remote. Prinsipnya sebenarnya adalah supaya kamu bisa kerja di tempat dengan kondisi dan keadaan yang kamu sukai, harapannya dengan begitu kerja lebih produktif, karena gak perlu suntuk dengan ruangan kantor yang mungkin membosankan.

    Tentu saja ada banyak pertimbangan terutama dari sisi business owner untuk memberi akses kerja remote kepada karyawannya. Seperti saya tadi, mungkin kamu mesti kerja dulu onsite, lalu tunjukkan bahwa kamu memang bisa kerja dengan baik dan cukup bisa diandalkan, lalu mulai deh ajuin kerja remote paling gak dengan masa trial beberapa bulan, kalau lancar, baru minta permanen kerja remote.

    BTW, emang apa sih benefit dari kerja remote?

    Nah, ada beberapa kelebihan atau benefit yang hanya didapat ketika bekerja secara remote, saya tulis lengkap disini: Benefit Kerja Remote

  • Membaca dan mengorganisir artikel menggunakan Pocket

    Sejak pertengahan 2015 lalu, saya mulai fokus dalam mengembangkan dan menjalankan prinsip Get Things Done (GTD) mungkin karena efek sudah berkeluarga membuat saya mesti bekerja secara efisien dan optimal. Nah topik GTD sangat erat kaitannya dengan produktifitas, manajemen waktu,  lifehack, dan segala macam hal yang akan berujung pada work-life balanced.…

    selanjutnya

    Sejak pertengahan 2015 lalu, saya mulai fokus dalam mengembangkan dan menjalankan prinsip Get Things Done (GTD) mungkin karena efek sudah berkeluarga membuat saya mesti bekerja secara efisien dan optimal. Nah topik GTD sangat erat kaitannya dengan produktifitas, manajemen waktu,  lifehack, dan segala macam hal yang akan berujung pada work-life balanced.

    Ada banyak hal yang dapat menggangu produktifitas kita saat berkerja, salah satunya adalah gak bisa menahan diri untuk meng-klik dan membaca artikel menarik dari sosial media ataupun sumber informasi lainnya. Yang sering kejadian, ketika lagi browsing mencari resource tiba-tiba dapet artikel menarik, klik, dibaca dan lupa waktu.

    Saya sendiri biasanya pagi hari sebelum berkerja menyempatkan membuka RSS reader saya, membaca berita dan informasi yang lagi nge-hype. Biasanya saya akan menemukan beberapa artikel yang sangat menarik namun kalau dibaca saat itu juga maka akan cukup menghabiskan waktu. Saat seperti ini, saya akan menyimpan ke pocket untuk dibaca nanti setelah ada waktu senggang.

    Tentang pocket

    Pocket adalah aplikasi yang sederhana, aplikasi ini bakal menyimpan artikel yang kamu rasa perlu buat dibaca di lain waktu, se-simple itu. Walaupun begitu, ada beberapa fitur yang menarik, seperti:

    Best view layout, fitur ini membuat semua artikel yang kamu simpan di pocket akan di format dalam bentuk yang sangat membuat nyaman membaca. Kalau biasanya membaca artikel di website bakal keganggu dengan elemen-elemen website seperti widget, banner promo, ads dan lainnya, di pocket semua akan hilang hanya tersisa judul, tanggal, penulis, dan tentu saja konten berita. Jadi lebih fokus membaca.

    Tagging, setiap artikel yang disimpan di pocket bisa diberi tagging, sehingga lebih mudah dalam mengorganisir, mengelompokkan dan pencarian artikel.

    Offline reading, ini yang paling penting, artikel yang disimpan di pocket bisa dibaca saat offline, tentunya sebelumnya mesti online dulu, biarkan pocket nge-sync dan nge-save artikel di device mu kemudian selanjutnya kamu bisa baca artikel yang kamu simpan dimana saja kapan saja.

    Multi platform, pocket tersedia untuk berbagai macam platform desktop, mobile, dan juga versi web nya. Jadi saya bisa gonta ganti device dan tetep ter-sync data maupun aktifitas saya.

    Baru-baru ini, pocket merilis fitur baru, recommendations, dimana para pengguna pocket akan punya halaman profil sendiri yang bisa diisi dengan artikel yang di rekomendasikan. Kamu bisa juga follow user lain sehingga bisa melihat apa yang orang tersebut rekomendasikan buat dibaca. Asiknya, belum ada endpoint buat rekomendasi ini dari API mereka, sehingga artikel yang direkomendasikan bener-bener dari si pengguna, bukan bot (seperti kebanyakan user facebook dan twitter, uhuk)

    Tips menggunakan pocket

    1. Install plugin pocket di browser yang kamu gunakan, jadi kamu bisa tinggal klik button pocket di browser untuk menyimpan artikel.
    2. Kalau kamu pengguna OSX, install aplikasi desktop nya, supaya pocket bisa masuk ke fitur share di OSX,
    3. Install di smartphone mu, pocket akan muncul ketika kamu klik share, sehingga bisa dengan mudah menyimpan ke pocket dari aplikasi apa saja yang mendukung fitur share.
    4. Ada banyak apps yang mengintegerasikan pocket didalamnya, cari tahu di setiap setingan apps, kalau benar support pocket, bakal muncul tombol atau shortcut khusus untuk lebih mudah menyimpan konten ke pocket.
    5. Gunakan order dari terlama ke terbaru pada list artikel pocket. Ini membantu agar tidak ada artikel lama yang tersimpan di reading list kamu. Dengan begini, kamu mau gak mau bakal ngebaca semua artikel yang sudah kamu simpan, bukan cuma yang terbaru saja.
    6. Mark as read segera kalau dirasa gak perlu dibaca tapi perlu disimpan, misal artikel yang bersifat tutorial, dalam kasus saya tutorial progamming, gak pas rasanya kalau dibaca di rumah makan atau tempat tidak kondusif lainnya, jadi saya bakal kasi tagging yang jelas, lalu mark as read, ntar kalau perlu baru dicari lagi, jadi gak menuhin reading list saya.
    7. Follow orang-orang keren, biasanya para author dari media-media besar lebih banyak memberikan rekomendasi artikel yang berbobot.

    Link

  • Mengenal Gulp

    Mengenal Gulp

    Agak telat sih sebenarnya, Gulp uda nge-hype sejak tahun lalu, ditambah lagi saya sebelumnya lebih fokus pada backend development, gak terlalu perhatian dengan tools seperti ini, namun belakangan karena juga banyak bermain dengan CSS dan Javascript, membuat saya mengenal gulp, dan ternyata tools ini sangat menarik dan bisa digunakan cukup luas…

    selanjutnya

    Agak telat sih sebenarnya, Gulp uda nge-hype sejak tahun lalu, ditambah lagi saya sebelumnya lebih fokus pada backend development, gak terlalu perhatian dengan tools seperti ini, namun belakangan karena juga banyak bermain dengan CSS dan Javascript, membuat saya mengenal gulp, dan ternyata tools ini sangat menarik dan bisa digunakan cukup luas bukan sekedar untuk para frontend engineer.

    Kamu bisa buka website resmi gulp, untuk detail lengkap tentang apa itu gulp, tapi secara singkat dan dalam bahasa saya, gulp adalah tool yang akan membantu kamu secara otomatis melakukan banyak hal, atau sebutan kerennya, automator, task runner. contoh paling gampang, biasanya saya bakal nge-set gulp supaya ketika saya menyimpan sebuah file less, gulp akan melakukan kompilasi menjadi file CSS, lalu akan membuat versi minify nya, semua dilakukan secara otomatis.

    Instalasi

    Untuk melakukan instalasi gulp, mesti menggunakan npm, kamu gak punya npm? ini 2015 bro! 😉 kalau kamu (memang bener) gak punya npm, kamu bisa install nodejs dulu, download disini https://nodejs.org.

    Setelah terinstall, kamu bisa install gulp dengan menjalankan perintah berikut di command line mu,

    sudo npm install --global gulp

    Setelah selesai, gulp akan terinstall secara global di laptopmu.

    Memulai Project

    Untuk memulai project, kamu bisa dengan mudah buat folder dimana saja, lalu gunakan command line mu untuk masuk ke folder tersebut.

    Lalu di dalam folder tersebut, jalankan perintah

    $ npm install gulp

    eh, kok nginstall gulp lagi? iya, gulp yang diinstall secara global tadi supaya kamu bisa melakukan perintah ‘gulp‘ dari command line mu dimana saja, sedangkan ‘gulp‘ yang diinstall kali ini adalah gulp yang akan digunakan di dalam file javascript.

    Mestinya sekarang didalam foldermu bakal muncul folder baru bernama node_modules yang akan berisi paket-paket dependency javascript yang bisa dipakai.

    Sekarang, buat file bernama gulpfile.js, file ini nantinya akan berisi workflow atau alur kerja yang akan kita set. Selanjutnya kita akan membuat task pertama untuk keperluan kompilasi file Less menjadi CSS.

    Kompilasi file Less

    Wait, kenapa harus Less? personal choice sih, tapi prinsipnya akan sama saja dengan SASS.

    Pertama, install dulu plugin gulp-less

    $ npm install gulp-less

    Setelah selesai, buka file gulpfile.js tadi, lalu masukkan code berikut.

    var gulp = require( "gulp" );
    var less = require( "gulp-less" );
    
    gulp.task("styles", function(){
         gulp.src( "src/less/*.less" )
                   .pipe( less() )
                   .pipe( gulp.dest( "dist" ) )
    });

    Kode diatas adalah contoh task sederhana untuk kebutuhan kompilasi file less. Berikut penjelasan masing-masing kode.

    var gulp = require( "gulp" );
    var less = require( "gulp-less" );

    kode ini bertujuan untuk me-load pake dependency dari folder node_modules tadi, lalu di assign ke variable masing-masing.

    gulp.task("styles", function(){
         ....
    )}

    kode ini untuk menyatakan sebuah task yang akan dieksekusi oleh gulp, “styles” adalah nama task nya.

    gulp.src( "src/less/*.less" )

    Kode ini untuk mencari file berekstensi .less di dalam folder src/less/. jadi file less apapun dalam folder ini akan di kompile.

    .pipe( less() )

    .pipe()   disini akan melanjutkan hasil dari kode sebelumnya, kalau kode sebelumnya adalah mencari file less, setelah ketemu akan menjalankan .pipe() ini, pipe ini sendiri disini menjalankan method less() yang berasal dari plugin gulp-less dan kita assign ke variable less. (var less diatas tadi, dipanggil dengan less(), got it?).

    .pipe( gulp.dest( "dist" ) )

    Oke lanjut, kita ‘pipe‘ lagi ke alur berikutnya, kali ini kita menggunakan gulp.dest() yang merupakan perintah untuk mengeluarkan output dari hasil less() tadi ke dalam folder “dist“.  Sampai sini task “styles” telah berakhir.

    So, lets recap, gulp task “styles” akan mencari file .less didalam folder /src/less/ lalu kemudian menjalankan plugin less() dan kemudian output nya dikeluarkan di folder “dist“.

    Oke, sekarang kita akan coba menjalankan task ini. Seperti yang kita sudah buat di gulpfile.js tadi, berarti paling tidak kita butuh 2 folder. folder pertama adalah src/less/ dan folder kedua adalah dist.

    Wait, kenapa src/less dan dist ?

    Lagi, ini adalah personal choice dari saya. saya biasanya membuat 2 folder utama untuk setiap project, src akan berisi file source untuk development. biasanya didalamnya akan ada folder less, js, scss, jade ataupun file source lain yang dipakai untuk keperluan developer.

    Lalu folder kedua adalah dist, dimana folder ini adalah untuk dibagikan (distribution) kepada enduser atau orang lain yang tinggal pakai, gak perlu kompilasi dan lain-lain. Biasa disebut file production.

    Tentu saja, kamu bisa pakai struktur folder sesuai selera, tinggal sesuaiin aja path yang ada didalam task tadi.

    Oke, balik ke less tadi, sekarang kamu bisa testing buat file less buat dikompilasi dengan menggunakan gulp. Saya gak akan menjelaskan untuk dan apa itu less kali ini, so kamu bisa lihat http://lesscss.org atau yaudah deh, kamu bisa download contoh file less sederhana di sini.

    Simpan file less tadi di folder src/less, setelah itu kembali ke command line, sekarang kamu bisa menjalankan perintah

    $ gulp styles

    Akan muncul sedikit keterangan bahwa task sudah berhasil dijalankan, dan jika kamu check di folder dist mu, akan muncul file css baru sesuai nama file less tadi.

    Oke, cukup, kalau kamu gagal, tidak menemukan file css hasil kompilasi di folder dist mu, maka kamu harus berhenti disini, dan check ulang keatas untuk melihat apa yang terlewat.

    Minify file CSS

    Kalau task styles mu sukses dan menghasil file CSS di folder dist, maka selanjutnya kita akan mencoba menambah ‘pipe‘ baru untuk lebih mengoptimalkan CSS yang akan di generate. Kita akan menambahkan minify.

    Minify adalah mmm masa kamu gak tau sih, itu versi mini dari file source code, biasanya dengan membuang karakter yang gak perlu (seperti spasi dan line break atau ‘enter’) atau juga komentar. Hasilnya, akan membuat file lebih kecil dan ringan untuk di load di website mu.

    Pertama install plugin (lagi) gulp-cssmin.

    $ npm install gulp-cssmin

    Setelah itu, kita load di gulpfile.js sama seperti sebelumnya.

    var cssmin = require( "gulp-cssmin" );

    Oke, lalu kita tambahkan ‘pipe‘ baru kedalam task styles tadi, sehingga task styles tadi akan menjadi seperti ini.

    gulp.task("styles", function(){
    
         gulp.src( "src/less/*.less" )
                   .pipe( less() )
                   .pipe( cssmin() )
                   .pipe( gulp.dest( "dist" ) )
    });

    Jadi setelah dikompilasi menggunakan less() akan di lanjutkan dengan cssmin() sebelum  menuju pipe terakhir. Jika sudah, kamu bisa coba lagi dengan menjalan  gulp styles  lagi di command line mu, dan kali ini isi file CSS didalam folder dist mu akan terlihat lebih ‘semrawut’ 😀 dan file size nya harusnya menjadi lebih kecil dari sebelumnya 😉

    Concat Javascript

    Saya gak ketemu bahasa indonesia yang lebih tepat dari concat / concatenation, prinsipnya adalah menyambungkan beberapa hal menjadi satu kesatuan secara berurutan, dalam hal ini kode javascript.

    Ok, kembali ke command line untuk install plugin gulp-concat

    $ npm install gulp-concat

    Setelah terinstall, seperti sebelumnya, kita load dengan menggunakan require.

    var concat = require( "gulp-concat" )

    Lalu kita akan buat task untuk concat ini dengan nama “scripts“.

    gulp.task( "scripts", function () {
        gulp.src( [
                      "src/js/satu.js",
                      "src/js/dua.js"
                  ] )
            .pipe( concat( "scripts.js" ) )
            .pipe( gulp.dest( "dist" ) );
    } )

    Sedikit berbeda dari sebelumnya, plugin concat bisa menggunakan lebih dari 1 source ( kalau cuma 1 source, gak perlu di concat lah 😀 ). File yang akan di concat, dimasukkan kedalam gulp.src sesuai urutan kebutuhannya.

    Lalu, kita akan melakukan concat dengan perintah concat(xx) dimana xx adalah nama file output yang diinginkan, saya memberi nama “scripts.js“.

    Dan seperti sebelumnya, task diakhiri dengan “pipegulp.dest ke folder “dist”.

    Berikutnya, untuk nyobain, buat dulu file satu.js dan dua.js di folder src/js, isi dengan sample code javascript mu, jika sudah cobain jalankan di command line mu.

    $ gulp scripts

    Setelah itu sekarang mestinya di folder dist mu, bakal ada file scripts.js yang merupakan gabungan dari satu.js dan dua.js.

    Tinggal masukin jquery dan pluginnya ( eh masih pake jQuery? 😀 ) di folder src/js mu lalu di concat jadi 1 file compact + kamu bisa minify dengan https://www.npmjs.com/package/gulp-uglify supaya tetep mini.

    Gulp Watch

    Kalau kamu perhatikan, maka kita akan menjalankan gulp styles dan gulp scripts untuk setiap kompilasi ataupun concat yang mana ini bakal ribet, nah sebagai automator tool mestinya ini berjalan secara otomatis, oleh karena itu, ada yang namanya gulp watch. Gulp watch adalah fitur untuk membuat gulp selalu melihat perubahan file secara real time ketika ada perubahan file (menyimpan, menghapus atau mengganti file).

    Oke sekarang kita akan buat task bernama “default” dengan kode sebagai berikut

    gulp.task( "default", [
        "styles",
        "scripts"
    ], function () {
        gulp.watch(
            "src/less/*.less", [ "styles" ]
        );
     
        gulp.watch(
            "src/js/*.js", [ "scripts" ]
        );
    } )
    

    Kode diawali dengan

    gulp.task( "default", [     
    "styles",     
    "scripts" 
    ], function () {
     .. 
    })

    Kode tersebut untuk menset task default, agar ketika gulp default di jalankan, lakukan juga task styles dan scripts.

    Lalu berikutnya di dalam function, ada gulp watch.

        gulp.watch(
            "src/less/*.less", [ "styles" ]
        );
     
        gulp.watch(
            "src/js/*.js", [ "scripts" ]
        );

    Sampai disini mestinya kamu sudah familiar dengan ini, intinya gulp akan melihat 2 tipe file, less di folder src/less dan js di folder src/js lalu menjalankan task styles dan scripts.

    Cukup sampai disitu, sekarang kamu bisa mencoba menjalankan gulp di command line

    $ gulp

    gitu doang?

    Yep, tidak seperti sebelumnya, dimana kamu mesti memasukkan nama task setelah perintah gulp (contoh: gulp styles, atau gulp scripts) kamu cukup masukkan gulp dan gulp akan secara otomatis mencari task yang bernama “default“.

    Lalu gulp akan berjalan tapi tidak seperti sebelumnya, gulp gak akan berhenti, gulp bakal tetep running sambil nunggu ada perubahan di file less dan js. Setelah itu kamu bakal bisa editing file less dan js seperti biasa dan gulp akan mengurus untuk kompilasi dan concat mu.

    Oke itu tadi contoh sederhana penggunaan gulp, kalau kamu main-main ke npmjs.org dan search gulp maka akan ketemu banyak plugin yang bisa kamu pakai dan kreasikan sesuai kebutuhan. Contoh keren plugin gulp lainnya seperti :

    • gulp-git, buat berinteraksi dengan git.
    • gulp-image, buat optimasi images, jadi file-file gambar akan di minify supaya lebih kecil ukuran file nya.
    • gulp-ftp, buat otomatis upload file ke server ketika menyimpan file,
    • gulp-livereload, supaya setiap menyimpan file, browser mu langsung refresh
    • tentu saja, gulp-sass, buat kompilasi file sass

    Dan masih banyak plugin gulp lainnya yang bisa di kreasikan untuk membuat development menjadi lebih terotomatisasi.

    File gulpfile.js diatas bisa dilihat versi komplit nya disini.

  • Pengalaman saya bekerja pada digital creative agency lokal

    Sebenarnya saya agak bingung apa sebutan yang lebih tepat untuk “mereka” ini. Beberapa menyebut digital agency, atau juga creative agency, atau digital marketing agency, atau lainnya, tapi setidaknya semua punya kesamaan, kalau di googling “digital agency” pada muncul semua 🙂 Ceritanya selama periode 2012 – 2015 lalu, saya bekerja sebagai…

    selanjutnya

    Sebenarnya saya agak bingung apa sebutan yang lebih tepat untuk “mereka” ini. Beberapa menyebut digital agency, atau juga creative agency, atau digital marketing agency, atau lainnya, tapi setidaknya semua punya kesamaan, kalau di googling “digital agency” pada muncul semua 🙂

    Ceritanya selama periode 2012 – 2015 lalu, saya bekerja sebagai web developer pada salah satu software house yang mana kami menjadi vendor untuk beberapa digital agency. Kebanyakan projek yang dikerjakan adalah membangun aplikasi website yang tujuannya untuk mempromosikan brand, produk, ataupun kegiatan dari brand-brand terkemuka di Indonesia.

    Baca juga:


    It’s Fun!

    Sebagai programmer, bekerja dengan creative agency itu “sedikit menyenangkan”, kalau kamu biasa bekerja untuk membuat aplikasi yang sifatnya seperti database, sistem informasi, atau sekedar web profile sederhana, maka projek dari digital agency ini biasanya lebih segar dan menyenangkan, selalu ada new challenge di setiap projek, kebanyakan berupa mini-gamification memanfaatkan social media, misal : saya pernah dapet projek bikin ‘lomba-lari-berwarna’ virtual dimana kamu akan berlomba lari dengan orang lain, nah gimana caranya kamu bisa lari? dengan ngetwit dengan hashtags yang sudah di set, jadi semakin banyak kamu ngetwit,  karakter kamu larinya bakal makin kenceng! seru!

    Termasuk juga design yang dikerjakan, karena sifatnya advertisement, kebanyakan website-website yang di handle punya design yang unik dan keren gak monoton, jadi seger deh ngerjainnya.

    Banyak pelajaran 

    Pernah suatu ketika dapat projek yang luar biasa nge-hits, dalam 1 hari bisa sampai 100.000 entry data masuk! dalam 2 minggu projek berjalan, ada 2 juta lebih data yang masuk dan MySql pun sampe agak ngos-ngos-san, fiuh. Pernah juga dapet projek ‘jual-cepat’ salah satu provider smartphone di indonesia, yang mana target nya dalam seminggu ada sekitar 2000 calon pembeli, tapi ternyata setelah masuk TV nasional dan di promoin oleh Raffi Ahmad, Boom, hari pertama langsung ada sekitar 3000an orang yang daftar! data membludak, gak sedikit yang komplain website nya down.

    Dari sini saya dan tim belajar untuk manajemen lompatan visitor yang tiba-tiba membludak, menangani data yang super besar, ada banyak hal teknis dan non teknis yang bisa di ambil pelajaran dari setiap project. Hal kecil bisa menjadi masalah yang akan jadi bumerang dan menyerang brand yang kami handle (dan itu bahaya bro, bisa gak dibayar, atau malah di blacklist :D).

    Yang gak enak

    Oke, cukup yang seger dan enak-enak nya. Bekerja dengan digital agency itu cukup lumayan menyita waktu hidup. Saya yang hanya sebagai vendor pun ikut merasakan, dimana deadline yang kadang begitu mepet, atau tengah malam masih on project, dan hal-hal lain yang bikin cukup illfeel.

    Pernah suatu ketika dapet project yang mesti selesai dalam waktu 3 hari! belum cukup? 3 hari itu adalah jumat, sabtu, minggu, dan senin pagi sudah mesti launch. fuuuu. Anak agensi pasti menganggap saya cupu, saya sudah sering dapet email revisi lewat dari jam 11 malam bukan cuma di hari kerja, jadi masa baru gitu sudah ngeluh, iya lah, problem nya adalah kerja ala agency super, bayaran ala software house kecil-kecilan. *oke ini di luar konteks 😀

    Kadang juga kerjaan yang di dapet bertubi-tubi, di satu sisi bersyukur karena dapet projekan baru, di sisi lain mikir, lha yang kemarin aja belum kelar. Sering 1 orang menghandle 3-4 project barengan, dan masih mending kalau pada mau antri yang tertib, kebanyakan kasus pada gak mau antri, semua mau barengan. Seringkali, sambil nunggu uploading 1 project, switch ngerjain projek lain. Sekali lagi, para anak agensi pasti bakal bilang cupu, karena saya sering denger kebanyakan mereka ngerjain 5-6 project barengan dalam 1 waktu. *atau itu hanya mitos senior saya!

    Kesimpulan

    Dari hampir 3 tahun saya bekerja dengan digital agency, menangani brand-brand besar di Indonesia, rasanya itu menyenangkan, banyak hal baru yang terus di dapet, level kreatifitas ikut naik walaupun kebagian kerja cuma koding. Tapi ya gitu, overwork jadi sudah biasa, kamu mesti bener-bener serius dalam menjaga kesehatan.

  • Chrome Dev Summit 2015

    Kalau kamu subscribe berita-berita web teknologi, kamu pasti tau hari ini adalah hari dimana google chrome mengadakan event Chrome Dev Summit.

    selanjutnya

    Kalau kamu subscribe berita-berita web teknologi, kamu pasti tau hari ini adalah hari dimana google chrome mengadakan event Chrome Dev Summit.

    (lebih…)

  • Referensi belajar javascript di Github

    Referensi belajar javascript di Github

    Beberapa tahun belakangan teknologi javascript makin beragam dan semakin luas penggunaannya bukan cuma dalam pengembangan website atau sekedar pemanis tampilan. Ada NodeJS dengan NPM nya bener-bener membantu web developer untuk mencari library, framework atau sekedar tools untuk pengembangan web, rasanya mau kebutuhan apapun ada versi JS nya yang siap digunakan. Bahkan…

    selanjutnya

    Beberapa tahun belakangan teknologi javascript makin beragam dan semakin luas penggunaannya bukan cuma dalam pengembangan website atau sekedar pemanis tampilan.

    Ada NodeJS dengan NPM nya bener-bener membantu web developer untuk mencari library, framework atau sekedar tools untuk pengembangan web, rasanya mau kebutuhan apapun ada versi JS nya yang siap digunakan. Bahkan disini kamu bisa lihat ada package JS buat install linux.

    https://twitter.com/sadserver/status/642111917163724800

    Saya sendiri setelah menggunakan PHP sepanjang masa kerja, sudah sampai di titik dimana rasanya sudah “cukup”, Laravel dan WordPress sudah cukup untuk berbagai macam kebutuhan dan semuanya sudah serba gampang.

    Saat ini saya lagi dalam masa “belajar-js-lebih-detail” setelah beberapa kesempatan menggunakan beberapa framework library seperti AngularJS baik untuk standalone app, atau pun dengan menggunakan tools lain seperti IonicJS  untuk keperluan pembuatan aplikasi mobile sederhana, saat ini juga lagi in progress pengenalan dengan meteorJs, framework JS yang menarik menurut saya, karena sifatnya fullstack JS, full Javascript dari sisi server dan client.

    Untuk itu, saya ngumpulin beberapa link penting yang dibutuhkan untuk mengenal lebih dalam trend JS saat ini. Link-link berikut adalah link menuju beberapa repository yang ada Github yang penting banget buat di watch. Kelebihan dari repository yang ada di list ini adalah sering di update, baik penambahan konten atau pun diperbaiki oleh banyak orang. Jadi harusnya sih lebih update dan terjamin.

    Awesome Javascript

    Pertama rasanya penting untuk bookmark atau set “watching” github repo satu ini, ada banyak tools lengkap disini mulai dari Package manager, UI development, testing dan lain-lain.

    Airbnb Javascript Style Guide

    Repository dari airbnb ini bagus banget buat kamu yang mau koding Javascript secara lebih profesional. Mereka ngebuat atau lebih tepatnya mengkoleksi tips dan “rule” gimana sih nulis Javascript Code yang baik dan rapi. Kontributor repository nya juga banyak jadi ini bukan sekedar styleguide Airbnb saja.

    AngularJS Style Guide

    Sama, ini juga style guide, alias panduan menulis yang baik dan rapi, khusus untuk AngularJs. Gak ada alasan pasti sih kenapa mesti ngikutin repository dari orang ini, tapi list nya sangat lengkap dan ada banyak kontributor nya jadi ya mestinya gak sembarangan

    Essentials Javascript Links

    Ini hampir sama sih dengan awesome javascript di atas, bedanya ini di kelola oleh Eric Elliott, penulis buku-buku javascript dan salah satu orang keren di dunia Javascript. Di repository ini juga ada banyak referensi buku-buku javascript.

    Gitbook Javascript

    Ini semacam ebook untuk belajar javascript dari Gitbook yang bisa di baca online dan gratis. Pembahasannya dasar-dasar pemrograman javascript, macam variabel, loop, condition, function, object, pokoknya lebih kearah level programmer pemula.

    You Don’t Know JS

    Kalau ini kumpulan serial ebook dari getify. Saat ini sih ada 5 ebook yang bisa di baca secara gratis via online. Level bacaannya juga sudah level mediocore jadi kalau belum terbiasa dengan istilah-istilah di javascript bakal sedikit bingung.

    Bonus : jstherightway

    Ini bukan di github sih, tapi bagus juga ini koleksi link dan tutorial nya buat yang pengen lebih banyak referensi bacaan seputar javascript. Di koleksi ini juga terdapat koleksi podcast, ada juga orang-orang yang “harus” kamu follow di dunia javascript.

    Bonus : Javascript.com

    Bonus lagi, rasanya gak lengkap aja kalau bahas referensi belajar Javascript tanpa membawa web ini,  disini kamu bakal belajar Javascript secara interaktif langsung di browser, dan juga ada newsletter yang berisi berita, tips, tutorial seputar Javascript yang sangat update sekali. Sayang banget kalau ketinggalan info disini.

    Pastinya ada lebih banyak lagi link referensi belajar javascript dari google, seperti codecademy ataupun website elearning lainnya, jadi rasanya gak akan kehabisan bahan untuk di pelajari. Tinggal nunggu produk nya saja 🙂