Questions and answers about my development process
Q. How long have you been developing commercially?
- 10+ years, since 2007. My first commissioned Java project was for a Canadian Member of Parliament to scrape phone book names and addresses to regularly clean up mailing lists to save thousands of dollars on postage.
Q. What programming languages/scripting do you use the most?
Q. What other languages are you familiar with?
Q. What are your core strengths?
- I focus on SOLID2, reusable and modular code, for example, using composition and inheritance properly to keep DRY3 and organized. I emphasize input and internal checks by throwing exceptions and logging warnings. My comments are very detailed so anyone can follow them. I use git and feature branches often. I use unit and integration testing often as well.
Q. What are your favorite development and collaboration tools?
- IntelliJ, Docker, Git, VMWare, Github/Bitbucket, Slack, Hangouts, and Lucidchart
Q. What excites you the most about software development?
- Automation and algorithms. I love building modules and tools that run on their own. If designed right, I shouldn’t need to actively monitor them. For example, my CSV-SQL business-data processor runs continually without operator involvement.
Q. What management experience do you have?
- As a senior developer and scrum master, I manage and lead a team consisting of front-end devs, QAs, and other back-end devs. I prepare timelines and plan for milestones, as well as communicate effectively with stakeholders. Additionally, I have to manage vendors and data suppliers to bring all aspects of my projects together. I’ve also interviewed others devs and QAs.
Q. What have you accomplished in your previous position?
- I’m all about wins. I’ve have had a lot of accomplishments in my current development role. For instance, I’ve greatly increased site speed and performance, tightened security, and built many fun site features including a phonetic-based search system. I’ve also delivered projects on time and on budget.
Q. What was the most challenging project you’ve worked on?
- I refactored a massive, uncommented code base that was over 10 years old and had passed through several maintainers. It was using deprecated and removed class methods, silenced errors, lack of any objects or classes, and it was almost entirely spaghetti code, with duplicated code in many places and magic numbers throughout. It took about a month, but I refactored the code base into DRY, beautiful classes with thorough comments and documentation.
Q. How do you stay current?
- I read and contribute to StackOverflow almost daily. I also take Lynda, Coursera and Udemy courses to keep up to date on new or popular frameworks. Finally, I’m active in the Vancouver Meetup circles.
Q. What are your future goals?
- Machine learning and big data is the future, so in my personal time I’m experimenting with convolutional4 and deep neural networks with Java and TensorFlow, combined with R1, to gain insights into things like visitor traffic and quantitative finance. I would like to align myself with like-minded individuals and organizations.
- R Statistical Programming Language – https://www.r-project.org/about.html ↩
- SOLID = Single responsibility principle, open/closed principle, Liskov substitution principle, interface segregation, dependency inversion principle. This is the opposite of so-called STUPID code. ↩
- DRY – Don’t Repeat Yourself ↩
- https://en.wikipedia.org/wiki/Convolutional_neural_network ↩