Life at Calcey

A Letter To My 22 Year Old Self

Dhanushka Jayatilake is the Principal Software Architect at Calcey, and has been a very important part of the team for the last 10 years. We asked Dhanushka what advice he would give, if his present self was to meet his 22 year old self.

Here’s what Dhanushka had to say…

Dear Dhanushka,

You’ve put in a lot of work to get here. As you step out of the University of Peradeniya as a qualified software engineer, a world of opportunity awaits you. Those opportunities will only continue to grow, mark my words. But as your future self, I have a few words of advice for you. I hope they serve you well in time to come.

Dhanushka conducting a workshop
  1. Master the basics

    Four years from now, a Californian in blue jeans and a black turtleneck will introduce a new type of device to the world. It will be a small rectangular slab of a device. But it will change the way people interact with computers. People around the world will spend hours on this device launching cute little birds at castles built by a bunch of evil green pigs (Hard to believe, I know). A great new world of possibilities will open up, and your favourite programming language of C++ will give way to newer and better programming languages, just like how COBOL and Fortran gave way to Basic, which in turn gave way to C++. This cycle will continue.

    So make sure you learn your basics, and learn them well. Lots of programming languages may come and go, but the basic principles will always remain the same. That’s how it has always been, and that’s how it’s always going to be.

  2. Learn to learn

    This might confuse you, but hear me out. It is absolutely important that you continuously upgrade your skills. After all, you have chosen to work in a field where things change fast, very fast. That said, don’t rush to learn every new thing which sees the light of day.

    Whenever you come across something which piques your curiosity, take the time to understand it very well. See what it can do, and cannot do. Break it down into its essentials. Not only will this help you learn faster, but it will also help you appreciate the beauty of a new programming language for instance, while understanding its limitations. That is what wisdom is. In an era where knowledge is plentiful, wisdom is what will be in short supply, and thus, be valuable.

  3. Think through problems

    As you start working, you will find yourself wrestling with programming problems. Don’t worry. Take a deep breath, and step back for a moment. You may be tempted to have a go at the problem right away, but don’t.

    Instead, think very carefully about the problem you’re facing, the outcome you need to achieve, and the tools available at your disposal. It is essential that you at least draw up a mental blueprint for how you plan to go about solving the problem at hand. This willingness to plan is what separates the pros from the rookies. Abe Lincoln put it best when he said “Give me six hours to chop down a tree and I will spend the first four sharpening the axe”.
All smiles

As you think about your future while roaming the beautiful lush green gardens of the University of Peradeniya, you may be filled with fear. Don’t fret too much though, it will all work out well. I can guarantee that.

A few years from now, your CV will find its way into the hands of a gentleman running a small company called Calcey. It will be your second home for the next 10-plus years. You will rise up the ranks and eventually, find yourself managing 80 other young developers. Congratulations!

Oh, and one final word of advice. Try to find experienced mentors early on in your career. They will be able to show you the ropes and guide you, which will save you a lot of time, trouble, and late nights.

All the best!
Sincerely,
Dhanushka.

Opinion

Bridging Cultural Differences: Our Thoughts

Being in the software development business, our clients come from the world over. Naturally, there are cultural differences which may get in the way. At Calcey, we have a few tricks up our sleeves to help bridge these differences and help us deliver great work.

Every country has a culture that is unique. Sri Lanka, where we are based, has traditionally been hierarchical, collectivistic, and driven by a need to achieve consensus. What this means is that generally:

  • Subordinates expect to be told what to do and the ideal boss is a benevolent autocrat.
  • Everyone takes responsibility for fellow members of their group.
  • People strive for consensus, and they value equality, solidarity and quality in their working lives. Conflicts tend to be resolved by compromise and negotiation.

Geert Hofstede also agrees with us.

Lesson 1: Don’t throw the baby out with the bathwater

Sri Lanka’s collectivist culture brings with it a few positives, which serve us well as a global software company. The hierarchical elements though, aren’t of much use. Calcey’s internal culture is consciously and painstakingly built around values such as ‘Straight Talk’ and ‘Challenging Convention’. Obviously, there can be clashes.


New recruits often say that they find the Calcey culture a breath of fresh air compared to what they experienced while at University

Once new recruits come to Calcey, we try to encourage them to break free of the traditional  notion that being straightforward is undesirable, and challenging seniority is a no-go. At the same time, positive aspects such as collectivism and the high camaraderie which recruits bring with them need to be encouraged. In an industry such as software, those elements tend to be very valuable.

Lesson 2: Leverage the similarities

The tech sector in general, is somewhat counter-culture, no matter where you are in the world. Because of this, tech employees the world over have certain similarities between them. Not only do they speak the same languages in terms of code, they even chuckle at the same memes. This commonality helps us build a good rapport with foreign tech teams, whenever we encounter them.

Capitalising on similarities helps people get along better

Lesson 3: Achieve a personality fit between the client and the project team

Since our clients will end up spending most of their time dealing with the project team, it is crucial that there is a good personality match between the two parties. Even more crucial is getting a good personality match between the client and the project manager, who will be the main point of contact.

