Hong Kong

19 Nov 2015

Mass email Marketing and anti-spam - some of the how-to..

I'm sure I've mentioned on this blog (probably a few years ago), that we spent about a year developing a very good anti-spam tool. The basis of which was using a huge number of mysql stored procedures to process email as it is accepted and forwarded using an exim mail server.

The tricks that it uses are numerous, although generally come from best practices these days.

The whole process starts off with creating a database with

  • 'known' servers it has talked to before 
  • 'known' domains it has dealt with before.
  • 'known' email address it has dealt with before.

If an email / server / domain combo is new and not seen before, then apart from greylisting, and delaying the socket connections we also have a optional manual approval process. (using the web client).

Moving on from that we have a number of other tricks, usually involving detecting url links in the email and seeing if any of the email messages that have been greylisted (with different 'from') are also using that url.

On top of this, is a Web User interface to manage the flow and approvals of email. You can see what is in the greylist queue, set up different accounts for different levels of protection (either post-delivery approval, or pre-delivery approval etc..)

This whole system is very effective, when set up correctly. It can produce zero false negatives, and after learning for a while, is pretty transparent to the operations of a company. (email me if you want to get a quote for it, it's not that expensive...)

So after having created the best of breed anti-spam system, in typical fashion, we get asked to solve the other end.. getting large amounts emails delivered to mailing lists.

If you are looking for help with your mass email marketing systems, don't hesitate to contact us sales@roojs.com

Read on to find out how we send out far to many emails (legally and efficiently)

16 Nov 2015

Hydra - Recruitment done right

For the last few months we have been finishing up the first round of work on the Hydra Jobs platform. Something, along with the founders we think is quite revolutionary idea in IT recruitment. 

Key to it's design is the idea that the first step in finding someone is not putting up an advert, and expecting a shitstorm of resume's that are totally unconnected to the requirements. Taking a step back and realizing that as an employer, you would rather do a search for all the available candidates, than risk the time and wasted effort in sorting though unrelated piles of CV's.

We have spent the last 9 months working to get this to a MVP. The platform is now running, and the business operations are now underway.

So to make this work, the first step on Hydra was to design a set of Questions that could enable a detail search to work. What we ended up with is probably the easiest, yet comprehensive way of entering your profile data so it can be matched efficiently with companies recruiting staff.

It has been an interesting few months getting Hydra up and going, now we are over the hump of the work, we are looking for more interesting projects to take on, so if you know of any, please contact us.

Read on for some of the tricks we used to make this project, one of the best recruitment platforms around.

28 Jan 2013

Roo J Solutions Growing into 2013, always recruiting, and developing differently

As the business is always growing, finding time to write even the shortest of blog posts becomes more difficult, but as we are looking for more staff yet again to help solve our clients growth plans, I thought I cover some of our inventive ways we have dealt with growth, and how we differ from most other software development companies.

Developer driven

When I started the original consulting company over 10 years ago, I focused the work on software development which tried to solve complex problems and deliver maintainable systems that could grow over the years. If we needed design work, it would be either outsourced, or done in partnership with similarly focused companies. This means our business has long been based on repeat business from a group of growing companies

Over the last year as we have grown to three people, and still as busy as ever, that focus has become even more clear, as I have written before, our competitive environment consists mostly of design companies with limited interest in producing quality software, rather quickly throwing trash out the door, getting paid, and moving on to the next sucker.. (sometimes we get to clear up that mess...)

Applying software development to our own processes.

Our business is no different in many ways from our clients, we are always attempting to optimize our processes, reduce time spent on meaningless tasks and ensure that everyone is spending their time adding value to our clients businesses. In software development this involves a number of core pieces of infrastructure, Revision control, review systems, task tracking, time billing and accounting. The result and aim of these are two pronged, ensuring that the quality of work being produced is worth the money we are being paid for it, and making sure our clients are aware of their current and outstanding expenses.

While we have the above processes in place, they often are not applied in exactly the same way that the industry has come to expect. This is mainly due to the way that rather than going for off the shelf solutions to our problems, we have tended to develop the tools in-house (a great way to perfect your skills often). While this smacks of NIH (Not invented Here) syndrome, and I can not say that I do not worry about that sometimes, the result is that our processes drive the design of our tools rather that our tools designing our processes. 

At present one of the key differences  is our approach to the classic developer focus on task driven commits. As this blog has mentioned before, we do not do task driven commits (gitlive). Every single file save is committed into our revision control system. While this may sound a bit strange, It has significant benefits for all involved. After so many years of working I can not tell you how many times that work has been lost due to accidents. Since we are getting paid for this work, any possibility of loosing it would be costing us money (or if we where not so ethical, our clients, which sadly i suspect happens all to often in the industry.).

I have been considering for a while if we should merge this workflow into a more task driven commit methodology, but as what I though would be a short term fix, seems to have re-in-forced this idea that we should not go down that route. This short term fix was the concept of daily commit messages. In a normal task driven process, the commit that fixed the issue would be appended to the ticket (and frequently emailed for review), it could then be reviewed as the issue was signed off.

We did try this on one project, however what resulted was a constant back and forth on multiple issues, and a very time consuming review process. This using the most expensive resource in the company, senior developers. So in switching to daily diff's there was only the need to review the changes for each project. In this way it was also possible to communicate not only serious code fixes, but also advise on better practices. without having to throw that into a tracking system (Although email in some respects is always a tracking system).

The full stack experience

Our new staff over the last year have grown considerably, comming from a classic Hong Kong software development environment, they had ended up focused on a single area of the development process. They would work on projects for weeks and come back with a result, often having to persude, or wait on information from other teams working on a different area of the same project.

I regard this as one of the worst industry practices out here, so over the period they have been working at Roo J Solutions, they have been thrown in the deep end with every part of the standard development stack, front end, back end and database. Tasks are frequently day or even hour based, however working as a team now, they can pass the learning of the new tools around. Always having my knowledge as a good backup. To the suprise of someone who had worked on that team with them before, they not only did not sink, but swam very well being given new challenges. 

So if this sounds like a interesting place to work and you or someone you know would like to be attacking our challenging new projects, please pass on the post or email me at jobs@roojs.com, with the usual information (If I have to tell you.....)

22 Oct 2012

Prettybooked.com turning a startup into a reality.

This week saw the release of the latest site developed by Roo J Solutions, www.prettybooked.com a Hong Kong based beauty booking service. While the site has gone through the usual last minute bug-fixes before going live, it all came together in the end.

Developing a feature rich web site.

While we where busy finishing off this site, We have had a few other projects and discussions going on, and what has been interesting lately has been the realization that far too many companies and startups are having real trouble getting web sites developed properly.

Often they are cutting costs, and contracting under-qualified or unsuitable individuals for the process. Resulting in disaster hitting quite early and the project never being complete as their 'developers' have no idea how to solve the technical issues involved.

But the saddest and worst scenario's I've seen, has been the frequent employing of design companies or 'interactive media' companies as the lead contractors on web based development. This can be the most expensive recipe for disaster. In one case the cost of the development was bloated to over 10 times the realistic cost of the project, and what was delivered was just a prettified open source project. When the client started asking for features that the  original open source project provided, they where quoted quite unreasonable amounts. The sad fact is that the relationship between the supplier and customer was damaged beyond repair. Without a deep understanding of how software projects are developed, these companies failed to manage their customer's expectations.

Fool me once, shame on you; fool me twice, shame on me.

In another case a design company was asked to provide a custom web site, which from a design perspective looked quite nice, however as part of our installation on the server, we got to see the kind of code that was being delivered. If this software was a car, the wheels would fall of when driving out the garage, It was the worst and most dangerous code I've seen in nearly 10 years of development.

Read on for more about prettybooked, and how to get projects done properly...

31 Jan 2012

Roo J Solutions Limited is recruiting

Since we have been very busy already this year, I have now almost completed the process of migrating from a Sole Proprietor into a Limited Company. Roo J Solutions Limited is now a registered Hong Kong Company. We are now looking for full or part-time staff (based in Hong Kong). 

Please read the full post for details. 

14 Sep 2009

Barcamp Hong Kong 2009

Went along to Barcamp in Hong Kong this weekend, Have to thank all the guys & girls involved in organizing it. As it was a chance to meet some interesting people, who I did not realize where even in Hong Kong.

Barcamp Hong Kong, is perhaps a little different from what you might get elsewhere. First off it's not so much a techy thing. (Evidenced by the sight of 1 Linux desktop = mine...) I gave one talk on 'D', and went to a couple of others with lesser technical emphasis - drupal / OO JS etc. but the majority of talks where either business development style (raising funds, startups). or iPhone related (with out the coding stuff).

I guess this comes from the general attitude here that most programmers tend to regard it as a stepping stone to management or something, and have very little passion about the whole industry.. (as someone described it to me).

The technical talks gathered at most 20 people (out of I guess 200-300 people at the camp). And unfortunately, my talk/chat/discussion got rather hijacked by someone who wandered in, was completely non-technical, and started asking irrelivant questions. (self reminder, politely say, this is for programmers only next time)

Overall it was not much of a learning experience, rather the chance to actually meet developers with similar interests, (and see that they actually exist) - Shame I had to leave early for family stuff, as the drinks would have been good...

18 Jun 2008

HK Government Incompetence or just plain stupidity

A friend of mine received a letter the other day from the Hong Kong Inland Revenue Department (IRD), It was addressed to her company, and cc'ed to Her (at the bottom of the letter). The letter was titled "Notice For Recovery of Tax Under Section 76(1) of the Inland Revenue Ordinance."

Her first reaction was "This must be some kind of mistake", I'm not a boss/owner of this company, I guess they must be sending it out to all the employees.

Anyway, to help her out, I thought I'd phone up the IRD to find out why this letter arrived. It did not take long on the phone to realized that this letter was actually meant for her. So we did a little more reading of the letter. It turns out that it was a demand notice for.... wait for it....

"Notice 1" for Final Assessment for the year 1993-1994 in the sum of HK$309 (that's about US$40 or 20GBP)

To be honest I thought this was hilarious.. they had waited nearly 15 years to send out a first reminder to pay the amazing sum of HK$309.. Got to be one of the best examples of real government incompetence I've seen in a long while..

While it's not a huge issue in terms of finding the money (raid the piggy bank), I though it raised quite a few questions, some rather serious.

1) Why address demand letters to employers rather than employees?

2) Is this not over 6 years (the standard for Statue of limitations - or Hong Kong's equivalent legislation)

3) How are you supposed to challenge this? - I sent a cheque in 1993, it was cashed, you should have the payment? - nope, no human (except the IRD it seems) keeps records that long.

