Category: Idyllic Software

Improving the Customer Experience with iBeacon Technology


For the uninitiated, iBeacon is a communication protocol developed by Apple on top of Bluetooth Smart technology. It allows developers to create mobile apps aware of location context provided by beacons. And opens up a plethora of opportunities for businesses to improve the customer experience.

How does it work?

Leveraging Bluetooth Low Energy (BLE), a device with iBeacon technology (beacon), can be used to establish a region around an object.This allows an iOS device to determine when it has entered or left the region, along with the proximity. There are both hardware and software components to consider when using iBeacon technology.

Any compatible iOS device could act as an iBeacon. The list currently includes the following devices:

iPhone 4s or later
3rd generation iPad or later
iPad Mini or later
5th generation iPod touch or later

Beacons only broadcast their iBeacon ID. For the sake of energy efficiency, Bluetooth Smart Device requires data packets to be small. So you cannot put any additional content in there. Hence, the beacon is only a trigger. It’s the app that handles content and notifications.

While there are many beacon manufacturers available in the market, popular amongst them is Estimote Beacons.

Tracking My Dog using a Beacon

So I got hold of one of those, and thought let’s create an app which will help us in region tracking. So I’ve picked up a real problem that I face everyday. When I leave my dog outside or in the backyard for some time, he wanders away. So I used beacon to track the dog within a certain radius/geofence. Now the Beacon is a collar for my dog and my iOS device acts as the iBeacon. Once the dog crosses a certain area (backyard in this case), I would get an alert. So it’s time for me to run and get him back!

iBeacon entirely depends on CoreLocation framework of iOS. First of all, we need to set the Beacon for tracking so that iOS device can listen for this beacon only. Here’s how to do it –

    self.beaconManager.startMonitoring(for: CLBeaconRegion( proximityUUID: UUID(uuidString: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx”)!, major: xxxxx, minor: xxxxx, identifier: “monitored region”))

Here, beacon’s UUID, major and minor are provided by the manufacturer and we can change these values with a bit of help from the manufacturer.

