Ashik’s IT Thoughts

October 7, 2015

Joined TubeMogul Leaving Salesforce

Filed under: IT, Official — ashikuzzaman @ 11:30 am

It’s been 6 weeks since I joined TubeMogul leaving Salesforce. The decision to leave Salesforce was not an easy one, as Salesforce is one of the leading and most innovative software companies in the world with approximately 17 thousand employees. When I joined there 8 years back, they had a little more than 3 thousand employees. So I saw Salesforce rising at a pace, that is only believable if you live in Silicon Valley’s startup atmosphere. I was in a good book in my own department and had a good network of people working in different departments; as I have been working there for so long. There were further growth scope and no doubt Salesforce pays good enough to employees in Silicon Valley (I have to assume elsewhere too). So why move out of Salesforce at all? Here was my rationale.

I have been working in IT Applications Development since my early years in Salesforce. The first half (4 years) I was working on a Java based module and the last half I have been working on Force.com / Apex (Salesforce’s own programming language developed on top of Java). During the second half I started feeling that I am getting out of touch with the Open Source projects and Java community; as being an application developer, I didn’t get a chance to do platform development which allows you to experiment with lots of cutting edge new open source frameworks coming out or the JVM based programming languages. So I considered moving within Salesforce to one of their platform teams but then I became part of a very large project (Project Delight) which I didn’t want to miss. The project took 2 and half years to finish and it was a very good experience in my career, seeing first hand how a large number of teams, each having its own development culture can work together to achieve a bigger goal and what various types of obstacles can come on the way. But once that project was done, I was getting ready for a bigger role on the next big project. But then I started feeling that the core problems that are awaiting me, we have already solved many of those in my last project. So instead why not jump into something completely new, where I will be hopelessly helpless?

That’s when one of my ex-colleague simply submitted my resume to a software company despite my reluctance (confession: I am a lazy person). But as my interview was scheduled. I started looking into what is there in the latest java world and I saw that the companies are moving to Java 8. When experimenting a few programs in Java 8 following the Manning book, I clearly understood it’s a complete revamp of the Java programming language. Lambda expressions, streams, functional style programming are few that excited me too much and I was no more ready to get back to Apex coding (not that Apex is bad, its just proprietary). I honed my Java 8, data structures and algorithm, spring and other open source projects familiarity for couple of weeks to get ready for interviews.

As naturally happens, I got selected by a few companies and rejected by a few others during the interview process. The job market is so good that I had at least half a dozen more interviews waiting for me the next week before I decided to stop interviewing and pick the best I had upto that time. TubeMogul was a clear winner in many areas. Of them are –

  • They are complete java and open source shop
  • They have different engineering teams where you might be able to move around over time – platform core (rtb), machine learning, big data & stats, ui, udb, appeng and more….
  • They are the 5th best place to work in San Francisco Bay Area according to Glassdoor review of 2015
  • They are a mid size company (500+ employees) making it ideal for a growing company and yet not too small to go bankrupt
  • Their business domain Real Time Bidding (RTB) is something completely unknown to me. So it will definitely pose challenges to me in multiple levels (which is what I was looking for).
  • They offered me a decent package. Although I humbly note that if you are working in Silicon Valley as a software engineer, most of the companies will offer you a good package; otherwise they won’t be able to attract or retain good employees.
  • I liked talking to each of the 4 people who interviewed me in TubeMogul as well the recruiter who handled the whole negotiation process in a very professional manner. My manager Murtaza is a very composed man, something similar to Rajesh Misquita at Salesforce whom I admire a lot.

I did let my team in Salesforce know 6 weeks ahead of time about my decision. I went to Bangladesh on vacation for 3 weeks to attend my brother’s marriage in between. I left a good relation with the management and peers before leaving Salesforce. I will always cherish the memories of working in such a nice a big company like Salesforce. But it’s time to move on.

When I joined TubeMogul, I saw my assessments were mostly correct. Except Java, I think everything else was simply unknown to me or I have used/worked on more than a decade ago. I still have not mastered the way to explain what RTB industry is all about. One of the very first things I did here is formed TubeMogul Chess Club. The pace of work is fast and everyone is very friendly. Let me go through a few more months, but as of now I believe my decision was correct to join TubeMogul.

January 25, 2011

I won the first round of the Chess Tournament in Salesforce.com

Filed under: Chess, Official — ashikuzzaman @ 12:59 pm

I played the first round of the four round chess tournament in Salesforce.com. I won with White, although I felt I am out of touch by a good margin due to the lack of practice. My opponent was Didier Prophete who is PMTS and sits in 3rd floor in the same building as I do. Also I took lot more time than my opponent to move.

However, I will do some practice before next rounds so that I don’t make simple miscalculations.

http://www.chess.com/emboard.html?id=589523

Soon after this, I exchanged the queens to make sure there is nothing left in the board except my Rook and Didier’s Bishop while I have a bunch of queens side passed pawns to march for promotion. So he resigned here while I had some 3 minutes left in the clock as opposed to his 9 minutes.

Last few days I finished Himu Rimande and Kichukhkhon by Humayun Ahmed.

December 19, 2010

Small Java Program To Convert Unicode Character Filled Sentences To Native or UTF-8 Character Filled Sentences