4) What if it had been a larger amount? one day you where happy with nice savings, looking to buy a house. Next you are wacked from nowhere and close to bankrupt with a huge bill from IRD, that you never knew about?

5) How many of these bills are there? - are all Hong Kongers going to be paying back-taxes for issues over 10 years ago? Will you get one every year?

6) Is this some kind of computer glitch?

7) Was someone pocketing the cash that long ago? and the system has only just been picking it up? Is there some kind of Superman fraud going on here....?

8) How on earth could they justify this? My friend has been paying tax every year for the last 15 years, so it's not like they did not have her address..

Oh well back to trusting our intelligent overlords..

18 Sep 2007

PHP developer Job in Hong Kong

If you know anyone in Hong Kong (or who wants to move here and can get a visa) with PHP experience, and some linux experience (although not essential) , who is looking for full time job, feel free to contact me alan at qsolutions dot hk dot com.

This is a permanent job, working with me in a small company based in Central. The projects are varied and if you can program in D, C or any other language there are even more opportunities.

06 May 2007

Shame on them - bad corportate sites..

When you spend a large proportion of your day working on internet applications, and a considerable amount of that time working around annoying browser bugs (IE and Safari win here). You do it out a sense of pride, that you are delivering the best possible product. Solving these problems is a mater of personal pride that I produced the best possible end user experience.