Estimote has provided some key delegates which notify us on Enter/Exit.

  //MARK: Beacon Manager Delegates

    func beaconManager(_ manager: Any, didEnter region: CLBeaconRegion) {

        let notification = UILocalNotification()

        notification.soundName = “orion-19609.caf”

        notification.alertBody = “Remmy is nearby. No Worry!”



    func beaconManager(_ manager: Any, didExitRegion region: CLBeaconRegion) {

        let notification = UILocalNotification()

        notification.soundName = “Danger Alarm.caf”

        notification.alertBody = “Remmy is running out. Catch him!”



    func beaconManager(_ manager: Any, didFailWithError error: Error) {

        let notification = UILocalNotification()

        notification.alertBody = “\(error.localizedDescription)”



So, I have set two different sound alerts for Exit/Enter events. Voila!

The Advantages of iBeacon Technology

The best part of using beacons is the battery life is around 2 years. What’s more, for the iOS device, your app doesn’t need to be in foreground or background mode. The device always listens to BLE signals.

The frequency of the iBeacon transmission depends on the configuration and can be altered using device specific methods. Also, both the rate and the transmit power have an effect on the iBeacon’s battery life.

Of late, you have Android hardware manufacturers coming up with iBeacon support. Especially, Android 4.3+ devices with BluetoothLE can see surrounding beacons and Android 5.0+ devices can act as iBeacon device.

Finally, here’s a video to demonstrate iBeacon use cases and how retail stores can leverage this technology to improve the customer experience.

Give us shout if you would like some iOS development for your apps or products. Because at Idyllic, we are always up for a good challenge!

Choosing the Best Engagement Model for Software Development

Engagement Model eBook

Picking the right engagement model to work with your offshore partners is never an easy task. There is no “One Size Fits All” kind of a solution. You need to understand the existing engagement models in the market such as Fixed Bid and Time & Material. Weigh in the pros and cons of those models and see which one works for you better.

We have put together this eBook to give you some insights into how you can pick the right engagement model. Once you have a clear understanding of the models, you could get into a partnership that works for you as well as the service provider.

Fixed Bid Engagement Model

This is generally preferred by the customers. The maximum amount they would pay is set. In order to mitigate the risk, the service provider bumps up the estimate a little. So if the project is done in time, the service provider benefits. The mindset of the service provider is to get the project over and done with, as soon as possible. It is no longer about putting their best foot forward and delivering the best quality code. They will go only as far as it makes sense to get your sign-off.

Time & Material Engagement

This is of course loved by the service provider. They will keep building code and billing you until you have the money. If you have a large budget, they will keep going. Their monthly margins are now set and they do not have to worry.

As a customer, you will soon start to notice that you are burning cash. You are not getting as much value for the money you are spending. You could question them on speed and they will have all the right answers. The requirements changed or were underestimated. Something unknown took us more time. And the list goes on and on. The point is, it does not work in your favour eventually.

Hybrid Engagement Model

For the  lack of a better word, I am going to call this new model a hybrid model. First the customer needs to set the right expectations of work with the service provider. So for instance you decide that it should not go beyond $60K. The second part to this is that the service provider must mention the bare minimum that they need per month to operate. Both these numbers should not be set in stone and the point is to arrive at a middle ground which keeps both the customer and the service provider vested in the  project.

That’s a gist of the engagement models currently prevalent in the industry, they may not be the best suited for your business requirements. At least you have a fair idea when you start engaging with potential partners. On our part we would go that extra mile, to make the engagement work for you. And that’s a promise! In the meantime, you could download our eBook on Engagement Models for Software Development to get some inside information and valuable tips.

Download the eBook here and get better business value from your engagement.

Communication – The Key to a Successful Offshoring Partnership

Communication with Offshore Teams

Communication plays a critical role in the success of offshore teams that work as extended IT partners. The lack of proper communication channels and tools leads to disastrous consequences. Especially when teams are working across timezones. There are a multitude of reasons that can be attributed to this communication gap. The end results are always – poor quality of work, missed deadlines and unhappy clients.

Let us look at a few common pitfalls while working with offshore teams and how to address them effectively.

The Mindset 

Working with an offshore development team is never going to be seamless given the differences in times and the cultures. You need to understand the challenges of working with cross-cultural teams. You need to accept the challenges and work toward overcoming them. Once you have identified the root cause of the problem, you will be in a better position to find solutions. Much to your delight, solutions do exist and they are surprisingly simple to implement.

Get Past the Buffer

When you work with an Indian Offshore team, in all likelihood your single point of contact will be a Project Manager. This person is generally good at communication and hence eases some the challenges. However a different set of problems come into play due to information loss. Your requirements may not be gathered and relayed effectively. And the technical team gets only a partial brief. The inputs from the development team are also lost in transit. You need to get past this buffer and build a direct communication channel with the software development team.

Cultural Differences

Like Rudyard Kipling said, East is East and West is West. But the two are meeting increasingly for work and otherwise. However one cannot expect the cultural differences to disappear completely. Watch this video from a TED conference that drives the point home humorously. You can’t expect an Indian developer to work the American way or vice versa.

If you embrace the culture, you could possibly get the best of both worlds. The ideal scenario would be to plan like an American Executive and dream like an Indian techie. Similarly, if you are offshoring to other countries you need leverage their culture to derive the best business outcomes.

Set The Right Expectations

You need to set the milestones for the team and the expectations in terms of the quality and speed. If you expect the team to deliver quality code you need to give them sufficient time. Remember, Rome wasn’t built in a day. But if you demand something delivered on the double, the developers tend to take short cuts. And it may impact the work quality. If you want the team to focus on quality, tell them so. And then if you need things done faster you may explore the option of deploying additional developers. Whatever the case, setting the right expectations at the beginning is important.

Employ Simple Processes

KISS -Keep It Simple Stupid, a  wise guy once said. Indian developers aren’t the best when it comes to following complex processes. Even with their solid mathematics skills, they are not very good at book-keeping. Logging in time, maintaining time-sheets are seen as meaningless activities. So keep such mundane tasks minimal and simple. They love what they do best – coding. So keep the process simple and follow them to the T.

Now that’s a quick summary on Communicating effectively with your offshore team. For a deep dive and some in depth insights, you may download an the eBook on the topic here.

Top 5 Hacks to Get the Best from your Indian Offshore Team

Offshore to India

Getting the best out of an offshore team in India is always a challenging task, inspite of the obvious cost advantages. Timezone differences, communication challenges, project management, quality of the code delivered, are all real issues that clients face. The solution however is surprisingly simple. Having delivered quite a few offshoring projects successfully, we have put together the best practices in offshoring work to an Indian firm.

Communicate Better   India is a country of multiple languages, dialects and cultures. So the developers speak in different accents which maybe hard to comprehend, at first. But the good news is the medium of instruction in most schools and colleges is English. So most developers are good with their written communication. Smart collaboration tools like slack come handy when you are communicating with your offshore team.

Know Your Team  Get the team on your side, maybe relocate to India for a couple of weeks. It won’t cost you much, or if you’re lucky, the offshoring firm may split the tab. But it will help you share the vision, product ideas and the overall direction with the team. You will get to know them better and once you befriend them, they will go that extra mile to deliver the goods. Since you know the developers personally you can manage your project better once you are back in your country.

Show AppreciationWhen the offshore team goes that extra mile to deliver work, let them know you genuinely appreciate their efforts. Not with a cold thank you mail. In India, most developers prioritize work over their personal life. A heartfelt appreciation note or a gift card will go a long way in keeping the team motivated. It gives them a sense of achievement, pride and ownership, which will reinforce their commitment.

Promote GrowthIts natural for you to expect the offshore firm to think about your growth. Similarly you need to think of the firm’s growth. Call it Karma, but Indians do believe the principles of Good Karma even in business relationships. And in the end its a win-win relationship for you and them as well. Promote their business in your circles in the true spirit of partnership. You will win their loyalty and dedication forever.

Think Long-termLook at the offshore team as an extended arm of your business. If it is a continuously evolving business, engage with them for a marathon, not a short sprint. The offshore firm is always looking for long-term engagements. They can dedicate more resources and build the team around your project. The working partnership will evolve over a period of time and help you get more value.

For more such insights, download this ebook and invest 10 mins of your precious time. If you deploy the strategies covered in the guide, you should be able to get amazing results from your offshoring team.

Use of Amazon SES in Rails App to Send emails

What is Amazon SES?

Amazon SES is an email platform that provides an easy, cost-effective way to send and receive email using your own email addresses and domains.

Sending Email with Amazon SES using SMTP

You can use Simple Mail Transfer Protocol(SMTP) to send emails by using Amazon SES. You need an Amazon SES SMTP username and password to access the Amazon SES SMTP interface.

To create SMTP credentials:

1. Sign into the AWS Management Console and open the Amazon SES console at

2. In the navigation pane, click SMTP Settings.

3. In the content pane, click Create My SMTP Credentials.


4. In the Create User for SMTP dialog box, you will see that an SMTP username has been filled in for you. You can accept this suggested username or enter a different one. To proceed, click Create


5. Click on Show User SMTP Credentials. Your SMTP credentials will be displayed on the screen; copy them and store them in a safe place. You can also click Download Credentials to download a file that contains your credentials.

After creating your SMTP credentials, open the Verified Senders/Email Addresses screen. Before you can send an email using Amazon SES, you have to own an address or addresses which are going to be used as senders across the SES SMTP mail servers.


Configure mailer with SMTP with rails app:

Add the following code in config/environments/*.rb

Then add following code in mailers/ses_mailer.rb

Note: If your account is in Amazon SES sandbox, then you must also verify the email address of every recipient. For moving out of the sandbox, see Moving Out of the Amazon SES Sandbox.

View: view/ses_mailer/welcome.html.erb

Call Mailer:

You can track your email sending statistics on Sending Statistics of Amazon Console.

Sending emails using aws-ses gem:

1. Add aws-ses to the gem file –

2. Extend ActionMailer in config/initializers/your_config_file.rb, where config_file.rb is the name of the file which contains initialization routines for ses gem:

3. Then set the delivery method in `config/environments/*.rb` as appropriate:

You are now ready to send emails from rails app through Amazon SES. Just make sure you have verified email addresses through which you are going to send the emails and you are out of Amazon SES sandbox. Happy Mailing!!

Reasons why Perception Management is important


The key to conversation at work is flexibility and understanding how what you say might be perceived by others

Is managing perception really that important? Yes !! Because perception is often more important than reality. And in fact, your reality will not be a happy one if you’re not managing perception. There are many examples of how perception is more important than reality.

For Eg. A stock might be beaten up horribly because of the way people view the company, whether that view of the company is accurate or not. The opposite is true as well. Consider what happened in real estate recently. Home prices went much higher than they should have been because the perception of the home’s value was much higher than reality. This was a major contributing factor to a real estate bubble, which as all bubbles do, did burst before everyone’s eyes.

Perception is defined as the “process by which individuals select, organize, and interpret the input from their senses to give meaning and order to the world around them.

Organizations use perception management in daily internal and external interactions. Even prior to major product / strategy introductions and following events of crisis. In terms of advertising and brand image, without a perception to manage, no other form of communication happens. It all comes down to a simple strategy of reviews and public opinion. Even before a product gets launched in the market, its perception ground work starts. Company markets and promotes the product to boost its sales. As a result, the end market gets excited and actually looks forward to the product launch.

Thus even before the product hits the market it is already successful irrespective of how good or genuine the product actually might be. And after product spends few days in the market, nobody actually bothers to cross verify the marketing strategy or product quality. Because companies do not give people the opportunity to cross verify. They are ready with new launch plan within a couple of weeks.

Companies often use brand management in an attempt to change a potential customer’s perception of the product’s value. Through positive association, a brand manager can strengthen the company’s marketing and gain brand value. This is an important step in perception management because it aims at producing the most effective results. Brand management deals with competitors, promotions, costs, and satisfaction in order to earn trust from consumers and show positive feedback.

Perception management is a type of strategy that is aimed at guiding the motives, emotions, and conclusions of another party by means of using different approaches to alter that party’s perception of past events and the projections of future events. This particular type of strategy has been used in military operations in attempts to gain advantages over enemies and has also found use in the business world among competitors. The goal is to alter the perception of the opposing party in a way that provides the manager with an advantage that can be used successfully to score a victory or otherwise defeat that opposing party.

There is some difference of opinion regarding whether perception management must remain firmly rooted in the use of verifiable information that is presented in a manner that is likely to trigger the desired outcome, or if the strategy allows for the selective use of certain facts while ignoring others or even leaving room for the inclusion of data that is questionable. For those that focus on the use of verifiable data only, the task is to assess all the available information, then determine the best way to present those facts in a way that is likely to cause recipients to react in a certain manner.

At other times, the process of perception management includes the selective use of available data. Many times certain facts are presented completely and concisely while others are either presented only partly or are mostly left out altogether. Doing so makes it easier to create a particular perception that can be sold to consumers, the citizens of a given country, or to a rival of some sort, assuming the opposing party is not privy to and does not discover the omissions.

Opponents to perception management prefer that all relevant data be presented without prejudice in terms of assigning priority or value to any portion of the data, allowing the parties involved to engage in the prioritization as they see fit. With this tool being effective in terms of business competition, reaching consumers, and even in the political arena, perception management is likely to remain a viable strategy in many walks of life.

Why is Startup Hiring so difficult?

Ask any Startup CEO or founder, and chances there they’ll all tell you the same thing: Recruiting is hard.

Every business wants the most intelligent, dedicated, and experienced players to fill out their team. But entrepreneurs need people who are more than intelligent and experienced. They need passion. Wall Street experience and an Ivy League pedigrees aren’t as important as shared interests, ethics, and values; or people prepared to mature with your company’s own growth.

Startup’s need people who not only believe in the company’s mission but will work their butts off in a multitude of ways to fulfill it. With no bandwidth to babysit and mentor people, startup’s need people who can hit the ground running, and take ownership and run projects on their own. And they need them now. (Willing to take a 20% salary cut to work on something they can, at least, feel good about doesn’t hurt either).

Often in a startup’s infancy, hiring for a specific position in a rapidly growing business can prove challenging. Every member of that initial team must be able to perform various roles. They need to function as a Swiss Army knife of sorts; all the tools needed to build your perfect startup rolled in one. Finding people who can do that while still being experts in their domain isn’t simple.

Especially since the recruiting process, naturally, works a little bit differently than it does in established companies. For a larger business, the recruitment for individual roles has the ability to more focused and targeted. Startups don’t necessarily have the same luxury. Since you’re looking for those Jack-of-Trade types, it can be difficult simply to describe the role you’re hiring for. (Help Wanted: marketing guru with a background in graphic design, business operations, customer service, and it would be super great if were a pro at baking for office birthdays either).

So how do you choose the right people?

Well, there’s no formula to it but here at Idyllic, we don’t hire clones like most organisations do. We hire diverse people. We don’t look for people who fit in, we look for people who stand out. People who are self-assured and confident and who believe in what they do. We respect and love the fact that each and every human is unique.

Sure, we assess their skills for the role they are being hired for, but that’s just one aspect of their personality.. we’d rather focus on putting together a great team of awesome people. It’s worked really well for us and we’ve managed to build a team of extremely talented, crazy passionate people.

How do you hire? What do you do differently? We’d love to hear your thoughts on it.

5 Ways we keep our Communication Untangled


Ours is a time of technology, an era of non-verbal communication and the age of texting, tweeting, status updates and even, the now rudimentary email. Alright enough with the dramatics. But really, considering communication is almost completely not face-to-face nowadays, why does it bewilder us when we find that we have issues in communication?

In software development and even more so, in agile development, communication is key. Whether it’s communication within the team or communication with the client, it is necessary to make sure that non-communication, or worse, miscommunication is not the reason work is lagging.

When we first started out, we were just a couple of guys, two PCs, two tables and a mosaic floor (Our CTO fondly remembers the mosaic floor and I’m a sucker for tiny details like so!). At that point, communication was a non-issue. I mean, if two people couldn’t communicate, we might as well have just shut down the company and gone home. When things finally did kick off, we started growing. And now we’re a team of about 50 odd individuals, comprising development, testing, outbound marketing, content strategy and our very own Happiness officer, located at offices in three different cities.

And this is precisely why we always make it a point to be on top of our communication game. To keep up with this growth we’ve encountered, we tried several communication tools and several basic ideas as well, in an attempt to see what fitted us best. Here’s what we can’t do without in 5 succinct points-

1. Hall:

Their tagline is “Bring your team together” and that is literally what it lets us do. The basic functionality of Hall is quite fundamentally chat. It has all the regular features of a chat application like private and group chats, as well as video calls from their web app. Additionally, you just have to search for the name of any Hall user and you can chat with them directly. Client communication works great as well because you don’t need to do anything special to add a client. You look up their names, add them to your team chat and just start communicating.

2. Basecamp:

We use Basecamp primarily for requirements gathering and general discussions. Basecamp is however, primarily a project management software.A team member can log into Basecamp and get the full story of a project’s progress. Basecamp also has a dashboard, which tells you everything that has changed in a project and what is relevant to you. It doesn’t break the mold of usual project management software but we must give it a +1 for usability and compatibility with various external technologies.

3. Pivotal Tracker:

We fulfill our project management needs with Pivotal Tracker. This is possibly one of the best tools out there, that caters so well to agile development. We track user stories using this tool and once again, ease of use is a pretty significant factor for our bias towards this software. Additionally, Pivotal Tracker also provides a fairly uncomplicated method to make clients understand agile development.

4. Microsoft Excel:

Okay, don’t judge us for using just Excel. I can imagine some of you scoffing at the thought, but the truth is, at this stage, we haven’t really found the need to complicate our time tracking with a more directed tool. Perhaps, when we grow bigger, we might need a proper software to log hours, but for now, Excel works just fine.

5. Daily status updates:

We like daily status emails. At the end of the day, instead of having a meeting to find out how much is done and how much is leftover, everyone sends a daily status update that details exactly how much they got done on that day. This lets us not waste time, be aware of what everyone else has done and what we need to be on top of, the next day. Also, it doesn’t encourage micromanagement (which is by far, a curse to team morale), and allows for more transparency within the organization.

One thing we have discovered is that there is no such thing as one-size-fits-all. What one person might find confusing, another would possibly love. It would take some trial and error for you to find the right communication tools to fit your organization (Case in point: Using excel for time tracking). So don’t be afraid to try different tools and to switch from one to another. Your team and your clients will be thankful for it.

Why Will You Never Work with a Project Manager at Idyllic

Any job title suffixed with the word manager means:

“Manage something that is unmanageable.”

You need one if you have an unmanageable team, you want to have a manager to manage it, ie. someone to be held responsible.

In my opinion, the term “Manager” is a disguise that organizations have created to cover the mess inside and look pretty.

As an consulting company, if you are still thinking of hiring a manager, it means you are trying to cure the symptom and not the cause. The cause is that you have an unmanageable team. You need to fix that. Hiring a Manager would not do any good.

So, why you should not hire for a “Manager” role?


You want Mr. Manager to manage the team and get things done. If the team is capable enough and self governing, they do not need a manager and can handle things on their own. If the team is not capable, Mr. Manager will not have the magic wand to get the work done anyway.


Instead of having to deal with the development team, multiple people, you want Mr. Manager to be your single point of contact. Now understand how managers work. They generally create meetings (waste of precious time), generate reports, track velocity and use other tools to give you the high level information. They formalize trivial things. Formalizing trivial tasks actually wastes time.

Ideally you should be able to go to any team member and get the information you need. Any member of a self-governing team will be able to help you with the information.


Your project manager generally gets on the client calls. Mr. Manager is the buffer between the developers and the client.

However savvy this Mr. Manager is, the information rarely comes through untarred. It’s better, to have a group call with the client.

If you are an offshore company like us, your clients are already concerned about transparency. When they work with the developers directly, it gives them the confidence of whom they are working with. It also helps team members ask relevant questions and align with the vision of the product.

At Idyllic Software our Ruby developers often handle the client call’s directly and do the talking. We feel a direct conversation is in the best interest of the project and our clients. We encourage, and at times require, our clients to use our project management tools to sign off on the work we deliver, as we deliver.

Since our team is capable enough, we do not need managers and will never have one. As a client, you must always work with the developers directly. Learn the tools they use and speak their language.

Why will we NOT have an HR department ever?

We recently realized that we do not have an HR department in our organization for a reason. Thank you to the young, smart and very talented HR professional who applied for a position with us.


The title itself is very incorrect. How can a human be treated as a resource? The definition of a resources as stated in Wikipedia is “A resource is a source or supply from which an organization gains profit. Typically resources are materials or other assets that are transformed to produce benefit and in the process may be consumed or made unavailable.” We believe that the very existence of a company is by people. Treating humans as resources makes it sound otherwise.

Human Resource Management

We hire grown ups!. They know how to manage themselves. Micro managing them or even macro managing them does not feel right. We know that once our associates pick up a task, they know their responsibility and will manage themselves well. We do not need to baby sit them.

Responsibilities of HR Professional as PERCEIVED

1. Recruirment and Retention

We are people centric. We truly want to grow every individual on our team. We hence focus on providing a good life environment, noncompetitive growth opportunities and fun. If the next big opportunity is knocking at someones door, we do not want to be in the way. Hence we do not have a notice period of few months before you can leave. We make it hard to leave by solely providing opportunities which are hard to match. If you think harder, all it boils down to is growth of an individual whichever way she chooses to go.

2. Performance Management & Periodic Appraisal

The concept of appraising periodically is not fair. A company expects every one contribute exponentially while they grow their people linearly. This is not fair. A person should be able to grow as she desires and deserves. More add value you add to the company, better you grow personally, professionally, in responsibility and of course financially. We are trying to work a point system which enables you to earn a pre determined cap and make you eligible for an appraisal. If any one has experience or ideas around this, please let us know. We will even pay you if you can build a completely tangible appraisal system.

3. Developing Leadership Capabilities

Some say leaders are born and others say leaders are created. Staying away from that argument, we believe that attitude and ambition drives it all. If you are good at something, you lead & mentor, while be a proud student when some one else is better at something and learn it. You cannot know it all now, can you? We would rather focus on building intrapreneurs than developing someone to become a leader.

4. Hierarchy Management

We are a flat organization. There are no titles, only roles. There are no hierarchies here. We treat every one equally and there is nothing to manage really. We are already seeing a lot of companies being flat and we have already joined the movement.

No Offence to HR Professionals

This blog post is not to offend HR Professionals. We realize that there are other roles you play such as training, health and safety and many more. However, we are only unhappy about “HR” as title in some ways and how it is viewed and realized. These are only our views to highlight a few important aspects that we believe in and know that we truly respect all professions equally.

Subscribe To Our Blog

Get access to proven marketing ideas, latest trends and best practices.

Next up home


Lets build cool stuff

Share your contact information & we will get in touch!

I want (Tell us more about your dream project)