DEV Community

I'm a Salesforce Technical Lead, Ask Me Anything!

Javier Garcia on August 13, 2018

I'm currently working for a Swiss company leading the development of their in-house Salesforce platform.

Since Salesforce is a stranger for most developers, I thought it could be interesting to do an AMA about it. Feel free to ask anything :)

Collapse
 
manzanit0 profile image
Javier Garcia

To be honest, initially the money. SF dev jobs are amongst the best paid currently. Nonetheless, along the way I did discover certain things in the platform that made it appealing.

The biggest advantage is possibly that thanks to the fact that since the Apex language and the frontend frameworks like VF and LCF are solely oriented to Salesforce development, you can focus on very high level problem solving. You don't have to worry about how to implement a Repository layer, or how to manage threads, because the platform already does that for you. The same goes for integrations, etc.

As for the training... Simply Trailhead, StackExchange and curiosity :)

Collapse
 
bassimsmile profile image
Bassim RAJI

Hi! I'm a Salesforce administrator and becoming salesforce dev.
I have a question you don't see that SOQL complicate salesforce? (like for example many- many relations and other stuff ?)
thank you for your answer.

Collapse
 
manzanit0 profile image
Javier Garcia

Well, you're not really understanding Salesforce. At the end of the day, Salesforce is just another CRM system with an Oracle DB at the back and Java to wire everything together. With Custom Objects, lookups and M-N relationships Salesforce is allowing you to model how that DB should look. It's just a comfy way of defining your tables. If it did not allow you, 90% of the scenarios clients have would not be modellable

Collapse
 
bassimsmile profile image
Bassim RAJI

I guess you didn't understand me, I'm not talking about not letting you but adding a junk object to make you do the many many works it add one step to the one working with your database model in Salesforce.

Thread Thread
 
bassimsmile profile image
Bassim RAJI

it's the only solution I know about doing many many relations, so if you know another one or something?

Thread Thread
 
manzanit0 profile image
Javier Garcia

No there isn't any other solution. If you really think about it, there actually isn't any other way of doing it. How else would you implement an M-N relationship model?

Collapse
 
theminshew profile image
Michael Minshew

I'm going to straight up necro this post a bit and ask a few more questions. My company is right on the edge of needing a salesforce developer and if I play my cards right and am comfortable with SF and working in it theirs a real chance I can get my dive into real development and move into that role if i'm ready and able.

Searched for Salesforce and your AMA popped up so I couldn't resist!!

Do you feel that salesforce dev work is akin to full coding with say Java? (version control, scope, etc.)

Did you find Learning Apex to be easier or more difficult than other languages to work with?

Does Salesforce have version control and other such features or do you just upload your source from another source. i.e. github?

What do you wish you had known when you first started learning Apex?

Thanks in advance for any advice or recommendations. I'm probably gonna start going through the SF certification paths next month and ANY advice on getting ahead of the curve would be precious. Thanks!

Collapse
 
manzanit0 profile image
Javier Garcia

Hi Michael!

My advice is, if you start learning it and like it, deep dive into it. It's a growing product and it does offer a lot of possibilities. As for the Development experience, it's getting better as time progresses. A few years ago it wasn't that good, but it's improving now.

Regarding your questions, I'll go one by one.

1) If you're a Java developer, you will easily get the grasp of Apex quickly. Fundamentally you will find Apex is exactly just like java but with 80% less classes and functionality, so it's easier to learn. On the other hand, since in Salesforce you only have to concentrate on very high level problem solving (no file handling, repository layer, etc.), it isn't a problem.

Version Control is probably the most inmature aspect of a Salesforce Development environment, but it's completely feasible. I work with git with my current team and we're all comfortable now. Just not as straight forward as with other technologies since for compiling and running tests, you do it remotely, not in your local env.

2) Apex is overall a VERY easy language. It's OOP, but it lacks features, so if you know C# or Java, give it a couple of weeks and you'll be fine. Nonetheless, Salesforce is not just Apex. You have Visualforce and the Lightning Components Framework for the frontend, which is more complicated. But then again, LCF is just like React, Angular or any of these new JS frameworks. The knowledge is not lost :)

3) Development in Salesforce using Version Control is not all that old, so no. You will find many repositories in Github, but it's not as common as other ecosystems like Java or Python. You would basically have to find whatever package you're interested in, clone the project and upload it to your Salesforce environment via the Metadata API. Again, this is starting to be very automated with the new SFDX CLI. Actually, Wade Wegner made a plugin for this exact purpose not long ago: github.com/wadewegner/sfdx-waw-plugin

4) What do I wish I had known? Probably to code efficiently. Salesforce is VERY hard on its limits. You can't execute more than 100 queries in a same transaction. You can't make more than 100 HTTP requests in the same transaction. You can't query more than 50k records in the same query... It basically enforces you to optimize code as much as possible. Eventually, once you learn, it's good knowledge tho!

5) As for the certifications, I recommend you start with the AppBuilder cert and then continue with the Developer I. There are many resources online though, so don't worry.

In any case, good luck with your new SF journey man! :)

Collapse
 
ionnutt profile image
Ionut Buzatu • Edited

Hi! I am new in salesforce developer platform 1. I want to take the certification salesforce developer platform 1. Actually I fail the exam and now i try to learn more the chapters where i have the problems. Can you give me a good path for learning ? Do you are available to talk wih me about salesforce admin and salesforce developer platform 1? Thank you in advanced ! :)

Collapse
 
alchermd profile image
John Alcher

Hello, Javier! I'm not really familiar, sooo... what is Salesforce and why should we (most developers) care?

Collapse
 
manzanit0 profile image
Javier Garcia

That's a pretty good question actually.

Salesforce is a CRM platform. In a nutshell, it allows any company to keep track of their sales and support cases and other kinds of things related to the lifecycle of a customer. You wanna buy a new laptop? Some sales guy notes it down in Salesforce. You had a problem with the last TV you bought? The case you opened via email is tracked in Salesforce. It's, like I said, a CRM.

And why should you care? The main advantage of Salesforce is that it is COMPLETELY customizable. They have designed a specific OOP language (Apex) with Java-like syntax which allows you to interact with the DB, and all the services of the platform. They also have multiple frontend frameworks which allow you to fully and 100% customize the layout of it. But, on top of all these coding capabilities, they also have a ton of point&click configuration available which turns the platform into a powerhouse.

So... all in all, it's a Platform which you buy licenses for and whose back and front-end you can fully customize with 1% of the effort you would have to invest with other technologies. That and the salaries are much higher than average other technologies.

Collapse
 
alchermd profile image
John Alcher

That's an interesting read. Thanks!

Collapse
 
ionnutt profile image
Ionut Buzatu

Hi ! The Salesforce code is opensource ? I am a little bit confusing about that .

Collapse
 
manzanit0 profile image
Javier Garcia

AFAIK, no. They do have a lot of open sourced things, but not their actual product.

You can find some of their stuff here: github.com/salesforce

Collapse
 
ionnutt profile image
Ionut Buzatu

Thank you ! :)

Collapse
 
jaydray1 profile image
JonMichael Dreher

Hello! Have you ever added any frontend frameworks to the interface utilizing lightning components and/or locker service? If so, curious what the gotchas are...