So when I see site that is not only mindbogglingly broken, but has been developed by large corporations with relatively unlimited budgets (well compared to most of mine anyway). It just really makes me wonder how such under qualified moron's managed to get such high paying jobs......

Here's my list of shame.

1. HSBC a) for taking years to realize that intra bank transfers where a phisher's dream, b) waiting until the government mandated two tier authentication and finally when they deploy it. Being so broken that it takes over 5 minutes to get through the authentication system. What is even worse, is the lack of acknowledgment that they have a problem.

2. EsdLife, our governments outsourced 'e' website. Run by a company owned by the largest tycoon in Hong Kong. Which initially only supported IE on Windows, (allegedly), and for what must be now, 5 years, Has never worked once for me. not even for simple things like setting up a e-password to file tax returns or booking tickets for tennis courts.

3. Verified by Visa, or better know as unverified by JavaScript errors. This site not only has numerous JavaScript bugs, but does not correctly identify mozilla compatible browsers. No you should not use the browser name for compatibility testing.

All of these have one thing in common. Huge amounts of money spend on a web site, by a large organization. Which needs only to do a relatively simple task (read "It's just HTML stupid"). Yet manages to complicate it to the point that it makes the sites almost completely useless...

Know of any other great examples. It's just a shame we cant name the project manager's names and shame them into fixing these problems.

24 Jan 2007

Wing Lung Bank (Hong Kong) not exactly trustable.

Banks, while never perfect corporate citizens usually at least try to behave in a reasonable maner. That is probably why I was fuming with anger at Wing Lung Bank in Hong Kong.

I have a credit card from this bank, that was given out as HKIA uses them for their membership cards, and my spouse being a member, just signed me up for it. I normally use American Express for most payments, but some shops don't accept it so having a Visa card is quite handy.

We always pay off the balance every month, I normally sit down around the 1st or 2nd of each month and clear the bills. I must have been doing this for at least 6 years, and I've had the Wing Lung card for I guess more than 3 years.

So yesterday when I got a letter from them indicateing we had not paid the bill, I was a little supprised. That turned out to be me forgetting to pay my wife's bill last month, as she doesn't use the card normally, so the is normally nothing to pay. However while checking the other bills, I noticed a finance charge, and a late payments charge. I was pretty certain that I had paid last month on time, so I checked closer, I had paid the bill on the second of the month, which was the usual date. Then I spotted the problem..


They had moved it back about 10 days, resulting in the card running up late charges.

Not only that, I started checking the older statements,and realized the had pulled this slight of hand 5 months ago, raking in a tidy sum for their criminal coffers.

By this time I was fuming, and called their hotline, my temper not subdued by their annoying 'press 2 for..' and playing adverts for their services while waiting.

After practicalling screaming at two idiots who refused to refund the money and change the payment date, and listening to them try and justify this crazy action 'your agreement states we can change the terms at any time' They promised that a manager would call back.

Of- course, this call never arrived, so today I cancelled the card, filed a complaint with our consumer council. (Hopefully at least they will issue a warning about them Changing the due dates, so other customers don't get caught out.)

From what I've been hearing, this is not the first bank to pull this scam.. Well, Wing Lung will not be one of the place's I'm going to get a mortgage from...

   (Page 1 of 2, totalling 20 entries)    next page »

Follow us on