Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
11 views6 pages

Software Engineering Experience

The document outlines a software engineer's recent acquisition of DevOps and Jenkins skills, emphasizing the importance of automation and infrastructure knowledge in software delivery. It also discusses the desire to learn management skills for better team dynamics and leadership, alongside a comprehensive overview of past software projects, programming languages, and experiences with open source development. Additionally, it touches on networking knowledge, relational and NoSQL databases, Linux familiarity, and personal projects, while concluding with reflections on education and the mission of Canonical.

Uploaded by

sahil c
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views6 pages

Software Engineering Experience

The document outlines a software engineer's recent acquisition of DevOps and Jenkins skills, emphasizing the importance of automation and infrastructure knowledge in software delivery. It also discusses the desire to learn management skills for better team dynamics and leadership, alongside a comprehensive overview of past software projects, programming languages, and experiences with open source development. Additionally, it touches on networking knowledge, relational and NoSQL databases, Linux familiarity, and personal projects, while concluding with reflections on education and the mission of Canonical.

Uploaded by

sahil c
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

Software engineering experience

 Describe a skill or knowledge you acquired recently that has been impactful for
you. Why did you make this investment? What has the outcome been?

Recently, I acquired skills in DevOps and Jenkins during my first week at


Smowcode. I was tasked with learning Kubernetes, configuring EKS, optimizing
autoscaling, and automating deployments using Jenkins—with integrated testing
and auto-rollback. I chose to dive into this area out of curiosity and a desire to
explore the infrastructure side of tech. The experience was eye-opening; it gave
me a deeper understanding of how code reaches users, improved my
development practices, and highlighted the value of automation in delivering
reliable software efficiently.

 What new skill would you like to learn? Why do you think this is important or
timely or interesting? Why do you think you will be good at it?

A skill I’d like to learn is management. While coding can be mastered through
practice, management is more experiential and shapes you into a more reliable
and efficient professional. It’s a crucial skill that, when learned early, gives you a
strong edge in team dynamics and leadership. I believe I’d be good at it because
I’ve already had some experience managing teams during university hackathons
and guiding interns at work. Balancing mentorship with my responsibilities taught
me the importance of empathy, clear communication, and trust - qualities I’d like
to deepen as I grow in my career.

 What kinds of software projects have you worked on before? Which operating
systems, development environments, languages, databases?

1. I’ve worked on a range of software projects throughout my career. During my


internship at HDFC Bank, I contributed to developing an Express Loan
Automation system that enabled loan approvals within minutes. After that, I
joined Smowcode as a full-time software developer, where the core project from
day one was building a new graphical programming language along with its own
compiler and software environment. This system is designed to visually program
microcontrollers used in IoT applications, making embedded development more
accessible.
At Smowcode, I worked across the full stack—backend, frontend, DevOps—and
also contributed to setting up and maintaining a Linux-based development server
environment.
Languages: C/C++, C#, Python, Java, HTML/CSS, JavaScript, Node.js, React.js,
Next.js
Databases: PostgreSQL, MySQL, MongoDB
Operating Systems: Windows, Linux (Ubuntu), macOS, FreeRTOS
Development Environments: Primarily worked on Ubuntu; set up and managed
dedicated Linux development servers
 Would you describe yourself as a high quality coder? Why? When you are looking
at code, how do you decide if it is high quality?

Yes, I would consider myself a high-quality coder because I consistently


approach problems with a strong focus on algorithmic clarity, robustness, and
maintainability. When writing code, I emphasize not just correctness, but also
modular design, scalability, and edge case handling. I believe high-quality
code should be readable, well-structured, and resilient to change. principles I
follow through thoughtful naming, separation of concerns, and defensive
programming. Additionally, I regularly review and refactor my
implementations to improve efficiency and clarity, ensuring the codebase
remains clean and easy to maintain over time.

 Outline your thoughts on open source software development. What is important to


get right when you are working on open source projects? What open source
projects have you worked on? Have you been an open source maintainer, and can
you point to those projects?

I see open source as a key driver of innovation and collaboration in tech. It


makes software more accessible and improves rapidly through community
input. The most important aspects of contributing are writing clean, readable,
and reliable code, along with good documentation to help others understand
and build on it. While I haven’t been an open source maintainer yet, I’ve
contributed through bug reports, suggestions, and small fixes, and I’m looking
to get more actively involved going forward.

 Our primary languages are Python, Golang, C/C++, Rust, JavaScript / TypeScript,
and Bash. Please write about your familiarity with any of these, prioritizing the
ones you know best. How extensive is your experience of them? How do you test
applications in these languages?

I have strong experience with C/C++, Bash, JavaScript, and Python, with
working knowledge of TypeScript. At Smowcode, I was involved in building
our custom compiler, which translates graphical flow-based logic into C code
for programming microcontrollers. This involved designing complex
algorithms and data structures in C++, giving me deep insight into language
internals and performance optimization.

