- π Iβm currently working on JS, Typescript, Python, Dart, Kotlin
- π± Iβm currently learning Dart, Advanced Typescript, Node Backend & Go
- π€ Iβm looking for & am updated with Frontend Everything
- π― Iβm looking to work with Ambitious Developers who prefer quality over speed
- π¬ Ask me about Fullstack in React, Nextjs (+Microfrontends) with Node (tRPC, REST, GraphQL), C# (OData)
- π« How to reach me on social & profressional networks: google -> ahmadalibaloch
- π Pronouns: Runner, Chess Player, Writer, MultiDomain, Unlocked
- β‘ Fun fact: Writing a book "The Unlocking", to grow original humans on earth free from cultural, childhood, family and self imposed locks!
Link: ahmadalibaloch.github.io
Javascript has been at the top for me in all my career (7+ years). In addition, I have experience with Python, .Net and now Node.js (Prisma, GraphQL) for backend development. On frontend, I have experience with React (3 years +) and Angular. I have extensive experience with data visualization (Echarts especially), mapping (open layers), live data stream and trends rendering. The Micro-Frontends solution for a suit of products here at Intech, with shared components, libraries is also the achievement I count.
Do you have any experience of working with the development team? Please explain what role you played in what kind of team.
I joined as Senior Front End Developer here at Intech in a team of 15 people. We followed the two weeks sprints, agile methodology. Overtime when apps were near launch, we customized the agile, to have possibility of adding some issues/bugs during the sprint to the bucket of developers. Each developer was assigned a module which he was responsible for but not limited to. We, as a team were responsible for our micro-service which consisted of backend and frontend of a web app, using a number of services in a bigger platform, hosted in our own cloud using DCOS later migrated to Kubernetes.
What is your biggest achievement in your career? If thatβs a team achievement, please explain what did you contribute to, in order that the team makes the achievement.
I count a goal as an achievement, when it really is complete (like a published app) and beneficial to end users. Creating this platform called Teamplay here at Intech, on top of which we are now creating many applications is a recent two years achievement in my career, as a team. We faced many technical problems to achieve it. We had to replace many technologies after we found some breaking issues. We have created a solution for micro-frontends, that is unique to our use case, there is a single layout in which many apps get mounted on runtime. There are up to 5 teams dependent on the platform. Many independent apps are now being developed dependent on the basic, scalable, maintainable services of this platform.
Please share any personal output as an engineer. If itβs an achievement related to your work, please tell us to what extent you were committed to the achievement in details.
I was assigned the visualizations module and rendering live streams when I joined my recent job at Intech. I created a service extending MQTT web client, working on top of WebSockets, managing connections and resiliency to keep data synced on frontend, that is the core slogan of this platform, NO DATA LOSS. This service is now being used by almost all apps in the suit and I am proud of that well defined structure.
Apart from that I created a live line trend, which is the main visualization. It has a number of features and controls for interactivity. I created live maps visualization and many other types of charts. I created another, reporting feature using selenium python/google puppeteer, which would send mails to users on scheduled times for dashboards.
There are many side projects for example some native android apps, developed in Kotlin to present data and show ads. There are also some fun projects and other purpose oriented.
To achieve this all, I have to learn outside of office hours and create many POCs, do R&D, which has added a lot to my knowledge. Sometimes I would sit late in office but I like to be pro-active and do/learn things upfront.
If you have any experience aside from frontend, please explain it. We would like to know, in what area and how far you are familiar with.
I also have professional experience as a Native Android developer. I have some interesting apps published on Playstore, they use Google Cloud as backend, cloud functions, cron jobs, and other related services. I have machine learning experience, trained some ML models stored on GC, which filter the data for these apps. With JS, I used .Net on backend, in our previous company, so I have about 4 years of experience with .Net. Python on the backend. I also contribute on stackoverflow and Github whenever I find an opportunity.
If this question is about frontend then of course the framework I am mostly using is React. For my personal apps, I use Angular, with Nrwl which makes it easy for creating libraries and shared components. In React, I am using latest features introduced in current versions of React like Suspence and Lazy loading of course with React Hooks. I am also ready to move to Angular Ivy when it launches for side projects. We recently moved to GraphQL, for our backend, for which we use Prisma on Node.js here at Intech.
If you have any experience of management or lead, please explain it. (How many people were there in the team? What kind of team you were managing?)
Currently I am working as Lead Developer and Technical Product owner. I have a team of 3 people here at Intech, of which two are fresh grads and one experienced. I assign them tasks in sprint, do code reviews, guide if there is any breaking issue or technology selection. The sprint issues are picked from backlog with the help of product owner and scrum master. Apart from work related help, I want to keep my team members motivated and pro-active. Ask them to learn new technologies and we have created a special channel where we share latest findings. Before this I worked as a senior developer where I was also guiding a junior developer, who now owns many of the modules I developed.
Do you have an experience of agile or scrum? Also, to what extent are you familiar with team development experience by agile software development?
I have already explained our mythology in one of above questions on our custom agile, where we need to have some open time for burning issues or bugs as our apps are now live. We follow two week sprints, before a sprint we do sprint planning where developers are assigned tasks and estimates. At the end of sprint we do a small demo and sprint analysis or reporting. I believe we should follow systems and respect people to create a healthy and motivated development environment. To stop disturbance during sprint from external teams, we appoint one of our developers as fire-fighter, and all other teams like delivery team, and data science team, are expected to reach that person for any issue. If it is a small issue, they would resolve it or get in touch with the specific person at a right time.
If you have your own idea or strong thoughts of architecture or design regarding frontend development, please tell us.
I believe in following a best practice and then sticking to it, if there are no breaking issues. Of course we need to be evaluating or approach and technologies, but there should be a known path or strategy well defined, even if it is custom. Front-end development is diverse and has a huge scope in terms of technologies selection. One thing I learnt migrating to Typescript is that if the team is larger then 2 persons, then they must start with Typescript, that helps a lot. Regarding css, use SASS, and proper variables. Regarding core app development, if using React then other technologies like http library and layouts design library (if any) should be well mentioned and known in a team.
Yes, I am responsible for my own docker/service deployment, its maintenance, logs and versioning. I have working knowledge of bash and other needed commands. I use Ubuntu Linux and sometimes Windows.
Please let us know the details of your experience of developing SPA, PWA, SSR etc if you have any. Also, please let us know how you've involved with the architecture or design of those? If you could answer specifically it would be great.
Single Page Applications is the core skill I am working on for the recent years in my career. I have understanding of the issues like OAuth, permissions, sessions, in SPAs development. I have recently created a service worker, for refreshing JWT tokens, that was an interesting learning.
In terms of product development with the team, if you have experience in improving performance/ scalability etc, please describe it specifically. What kind of service was it? How big the system size was? How did you contribute to the team?
I have two things to share, one on the frontend and another on the backend. When designing a little library consisting of a service for live line trend, I got the challenge to keep data synced in case of network failure and also performance issue when adding play/pause feature. I have to go deep into the date time issues as well make some improvements in the mqtt original library itself for data sync issue. For performance I tricked into updating arrays in background even in paused state but not rendering UI, that solved my issue of play pause very easily. That was a well spent time on something worthy in the future. In our Python (flask) backend application, we faced the problem when scaling, that there were a number of open DB connections, increasing, always killing the db service. Finding the problem was a challenge but tracking from front-end to back-end using divide and conquer yielded the result.