Starting from the pre-sales stage, we try to gauge the personality traits of the client. Being a boutique firm, there is a lot of personal involvement in the sales process, and this gives us enough time and space to understand the client very well. This knowledge then helps us to put together a project team which usually ends up getting along well with the client.

It’s important that the project team is a good fit with the client

Lesson 4: Hire well and hire right

This is a no-brainer really. When hiring, we look for people who display a good level of empathy and are open to embracing new perspectives. Graduating at the top of your class is not everything after all.

We also have quite a few experienced hands in-house, who bring with them loads of international experience. They’re always around to help smoothen things.

And that’s it really. Though overcoming cultural barriers is not complicated as it appears to be, failing to understand the impact of culture can be disastrous for any business. Our methods though simple, are powerful. Most importantly, they work.

Life at CalceyUX

UX Design @ Calcey

Here at Calcey, UX plays a very important role in all that we do. Given that a lot of our work is aimed at everyday and not power users, the very success of the projects we undertake sometimes hinges on getting UX right. In this post, our UX Lead Ranga Weerasinghe walks us through how we approach this intricate, complex, yet beautiful process.

Q: Can you tell us something about yourself?

Well, I’ve been working at Calcey for the last four years. In that time, I have worked both as a UX Lead and also as a front-end developer, helping our development teams every once in a while. I am aware that it’s not a very common arrangement in the industry, but I happen to have both an artistic and programming background. That allows me to juggle these two roles, and I’m quite thankful for it.

 

Here’s Ranga conducting a UX workshop at our office

Q: How do you and your team approach the UX design process?

The first and most important rule we follow is that there is no cookie cutter approach. Of course, there are industry standard best practices and we follow them. But we also recognise that in a fast-changing field such as ours, where trends come and go, there can be no one-size-fits-all solution. Sometimes, processes ought to be tweaked to suit the client. This flexibility is something we at Calcey are proud of.

Once a client signs up with us, we hold a kickoff meeting of sorts. We use this meeting as a platform to get everyone to reach a common understanding about what the objective of the project is going to be, and what everyone’s responsibilities are.

With that out of the way, the UX team gets down to business.

Q: How so?

We hold a few days of workshops with the client to understand their product and their users. We will try to map the user’s journey across the product/interface. In certain cases, we will try to come up with what we call ‘User Personas’ for different types of users. What this helps us do is build a story around the user to understand where they’re coming from, what their mindset is, what they’re looking to achieve (by using the product), and what’s preventing them from enjoying a seamless user experience. This helps us identify how a user would interact with the interface, and decide on the design decisions which we ought to take.

We will then enter what we call the ‘First Impressions’ stage. During this stage, the onus falls on us to use the insights gathered during the workshops and create simple wireframes of what we believe the UI needs to look like.

Drawing on paper can be a good way of thinking about design

Next, we will move on to the ‘Lo-Fi Prototype’ stage which stands for ‘Low-Fidelity prototype’. The mock-ups which will be presented to the client at this stage would be improved and clickable versions of the bare-bones wireframes from the previous stage. Of course, depending on the feedback from the client (coupled with initial user testing) and the extent to which any changes are made, there can also be instances where the Lo-Fi prototypes look nothing like the wireframes they were based on, but that’s okay. That’s par for the course, and we wouldn’t have it any other way.

If the client is okay with the Lo-Fi prototypes, we will proceed to create a High-Fidelity version (or Hi-Fi prototype, as we call it). A Hi-Fi prototype will usually be very detailed, and will end up looking exactly like the final product. Hi-Fi prototypes are very good subjects for user testing purposes, and we’ve had instances where users thought the mock-up was actually a real app.

Not to brag or anything, but we’re that good.

Q: Are there any principles which you try to abide by while designing?

Not many really, but there are two principles which we try to follow at all times. One is to think ahead. I think it was Wayne Gretzky who said that he tries to skate to not where the puck is, but to where it is going to be. Similarly, we try to think about the usability and relevance of our UX two years down the line. After all, from the client’s perspective, whatever they’re paying us to do is an investment in the future of their business, and investments ought to have a good payback period. That is why we try to build tools which are useful today, but will also remain relevant tomorrow.

The second principle is research. The field of UX changes very fast, and trends come and go. Just look at how far we have come in terms of visual designs for apps. Not too long ago, skeuomorphic design was sweeping the world, only to be replaced by flat design inspired Microsoft’s Metro UI design language. Then, the pendulum swung the other way when Google introduced the material design philosophy which combined skeuomorphism with flat design. Tomorrow, it might be something else. For example, when we try to visualise information generated by a machine learning service, we need to make sure that when the end-user sees it, they are able to make sense of the information, perhaps through intuitive visual cues. As UX specialists, it is up to us to stay on top of these trends and separate the signal from the noise. It’s a skill that is built up over time, and keeping up with global trends and design philosophies through research is extremely important.

Ranga sometimes likes to dress up as Morpheus, a look which fits him perfectly

Q: Any advice for a budding UX specialist looking to join Calcey?

Stay curious, and be patient. UX is something you get better at over time. Rome wasn’t built in a day, neither are UX specialists.

Oh, and send us your CV and portfolio.

Cover image credits: Photo by Mika Novo on Unsplash