Skip to content

What goals were you working toward?

What can you do?

What do you want to do?

Improve the way we do things

  • I enjoy developing tools that would help developers and systems engineers with their day-to-day work.
  • Day to day, we encounter gaps within our workflow. Often times, people take manual steps to fill this gaps.
  • Say you want all developers to use a certain version of a software
  • Or, when you deploy code, you need to run several automated test
  • Or, you need a way to centralize logs for all products in your portfolio
  • how would you accomplish this.
  • How do you roll out a systemmatic, consistent pipeline of delivering software?
  • How

  • I develop tools to bridge the gap - I am that missing piece.

Automation

  • When you’re not automating the process, you’re creating manual one. These manual steps usually require communication from a person to another.
  • As the path of communication gets wider, the original set of instructions or documentation are misinterpreted, miscommunicated, and not maintained.
  • Computers, on the other hand, are way better at running repetitious tasks accurately. We should write scripts to automate any manual process in our release process.
  • Commit the automation script in source control for other developers to collaborate and improve the process.

Documentation

  • My old manager who had since retired used to say: What if you get hit by a bus the next day?
  • I am a big fan of doumentation and keeping up with documentation.
  • In my opinion, code is only complete with good documentation
  • Anyone should, in any region of the world should be able to read your documents and understand what's happening
  • this includes diagrams, images or even videos

Leadership

  • At Pearson, I am not only developing code but also leading a team
  • I hate the culture of one-man-army where one person has the knowledge of the software since he is the only person that wrote it. I think a good software if never final. It's always evolving. And is should. But it must be a collborative effort. Where ideas are opposed and agreed upon.
  • I also don't encourage tribal knowledge. This is when a particular skill set is only shared among a group of people. As a leader, I hate passing of a information. This is where I encourage documentations and healthy debates.
  • As a leader, I also want to enable others to innovate (not just for myself). I want to create a culture of experimentation where people can try and fail. I do this a lot with my team.
  • As a lead, I proposed that each member should work an project apart from day-to-day projects (Jira stories), as a result, we found a way to cut our operating cost by 70%

Deploying through the pipeline involves three main phases:

  1. Building the infrastructure — provisioning and managing the environment in which your software will run
  2. Installing the software and its dependencies — installing the correct version of the software into the infrastructure
  3. Setting up configuration for software — configuring your software and database, including any data or state it require

Experiment

  • Treat everything as an experiment. There are no failures only failed hypothesis. We keep trying and experimenting until we get the desired outcome.