Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com, and an instructional professor at the University of Houston.
He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects.
Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You can reach him by email at venkats@agiledeveloper.com or on twitter at @venkat_s.
We place a lot of importance on architecture as we should. However, we learn about the needs and requirements for the application over time. Furthermore, new expectations often arise. Not evolving architecture is risky, but there are risks in evolving architecture as well.
Creating code is easy, creating good code takes a lot of time, effort, discipline, and commitment. The code we create are truly the manifestations of our designs. Creating a lightweight design can help make the code more extensible and reusable.
Creating a good design is hard. Learning about principle helps, but seeing them in action can help to reinforce the concepts. Furthermore, we can get clarity on how to approach design and exercise some rather common approaches that are hidden in plain sight in libraries we use each day.
Multithreaded programming in Java is changing quite significantly in the near future. Threads were once considered lightweight but soon will face the challenges of Fibers which are considered to be super lightweight.
How can we tell if a design is good, bad, or ugly. Design is qualitative and we can certainly express our opinions. However, where possible, creating quantitative measures can help us to evaluate progress and steer towards better design.
MicroServices, that is the new rage. Many companies want to split their monoliths into microservices. With every single technology, the adoption goes through cycles: we learn about it, do it wrong, learn from the mistakes (hopefully from others more than our own), and get better at using it. In this presentation we will learn about some dos and donts for microservices.
Many developers aspire to become architects. Some of us serve currently as architects while the rest of us may hope to become one some day. We all have worked with architects, some good, and some that could be better. What are the traits of a good architect? What are the skills and qualities we should pick to become a very good one?