Code before you think
I tend to think and design by UML before coding. The heaviest work-load should be the thinking instead of the coding. Coding is a representation method to show how do you solve the problem by some abstracted logics and should be a manual work regarding the result of the design and thinking.
Bad time arrangement
As a Developer, we always have to provide the ETA (Estimated Time of Arrival) to the management. How to prioritize your works and schedule are very important to every developer. Indeed, some unpredictable requirements changes could be one of the problems that could break your plans. For the quality of development, you should reject or delay some last-minute requirement changes politely.
Bad coding style
Modulizing your structure is very important for preventing any bug among your code. Every function should have one responsibility. The code structure should be similar to a Tree structure. That means you can separate different levels on your function structure from low to high.

No testing in time even after building a function
After I have developed a function (no matter how low level is), I will test it immediately. As a function must have Input and Output all the times, I will try to find out more about the general case and boundary cases with different input. Finally, you have to upgrade your division to a higher level for wide-angle analysis. Will it affect other functions? What else condition do I also need to check as well? Will this function be used in another situation? What are the boundary cases on the parameters of this level? Will it affect lower-level unit functions?
Emotional Problem
Everybody be affected by emotion after especially non-stopped over-time working for more than 10 hours. Sometimes, I just get rid of what I am doing can help a lot for myself. Do not struggle with the problem until you completely burn out, just get away and take a break and rest for 10-20 minutes to allow yourself to go further.. Emotion will always affect your thinking in unconscious ways and bring yourself more bugs.
Professional thinking
I never hid my problem when I got any bugs on testing or even production stage. Saying sorry is one of the professional behaviors, it will also make you think more about how to improve yourself. Besides, What if a Flight Engineer creates a bug? What if a doctor who creates a bug during a surgery? What if a Developer who never checks the parameter in every API in Banking System? A bug will always cost a lot than your thoughts.