Filed under: IT, Java, Official — ashikuzzaman @ 12:58 pm

My colleague John asked for a tool from me last week so that he can finish the translations / localization works that he was doing. To solve it in a lazy way, I did some google around a bit but couldn’t figure out any easy tool that will convert Unicode characters \uxxxx to native locales. There are plenty of tools available to convert natives to UTF-8 and even the below simple command works in java for native to utf-8 :

native2ascii.exe -encoding UTF-8 your-input-file-name.properties your-output-file-name.properties

So what I have done is just written a small java program that will help you to achieve the reverse of it i.e. converting from unicode to native / utf-8. Here are the steps you will need to perform.

package com.salesforce.test;

import java.io.*;

/**
* To compile: javac -d . SfdcUnicodeToNativeConverter.java
* To run: java com.salesforce.test.SfdcUnicodeToNativeConverter
*
* @author ashik
*/
public class SfdcUnicodeToNativeConverter {

private static String fileName = "output.properties";

private static String sentenceToConvert = "cmgt_configurator/Sfdc_common_summary_32=\u304a\u652f\u6255\u3044\u60c5\u5831\u306e\u5165\u529b";

/*
\u304a\u652f\u6255\u3044\u60c5\u5831\u306e\u5165\u529b
\u304a\u652f\u6255\u3044\u6761\u4ef6 & \u5951\u7d04\u671f\u9593\u306e\u7de8\u96c6
\u6b64\u8ba2\u5355\u7684\u603b\u4f63\u91d1+
\u82e5\u8981\u7e7c\u7e8c\u7d50\u5e33\uff0c\u60a8\u5fc5\u9808\u8a73\u95b1\u8b80\u4e26\u63a5\u53d7\u4ee5\u4e0b\u6240\u5217\u6bcf\u500b\u7522\u54c1\u7684\u689d\u6b3e\u3002
*/
public static void writeOutput(String str, String fileName) {
System.out.println("Unicode to Native Conversion Starts...");
try {
FileOutputStream fos = new FileOutputStream(fileName);
Writer out = new OutputStreamWriter(fos, "UTF8");
out.write(str);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Unicode to Native Conversion Successful!");
}

public static void main(String[] args) {
writeOutput(sentenceToConvert, fileName);
}

}

1. Make sure sure you have JDK installed in your system. Set the environment variable JAVA_HOME in to point to JDK (alternatively there is a shorter way that I can show you).
2. Copy the source java file from the following network location into your machine – \\moorea\departments\AppStore\Comergent\Programs\SfdcUnicodeToNativeConverter.java
3. Open the source file in TextPad or Crimson Editor and replace the value for the variable sentenceToConvert to the actual sentence that you are trying to translate / convert.
4. Compile the java file that I wrote using the command javac -d . SfdcUnicodeToNativeConverter.java
5. Run the program to generate the output file using the command java com.salesforce.test.SfdcUnicodeToNativeConverter
6. A new file named output.properties should be generated in the same folder from where you ran the program.
7. Open this file with Altova Xml Spy or Notepad with UTF-8 Encoding to preserve the file format correctly. You may see some characters that look like junk. Don’t worry, those are not junks.
8. Copy the content from the file in Xml Spy or Notepad and paste those into a new MS Excel Spreadsheet. Now you should see the native characters properly. You can use those for translation purposes I your models.

I have tried to write down the steps above clearly as you will need to perform those repeatedly for each line of translations for each locale. Being a little innovative, you can use the steps above for multi-line translations as well by adding proper \n” + ” to hold many properties / values in the sentenceToConvert variables.

October 19, 2010

Salesforce Chatter Desktop and Salesforce Mobile

Filed under: IT, Official — ashikuzzaman @ 10:45 am

I just installed Salesforce Chatter Desktop and Salesforce Mobile. Interesting. If you want to download or know more, follow the link below.

http://www.salesforce.com/chatter/desktop-mobile-collaboration/

September 1, 2009

Title Revision from Software Engineer to Senior Member of Technical Staff

Filed under: IT, Official — Tags: , , , , , , , , , , — ashikuzzaman @ 6:42 pm

Recently I got a title revision in Salesforce.com as a Senior Member of Technical Staff (SMTS) although without any salary hike. When I joined Salesforce at November 5, 2007 I was assigned the title of Software Engineer. My grade was already high within the Software Engineer title holders at that time falling a little short of the next title Senior Software Engineer. In IT we had the hierarchy like – Associate Software Engineer > Software Engineer > Senior Software Engineer > Lead Software Engineer > Principal Engineer. But in R&D which is a bigger team in Salesforce, the similar titles were Associate Member of Technical Staff (AMTS), Member of Technical Staff (MTS), Senior Member of Technical Staff (SMTS), Lead Member of Technical Staff (LMTS) and Principle Member of Technical Staff (PMTS). So in a recent alignment initiative between R&D and IT team, management decided to follow the conventions of R&D team for both of these groups. This resulted in converting out Software Engineers to MTS. Only for my case in AppStore team, I was levelled as SMTS although my earlier title was Software Engineer. This means I am still eligible for my next level promotion to Lead Member of Technical Staff as per our Merit Increase Process. Let’s see how things go.

Blog at WordPress.com.