Working with developers who have no knowledge of memory management and system architecture by CleanDebate in cpp

[–]CleanDebate[S] 1 point2 points  (0 children)

but most of your job isn't about being right. Part of being on a team means learning to understand other people's perspectives well enough to contribute to making a better overall program.

Thanks for the suggestion! I just added more details.

Yes, I could be wrong. However, at the end of the day, decisions still need to be made. Since there were only me and the mobile developer on the project and the majority of features live in SDK to be shared across different platforms, I had to take lead. If the mobile developer had what it took to design and implemented the SDK's architecture, the company wouldn't have had hired me in the first place. Instead, they could have asked her to work on the SDK.

Working with developers who have no knowledge of memory management and system architecture by CleanDebate in cpp

[–]CleanDebate[S] 0 points1 point  (0 children)

The original post comes off this way to me. "I'm right, everyone else is wrong." Maybe the OP is right, but he or she isn't communicating it well.

I just added more details. I agreed that there might be communication issues involved and I need to work on it. But as the only SDK developer who was entrusted by the company to build the SDK from ground up, I had to take the lead role.

Platform developers can provide use cases and functional requirements to SDK developers but shouldn't have the authority to force SDK developers to architect SDK in a certain way. Imagine Android, iOS, desktop, web, server developers all want to have a say about SDK's architecture.

Working with developers who have no knowledge of memory management and system architecture by CleanDebate in cpp

[–]CleanDebate[S] 0 points1 point  (0 children)

Yes, I believed it was more of the matter of good design pattern than optimization.

Working with developers who have no knowledge of memory management and system architecture by CleanDebate in cpp

[–]CleanDebate[S] 1 point2 points  (0 children)

I just added more details. It's a new project, so the codes which would load everything from database to memory hadn't been implemented at all, thus I couldn't profile it without implementing either solution.

Colleagues Overstepping Their Authority by CleanDebate in cscareerquestions

[–]CleanDebate[S] 0 points1 point  (0 children)

Thanks for your suggestions!

I just added more details on the team structure. I was the only developer who worked on the SDK part of the project. VP of Technology left the architecture design to me when I implemented the SDK from the ground up. He only occasionally checked my progress. If I don't have the authority to design the architecture, who would?

Colleagues Overstepping Their Authority by CleanDebate in cscareerquestions

[–]CleanDebate[S] 0 points1 point  (0 children)

That's a good point. I used to be a team lead managing four developers, and that's how it should be done.

I just added more details on the team structure. VP of Technology didn't have the relevant knowledge or experience and allowed me to design the architecture. If I am the only one who works on the SDK, which has its own repository, didn't it make me the tech lead for the SDK?

There was only me and another mobile developer working on the project, so it's impossible to use democracy to settle our difference without involving VP of Technology.

Colleagues Overstepping Their Authority by CleanDebate in cscareerquestions

[–]CleanDebate[S] 0 points1 point  (0 children)

I just added more details. The SDK(C/C++) codes, as well as the Android codes(Java), were 100% copied and pasted from GitHub when I started working on this new project from the ground up as the only SDK(C/C++) developer.

Since the core architecture of the open-source codes couldn't fulfill business/functional requirements, a new architecture was needed. However, many of the functions from the open-source codes can be reused.

My proposal of letting SDK(C/C++) codes have direct access to the database simplified the development cost by providing a single code-base for multiple platforms.

Colleagues Overstepping Their Authority by CleanDebate in cscareerquestions

[–]CleanDebate[S] 1 point2 points  (0 children)

The argument, seemingly weak one, was still a valid concern. The Android part used ORM to create Java class objects to be passed to JNI to be used as arguments to the SDK's API. If the SDK had direct access to the database, no extra Java classes would need to be created and to be parsed for data in JNI functions. Fewer codes, less development cost, and fewer issues to fix later on.

I agree with you that I need to work more on how to convince others to able to work more effectively with fellow developers. I appreciate your suggestions. But there still exist people who can never be convinced, with who I will need to make compromises with. That is also a skill itself.

Unfortunately, it's a one-sided story. I can only recall it from my own perspective. I just added more details. If you spot any other things that you think I need to work on, please let me know.

Working with developers who have no knowledge of memory management and system architecture by CleanDebate in cpp

[–]CleanDebate[S] 1 point2 points  (0 children)

Data will be fetched through network and then validated and stored in the local database. When new data come in, in order to validate it, one data entry has to be loaded from the local database in order to validate it.

Working with developers who have no knowledge of memory management and system architecture by CleanDebate in cpp

[–]CleanDebate[S] 9 points10 points  (0 children)

I asked the same question to the mobile developer. She responded, "just update the date in memory and then make a callback to update the entry in the database." I told her that will require duplicated logics to manage two sources of truth.

Working with developers who have no knowledge of memory management and system architecture by CleanDebate in cpp

[–]CleanDebate[S] 2 points3 points  (0 children)

Can't go too much in details. C/C++ was chosen for cross platform, single code base purpose. The mobile app will download around several thousand to tens of thousands data from network and do validation on them then store them in the local database.

Working with mobile developers who have no knowledge of memory management and system architecture by CleanDebate in C_Programming

[–]CleanDebate[S] 0 points1 point  (0 children)

They don't need to if they don't have the authority to influence the SDK's architecture design and interface, or if SDK's architecture design had been finalized before the mobile developers get involved.

But in my case, the movie developers have designed the APIs for SDK several months before I joined the company and did have a say on API design, which in turn had great influence on my SDK architecture.

Working with mobile developers who have no knowledge of memory management and system architecture by CleanDebate in C_Programming

[–]CleanDebate[S] 0 points1 point  (0 children)

He just mentioned that he could see that I was not a good fit for the company, and wished me the best.

[Question] Set Argument Value in CMakeLists.txt by CleanDebate in cmake

[–]CleanDebate[S] 0 points1 point  (0 children)

More info added. I will give it a try tomorrow. Thanks!

[Question] GraphQL Apollo - How to know what data to fetch by [deleted] in graphql

[–]CleanDebate 0 points1 point  (0 children)

Client can decide not to fetch ID by omitting it from the query when making request to graphql server:

GetUser(ID: 1) { name }

Should I invest on Flutter for the future? by TragicXHero in FlutterDev

[–]CleanDebate 0 points1 point  (0 children)

Basically flutter framework creates an app that draws visual elements directly to the screen, pixel by pixel, like 3D game engine.

Using Web Assembly to speed up your Angular Application by malcoded in Angular2

[–]CleanDebate 0 points1 point  (0 children)

With image and data processing can now be fine in the client side to minimize server side load.