It’s awesome to be a young student and learn a lot of cool stuff about programming. It is even better to have the opportunity to learn in a big company, with a lot of senior programmers who can answer all of your questions.
This is what we intended to do with the first version of Emag’s Internship Program. We selected 16 students out of 800 applicants and created 4 technical teams. Then we gave each team a project to work on for 2 months. We used SCRUM as a management tool and we divided the period in 4 sprints.
I had the great opportunity to be the mentor of one of these teams. My role was a mix of program organizer, technical team leader, scrum master, product owner and of course teacher. As a teacher, I didn’t offer them lessons on how to do different things. I believe a lot in self learning, so I empowered them with directions where they can find solutions to every problem they had.
Here are some things I have learned from them:
to have success on a big project, you need to first focus on the team. People need to be open, available for any questions and to offer help, befriend the other team members. Honesty is a key part of the success of a team. I periodically held one on one meetings with all of them to check their expectations, their problems, their ideas, how they work with each other.
you need diversity in a team. The best ideas that were born inside the team were from conflicts between different personalities. If everyone is open to different ideas, this can lead to better ideas, thus a better product.
When learning a new programming language, you need to take it one step at a time. It’s better to learn how to code in a new language then jump directly on a framework, because you understand really better the though process behind that language.
When developing a large project, with several people, you need a management process in place. Scrum was great for us because it allowed us to discuss every day and see where we are in the development of the project. Also it allowed us to see who is overwhelmed by work and to distribute resources in that direction (i.e if someone had too much work, someone else jumped in and helped him).
New technologies are best learned if you can test them while learning. They had to learn a lot of new technologies in very little time. Were they to read a 600 pages book before jumping into code, that would have slowed their process. However, after learning the basics, they directly started to code and learn along the way, easing their learning process and discovering problems they never though would appear.
The product they have been working on is simply called Product Matching and it’s objective is to match the documentation of several different products and decide which ones are identical.
Here is what my team thinks of the Internship program:
Silviu Andrei Dragnea (Faculty of Computer Science from the Polytechnic University of Bucharest)
“The first day at eMAG was very exciting, given the fact that the company’s headquarters were presented to us and eMAG overall and how each department contributes to offering quality services to its clients. So far I got used with the project that I would have to develop together with my coworkers. . Although initially everything seemed really crazy, now things are clearer. George Olah was there for us from the first day and he made sure that we would stop being shy towards each other and towards him. He helped us integrate in the eMAG team.”
Daria Nedelcu (UPB Faculty, Computer Science)
“This internship program is my first work experience in an organized environment and it is very enjoyable and fun. So far we have learned how to use many new technologies and how to integrate them into our project,t Product Matching, which I find very interesting and complex. EMAG team is very friendly and willing to help us and teach us new things, for which we are all grateful.”
Adriana Ancuta (Faculty of Cybernetics, Statistics and Informatics, ASE)
“I applied for this program looking for a challenge and I can say that so far my expectations have been met. I had the opportunity to supplement my knowledge in practice, and to use technology completely new to me and learn about which steps to take to develop a project. I came into contact with well trained and interested IT people, from which I’m learning something every day.”
Dragos Alexandru Mincu (Politehnica University of Bucharest)
“In the first weeks of this internship I had the opportunity to get familiar with PHP syntax, with specific NoSQL database Apache Solr, with Solarium library that integrates them both. My mentor, George Olah, is a person with good experience in PHP programming and web development. One thing I appreciate is that he built his professional skills by learning and working on his own projects. People who work at eMAG are sociable and a good company for your free time.”
Popularity: 21% [?]
Romania (and the world) faces today a crisis on tech development workforce. There are more jobs than programmers. These leads to senior developers receiving a lot of emails with job opportunities, many of those being ignored.
I decided to write this article based on my own reflections on this problem. I am receiving every week several offers from companies in and outside Romania. I’ve seen several patterns on this offers, both good and bad. I warn you from the start, this article is a subjective view on the problem, based on my own experience. It might or might not be true for others.
Talent in a technology company is very important. In programming, we call talented people senior developers/rockstars/gurus/hackers. These are the guys that besides coding anything you give them, have the vision on how your software should be expanded in the future and architect it for further development and scalability.
These people are hunted by a lot of companies and receive a lot of offers. They never have to worry about losing their job or finding a new one. While they work for a company, they receive a lot of offers from others. But most of these fail because their offers are not attractive. More than that, most of the offers look the same.
Below is a list of things I think would trigger a senior developer to become interested in your company. They would work for me.
1) Be interesting
If your company, culture and projects are not interesting, then whatever you do, it will fail.
Why is your company better than others? Why should I work for you and not your competition? Work on this. Think what would trigger developers creativity and productivity. Most good programmers like to work in challenging projects, taking them from the very beginning to scaling them to millions of users.
2) The office as a home
We love flexibility. Some of us work best from 7 am, others wake up at 1pm and start to work at 4pm. Offer us flexibility in schedule and an attractive office where we would love to spend our time.
Personally,I love the comfort of my house. During the summer, I like to be able to take my laptop outside and work from my patio, feeling the warm breeze of the air and hearing the music sang by the birds. I like to take short breaks and lay down on my rocker.
If you are a startup, don’t rent an apartment. Rent a house. Have beds, rooms, a yard where people can take a short break. Think of the days when you will need your team to stay over the schedule and work on the project. We don’t mind staying more if needed, but we do if we don’t feel like at home.
We spend the entire day at your office. Make it a loveable place. Make it feel like home. You will see how our productivity raises.
3) Make us feel important
We are not robots. Don’t act like we would be. We are intelligent and creative people who can come up with solutions to problems that people don’t even see yet.
When you tell us about your projects and explain the role we will take, make sure you explain how important these roles are for you, the company and us. This will make us responsabile and let us understand that our talent will be used for something important.
4) Have a Team page on your website
and create a custom profile for each member of your team. Show the world how important everyone is. Then, after we will help your company get big, we will be proud to show our friends that we’re part of that. It’s simple for you to do that page, but once we get the feeling to be part of something big and the world can see that, well…we will really be part of it. There will be very few chances that other companies will attract us.
5) Linkedin – don’t send email templates
If you approach us with an email template, changing only our name (like most newsletter system do), we will think you are cheap and treat your email as spam. If you don’t take the time to write us a specific email and do your research about us before contacting, then we won’t take the time to reply. Write a short email, telling us where you found out about us and what opportunity you are offering. Use one sentence for each. Make us feel important and show us why we are a great fit for your project.
6) Be careful on calls
Some developers don’t like to be called directly, without any other introduction. Others will only respond to your calls because they are too busy or to lazy to write emails. However, when you call, make sure they understand from what company you are calling. In 95% of the calls I receive I need to ask again what company contacts me because the operator skips very fast over this important detail.
7) LinkedIn – Use InMail, don’t add us as friends
Again, like stated in point 6, don’t be cheap. We will make a false (or true) impression on you. When you add us as friends, we will think that you’ve added a lot of other developers and are not interested in who replies. That’s called spam. Spend those few cents to reach us because we will consider you really wanted to contact us. I know a lot of my friends who reply only to InMail and ignore all friend requests from HR.
8 ) Be serious
Once I’ve replied to your email, set up a discussion as soon as possible. Don’t let time pass by. I will get less interested by your offer and consider you unserious. You don’t want to disappoint the people you want to recruit. Set up the discussion in 2-3 days, not 2 weeks.
9) Offer competitive benefits
You want to recruit someone that is contacted by a lot of companies? Well, you need to be different. Just writing in your job description that you offer a competitive salary package won’t work. Especially if that competitive salary is exactly like the one offered by all the companies.
Benefits include the working environment, company culture, break & free time opportunities.
Startups have an ace in their hands above all established companies, of which i will talk about in the next point.
10) Startups – Talented people are your investors
In a startup, talent is extremely important. In the seed and angel stage, the investors look mostly at your team. They want to know that you have the talent to make your dream possible. But talented people are also investors in your company. They trade their time and talent, the safety of a job at a big company for your dream. They believe in you and your dream and are offering to help achieve it. They become “smaller” company founders and as a consequence are offered stock options. These are worth 0 in the beginning, but can be worth billions. What gets them there is execution. And you can not execute great without an amazing team. That’s why you should treat your team members as investors. They don’t offer you money, but are offering something thats worth the same as money.
Recruiting developers is a hard job today if you are making something normal. Work hard, offer extraordinary conditions and challenging projects, be different and you will become a magnet for both developers and clients. Stay unique!
What other tips for recruitment would you add to the above list? Write them in the comments.
Popularity: 13% [?]
București. Trafic. Haos. Mașinile goneau nebune, întrecându-se una pe cealaltă într-o cursă grăbită spre nicăieri. Șoferul uitase tot. Știa doar că trebuie să ajungă la timp la serviciu sau va avea de îndurat repercusiunile: privirea dușmănoasă a colegilor și mustrarea șefului. Făcea totul pentru a ajunge cât mai repede. Depășea ilegal, trecea pe roșu. În trafic erau doar el și ceilalți, o masă amorfă de oameni al căror unic scop era să îl încurce. Îi stăteau în cale, așa că nu se sfia să îi injure și să îi ponegrească.
Uitase tot: cine e, de unde vine, încotro se îndreaptă. Era doar acest război nevăzut între el și ceilalți tăntălăi care îi stăteau în cale. Un haos nesfârșit îl despărțea de destinație. Se întrebă cât trebuie să mai îndure situația asta, și pentru o clipă se gândi cât de bine ar fi să nu se afle aici, să fie într-un loc liniștit, ferit de grija zilei de mâine. Se gândi apoi la familie, la soție și copii. Aveau nevoie de el, era firesc să muncească pentru a-și întreține familia. Trebuia să le ofere copiilor tot ceea ce aveau nevoie. Așa că nu putea pleca de aici, trebuia să meargă zilnic la muncă și să le aducă pâinea pe care o vor mânca împreună seara. Se gândi apoi cât de puțin timp petrecea cu ei. Ajungea acasă în fiecare seară după ora opt. Cel mic adormea mereu obosit fără să își vadă tatăl. Petreceau puțin timp împreună în weekend, dar atunci parcă treburile casei erau din ce în ce mai multe, iar cele două zile treceau prea repede. Apoi din nou o săptămână de muncă și un alt weekend care se termina prea repede. Un cerc vicios din care nu putea ieși. O cușcă.
Într-un alt colț de țară, într-un cătun uitat de lume, o bătrână își spunea pentru ultima oară rugăciunile de seară. Își îndreptă privirea spre icoană, privindu-l ochi în ochi pe Dumnezeu. Nu mulți aveau tăria să facă asta. Dar ea știa că e curată, că a trăit o viață frumoasă, că a căutat mereu să nu supere pe nimeni și că a trăit ca și cum Dumnezeu ar fi fost lângă ea mereu. Era fericită. Avea trei copii, patru nepoți și de curând aceștia îi dăruiseră strănepoți. O familie numeroasă, pe care o aștepta să vină de prin țară, ca să le ofere dragostea ei și să îi încarce cu acea bucurie și liniște pe care nu o puteau găsi în mijlocul orașului. Îi primea mereu cu brațele deschise, în coliba ei de lut pe care a construit-o cu propriile mâini. Le oferea totul. Era puțin, dar din acel puțin, copiii primeau binecuvântarea ei părintească. Câteva ouă, o găină, o bucată de slănină de la porcul pe care îl crescuse singură de-a lungul anului, un litru de pălincă făcută din prunele pe care le-a cules tot singură din grădină.
Nu avea mult. Primea o pensie mică de la stat, dar pe care o punea de-o parte, ajutându-i pe copii ori de câte ori aveau nevoie. Se gospodărea singură. Soțul îi murise, bolnav fiind, în urmă cu 22 de ani. De atunci avea singură grijă de gospodărie. Tăia lemne pentru foc, avea grijă de animale (acum îi mai rămăseseră doar găinile si un porc, înainte avea rațe, vaci), își creștea cu multă migală plantele în grădină. Era liniștită. Nu avea nicio grijă și primea fiecare zi ca de la Dumnezeu.
Era nelipsită de la Biserică. Se trezea in fiecare dimineață de duminică și sărbătoare și se pregătea ca o mireasă la cei 83 de ani ai ei pentru întâlnirea cu Mirele Hristos. Își lua cele mai bune haine, si după ce își făcea rânduiala de dimineață se îndrepta cu pași înceți, șchiopătați spre locul pe care îl iubea nespus și pentru care dădea ajutor de fiecare dată când putea. Părintele o recunoștea de la intrare. Nimeni nu avea mersul ei domol, încet, șchiopătat. Era unic. O asculta cum se îndreaptă spre altar cu lumânarea și cu pomelnicul în mână. Toți copiii, nepoții, strănepoții erau trecuți pe el. Erau nelipsiți din gândul și rugăciunea ei. Atunci când putea, aducea cu ea și o mică prescură, pregătită cu truda mâinilor ei. Împletea mereu rugăciunea cu lucrul. Nu era nicio seară și nicio dimineață pe care să nu o încheie cu rugăciuni pentru ea si pentru toți cei dragi ai ei.
Se bucura nespus atunci când o vizitau copiii, și era foarte fericită pentru că fiecare avea familia si casa lui. Zicea mereu că acestea sunt singurele lucruri de care aveau nevoie. În viață îți ajung dragostea familiei și un acoperiș unde să păstrezi această dragoste.
Acum își făcea ultimele rugăciuni de seară. Era în spital. În urmă cu câteva zile se îmbolnăvise de aprindere de plămâni. Medicii au tratat-o cum au putut, iar acum se simțea mai bine. Spera ca într-o zi sau două să o lase să plece acasă. Se aștepta totuși și la ce era mai rău. Era mereu pregătită. Își trăise ultimii ani din viață ca o pustnică în mica ei colibă unde locuiau doar ea și Dumnezeu. Îi învățase pe copii să aibă grijă de înmormântarea ei și să fie alături unul de celălalt atunci când nu va mai fi. Să nu se dușmănească, să nu se certe pentru avere, să fie frați în continuare și să rămână mereu o familie.
A doua zi dimineață, bunica s-a trezit, a mers la baie, s-a spălat, s-a pieptănat, și-a spus rugăciunile, a mâncat, s-a odihnit, apoi a plecat. Spre Dumnezeu.
În oraș, lumea se grăbea în continuare spre nicăieri. Nimeni nu avea timp să se gândească la viață, la moarte, la fericire sau la mântuire.
Te vom iubi mereu bunico, și vei rămâne în inimile noastre întotdeauna. Să te rogi pentru noi de acolo de unde ești, așa cum te-ai rugat și de aici!
Popularity: 14% [?]
Today at work i run into a limitation. Doing a GROUP_CONCAT on some categories, I saw the function didn’t return all the results. The reason was that it truncated a part of them.
GROUP_CONCAT() has a default limit of 1024 chars. You can see the current limit using:
show variables like '%group_concat%'
and it can be modified using:
set group_concat_max_len=<new limit>;
where <new limit> is numeric like 10000.
Hope this may help someone.
Popularity: 100% [?]
As we move deeper in the age of social networks, a new shopping experience takes shape: social shopping. Shopping with your friends has always been a fun way to engage in actions with them and do things together, but can this experience be moved online ? Can you enjoy online shopping, from the front of your pc as much as real-life shopping where you see your friends face, expression, smile? While this is a matter that we can not prove yet (maybe until we will have virtual reality or shopping inside applications such as Second Life or IMVU), we can definitly create a fun and helpful experience for customers. It has been shown several times that people tend to ask questions about products in social networks (such as Facebook or Twitter) before they buy and they base their decisions on their friends opinions.
In this article I will talk about ways in which we can use social elements inside the shops we create. I will cover aspects such as why are these elements important and about a mindset that we need to have when we introduce them: where can we use Facebook comments to increase sales, what should we let visitors tweet about, etc. The article will not include how-to aspects because the Internet is already full of these and a simple search on Google can reveal them.
So what is social shopping? Social shopping is a new method that uses the power of social networks to aid the customers with the ability to communicate online with their friends about the products they want to buy. To understand why this is important, let’s see some statistics:
- 32% of consumers think better of a brand or product that has been recommended1
- 46% of online shoppers are undecided what they want to purchase online1
- 90% of consumers online trust recommendations from people they know; 70% trust opinions of unknown users2
- When asked what sources “influence your decision to use or not use a particular company, brand or product” 71% claim reviews from family members or friends exert a “great deal” or “fair amount” of influence.3
- 83% of online shoppers said they are interested in sharing information about their purchases with people they know, while 74 percent are influenced by the opinions of others in their decision to buy the product in the first place.4
- 81% of respondents said they`d received advice from friends and followers relating to a product purchase through a social site; 74% of those who received such advice found it to be influential in their decision.5
- Facebook and Twitter users spend 1.5x more online than the average shopper6
- About 29% of respondents aged 18-34 said they have discovered a product or service through a social network.7
1 http://www.immediatefuture.co.uk Accessed at Oct 17, 2010
2 http://econsultancy.com Accessed at Oct 17, 2010
3 Harris Interactive, June 2010
4 http://www.managesmarter.com Accessed at Oct 17, 2010
5 http://www.clickz.com Accessed at Oct 17, 2010
6 http://www.briansolis.com Accessed at Oct 17, 2010
7 http://www.atg.com Accessed at Jan 21, 2011
Using social elements in the right place can help us convert visitors into customers. Let’s see some examples.
Facebook and social shopping
Facebook is one of the best tools for social shopping. You can use the Like button to gain fidelity from users and later inform them about discounts or offers, post to their wall, invite their friends to join shopping and get discounts together. All of these are simple to implement and Facebook Developers section covers them in detail.
You can also implement the shops you create directly in Facebook using Canvas. This way you will pass over the border between shops and the social network as you will allow users to shop directly from their favorite website. This has several benefits: it can be very user friendly as people will shop without leaving Facebook and it can gain trust from users because they already trust Facebook. This trust can be extended to some degree if you use Facebook Credits (however you need to play carefully with this, as Facebook takes a commission that not many of your clients will want to lose).
However you decide to implement these features, it is very important to keep in mind that you need to not be overwhelming and to plan very carefully every element. For example, it is good to have the Like button customized for each product and placed near the “Add to cart” button as this is a call to action that your client will want to do. Also, it would be a good idea to place a post to News Feed box under these where you will let the user ask his friends what they think about this product. We will probably show you how to implement this in a future article.
API Graph can help you learn more about customers without asking them to complete forms. The information you learn about them can be used later in newsletters or in personalizing their experience trough the shop. For example, if you learn that your customer is a woman of 36 years old you can recommend specific products for her which would be different from those shown to a man that is 57 years old.
A very important aspect that you should consider is letting users signup and login with Facebook. This would be a 2 click-steps, instead of completing a very long form. You can take the other information you need, such as shipping address or phone number in the Checkout step, when the user buys first.
All of these are cool, but the most important aspect of social shopping is perhaps the communication that increases sales and converts friends of customers into customers. Communication leads to trust, and opinions about products from real people and especially people that we know in real life increase conversions. This is why Comments provided by Facebook should have a central role in your ecommerce application.
Have you ever based your purchase on the reviews a product had? How important it is to know who wrote that review, if it is fake or real? Using Facebook Comments can help us in several ways:
- Facebook Comments show who wrote that review – you can see a few words about that person directly in the comments box or you can click on their picture and view their profile.
- Facebook orders comments by order of relevance for you. Comments are ordered to show users the most relevant comments from friends, friends of friends, and the most liked or active discussion threads, while comments marked as spam are hidden from view.
- You can reduce SPAM because writing comments/reviews is not public. Users need to signup to Facebook or to a 3rd party client such as Yahoo, AOL or Hotmail in order to write.
- You can administrate all of your comments directly from Facebook
- Facebook includes a basic grammar filter that:
- Fix common grammar mistakes (e.g. convert ‘dont’ to ‘don’t’)
- Facebook Comments are viral – every message users post is also shown in their News Feed – you can reach their friends and then their friends friends creating a viral loop that brings new customers for your clients.
- Trims extra whitespace
- Auto cases words (e.g. capitalize the first word of a sentence)
- Expands slang words (e.g. plz becomes please)
- Adds a space after punctuation (e.g. Hi,Cat would become Hi, Cat)
Maybe you are wondering why, as a developer, should you care about the number of customers your clients have or gets thanks to you? The answer is simple: because there are a lot of developers that do exactly what you do so you need to differentiate, to stay above. These social elements can help you achieve exactly that goal.
It is very easy to integrate Facebook Comments. While you can find the complete documentation athttp://developers.facebook.com/docs/reference/plugins/comments/ , i’d like to state that all you have to do is add a code that can be generated on that page:
<div></div><script src=”http://connect.facebook.net/en_US/all.js#appId=APP_ID&xfbml=1″></script><fb:comments href=”example.com” num_posts=”2″ width=”500″></fb:comments>
You will probably want to change:
a) appID to an application ID that you have registered on http://www.facebook.com/developers/createapp.php
b) href – to your page URL. This will be used in News Feed
c) num_posts – number of comments that will be shown
d) width – the width of the comments box
You can also use a programming language to dynamically change the href portion for every page.
Social shopping outside Facebook
Social shopping is not just for Facebook. Any social tool, such as Twitter or MySpace can be used to create something unique. However, you should keep in mind that all of these have something specific. Twitter is not a social network in the real sense of the word, but a news network. It is great thus to use it to inform people. Give valuable information to customers that they will want to share with their friends. Place Tweet buttons in your products page, in your wishlists (“I like these products from SHOPNAME: product1, product2, product3.”) and anywhere you can give users something valuable to share.
Create a points system based on actions users do in shops (reviews, adding products to wishlist, sharing with friends) and reward them with gifts or discounts.
It is also great to use tools others have created and decrease the time you spend coding your own. Addthis.com provides a wide list of networks where you can share information, while OpenInviter provides a huge lists of networks where you can send invitations to friends. Online shopping tools such as ShopSocial.ly or Squeeqly.com can add a plus of professionalism to the shops you create. ShopSocial.ly let’s your users discuss about products they like, while Squeeqly rewards customer with discounts for sharing their purchases on social networks.
In this article we have discussed about social shopping features that you can add to your shops and create unique ecommerce websites. In future articles we will discuss about the ways we can code these features in our applications.
Popularity: 18% [?]
Part of the Hotnews.ro/Euractiv.ro brands, Contributors is a free community of authors that want to share their experience and knowledge to readers and other collaborators.
Popularity: 22% [?]
BrandsAddict.ro is a fashion ecommerce websites where you can buy brand products with huge discounts, even up to 60-70% to products.
Popularity: 20% [?]
The Casidro projects consists of a database of over 2000 libraries from Romania. The module created for Bibnat.ro consists of an administration panel where they can manage all the libraries and where they can import new libraries from Excel files. In the frontend we have created a map with regions which brings you to lists of libraries from the corresponding regions when you click on them. There are also features such as search, edit, add and delete libraries.
Popularity: 20% [?]
Universal War is a science fiction browser game created between 2000 – 2004. The player becomes a commander of a planet and he needs to develop this planet to success by diplomacy, economy, politics, military actions and technological research.
Popularity: 18% [?]