In Bash, I wrote scripts to automate DevOps tasks—like capturing user logs


and uploading them to S3—and created deployment tools using Grunt to help
developers manage their environments efficiently.

With JavaScript and Node.js, I developed key backend features, including a


premium functionality that exposed C code to users. I handled both unit and
integration testing using Jest, ensuring high code coverage and stability. For
backend performance testing, I used K6 for stress, soak, load, and spike
testing. On the compiler side, I used Google Test in C++ to validate logic and
correctness across various graphical code scenarios.

I've also used Python for scripting and automation, and I’m comfortable
working across Linux-based environments and toolchains.

 How comprehensive would you say your knowledge of networking is? How have
you gained this knowledge?

I have a strong understanding of networking concepts, with hands-on


experience working with various protocols such as MQTT, CAN, and TWAI,
which are commonly used in embedded systems and IoT applications. My
knowledge spans across multiple layers of the OSI model, and I’m
comfortable working with both low-level and application-level protocols.

One of the more complex networking challenges I tackled was during my


work on AWS EKS infrastructure. We encountered an issue where the default
AWS load balancer would treat failed pod requests as active, causing those
pods to become unavailable while the queue continued to grow with unserved
requests.

To solve this, I designed and implemented a custom load balancer


algorithm. It monitored the queue duration of each request, and if a request
was stuck waiting too long, it would reroute it to an idle pod instead of
waiting for a response from a potentially unresponsive pod. This significantly
improved the availability, responsiveness, and fault tolerance of our
microservices deployed in the Kubernetes cluster.

This experience strengthened both my practical networking knowledge and


my ability to optimize system-level behavior in distributed environments.

 How have you used relational data, such as SQL databases, in your work? How
much data model design work have you done? What has been unexpected for you
in working with structured data models and design?

Yes I have used re

 Which NoSQL or unstructured data stores have you used? Are there any you would
not use again, and why? How do you reason about choosing the right data store for
a project?

 How comprehensive would you say your knowledge of a Linux distribution is, from
the kernel up? How familiar are you with low-level system architecture, runtimes
and Linux distro packaging? How have you gained this knowledge?

 Describe any experience you have with low-level embedded systems engineering,
on Linux or other embedded operating systems and code bases.
Your favorite or best personal project

Many candidates have tackled some personal project, not because it was coursework or
curriculum, but because it was very interesting to them. This might be something from
scratch, or it might be a fork or contribution to a piece of open source. Don't worry if you
don't have one, you can just skip this section. But if you do, please answer these
questions, and we might ask you to walk us through it later.

 Briefly describe this personal project. What were you hoping to achieve?

 What inspired you to write this piece of software?

 What language did you choose to write it in, and why?

 Which part of the exercise did you find most difficult? What did you learn?

 How did your code perform?

 Was there any particular part of this system that you felt a need to get absolutely,
completely perfect? Why? How did you go about that?

 Is there anything you would do very differently if you were tackling this problem
again now?
Education

We consider academic results in high school and university for all roles, regardless of
seniority. In every discipline, from engineering to marketing to operations and sales, we
intensely value colleagues who are able to puzzle through difficult problems and find the
optimal path forward.

 How did you rank in your final year of high school in mathematics? Were you a top
student? On what basis would you say that?

 How did you rank in your final year of high school, in your home language? Were
you a top student? On what basis would you say that?

 Please state your high school graduation results or university entrance results, and
explain the grading system used. For example, in the US, you might give your SAT or
ACT scores. In Germany, you might give your scores out of a grading system of 1-5,
with 1 being the best.

 Can you make a case that you are in the top 5% in your academic year, or top 1%,
or even higher? If so please outline that case. Make reference where possible to
standardized testing results at regional or national level, or university entrance
results. Please explain any specific grading system used.

 What sort of high school student were you? Outside of class, what were your
interests and hobbies? What would your high school peers remember you for?

 Which university and degree did you choose? What other universities did you
consider, and why did you select that one?

 Overall, what was your degree result and how did that reflect on your ability?
Please help us understand the grading system for your results.

 During all of your education years, from high school to university, can you describe
any achievements that were truly exceptional?

 What leadership roles did you take on during your education? Did you conceive of,
and drive to completion, any initiatives outside of your required classwork?

 Did you participate in any social or community initiatives during your education?
Were you recognized in any way for this?
Context

 Outline your thoughts on the mission of Canonical. What is it about the company's
purpose and goals which is most appealing to you? What do you see as risky or
unappealing?

 How should Canonical set about winning, commercially?

 How should Canonical amplify its impact in open source?

 Why do you most want to work for Canonical?

 Which Canonical products would you most like to work on?

 What gives you the most satisfaction at work?

 What would you most want to change about Canonical?

 What gets you most excited about this role?

You might also like