Moran Danieli-Cohen

Moran Danieli-Cohen

Software Engineer

With a true passion for programming and design, I build systems, applications and complex services running concurrently on multiple servers.

I started studying computer science independently at the university at the age of 14, pursuing my dream becoming a software engineer and I keep exploring software ever since. More about me here.

Manage Your Software Projects Like a Pro

Manage Your Software Projects Like a Pro

19 Feb 2017

You may be a software engineer that is writing some code or a team leader responsible for implementing a full system refactoring. Either way, these best practices will help you get your software project out of the door.

Every developer knows that it does not matter if you work in Agile, Scrum, Lean, Kanban or Waterfall methodologies, when it comes to software projects — something always gets out of control. Requirements tend to change frequently, time estimations are a wild guess, coordination with other teams is not good, and every person in the release chain can easily fail the deployment. How can software engineers deliver under these conditions?

Read More...

Expedite the Learning Curve When Approaching New Technologies

Expedite the Learning Curve When Approaching New Technologies

05 Feb 2017

Diving into new technologies is not easy, especially when you are already an expert in another technology. It’s like learning a new language: You are afraid to sound stupid speaking it, but it’s the only way to improve. How should new technologies be approached? Specifically, how can you overcome the steep learning curve and expedite it?

A few years ago, I became responsible for a new system. The code was in Lua and used Nginx as the HTTP server. I was programming in Ruby and wasn’t familiar with these technologies. As a young programmer, the thought of diving into massive amounts of unfamiliar code written in an unfamiliar language with minimal guidance terrified me. Since there was no other option I just did it. I learned the code, performed occasional bug fixes and wrote new features. It was not easy at the beginning: Each debugging session took hours, and I had to test every new feature countless times. There were many hours staring blankly at a screen.

Read More...

5 Steps for Expanding Your Technical Knowledge Systematically

5 Steps for Expanding Your Technical Knowledge Systematically

12 Jan 2017

For many years I didn’t gain any new technical knowledge outside of work. Everything I learned was based on things I was doing at work, and indeed I was a super-expert in the company’s products, but lacked general knowledge in everything else.

The main reason that I didn’t learn anything new was that I couldn’t fit it into my already-packed schedule, and I never had the time for it. I was also pretty successful at my job, so it was something that always stayed a low priority.

Read More...