Iman Akrami
Web Developer
Location: Iran
Willing to relocate: Yes
Email: iman.akrami@gmail.com
Phone: +98 935 465 69 42
Website link: https://cv.imanebula.com
LinkedIn | Twitter | Github
Professional Summary
Full stack web developer with considerable experience in developing, tech leading, and road-mapping large-scale applications; about 2 years of team management and onboarding experience, frameworks, and technologies such as Next.js, react, and Node.js.
an agile and avid learner and someone who welcomes challenges and can take responsibility for what he's supposed to do.
Friendly team member. loves to pass on knowledge and to improve himself and others constantly. is not afraid to change direction, learn and apply interdisciplinary skills and expand his responsibilities if it's needed. educationally ambitious within reason yet humble in accepting his professional shortcomings. ready to work hard to gain the trust, friendship, and respect of co-workers and gives as much value as possible professionally to the client or the company.
Work History
Avid Arvand / Notionwave
->UAE (remote) / Iran
Web Developer and Tech Lead
January 2020 to present
- Attended and participated in designing the architecture and data model of the new large-scale, exam app which had to support multiple global standards and dynamic and not limited to the k12 system.
- Applied solutions for requirements such as multi-tenant, multi-lingual, burst-like user behavior, and infrastructure issues ( because of the lack of AWS and similar services) in the country.
- Worked with the designer to translate technical and business requirements to UI/UX designs in Figma.
- Resolved multi-level caching problems for the large-scale app and set up a caching strategy from the client-side to CDN, to Redis, and in-pod memory cache while developing a cache invalidation for different resources and scenarios in mind.
- Utilized Jotai, a modern atomic react state manager to handle client state management in the project.
- Used Apollo client with its middleware pattern to set up retry, serialization, batching and error handling.
- Built type-safe GraphQL, and rest APIs.
- Used BullMq to handle calculation or I/O heavy operations such as exam result calculation in jobs or high amounts of burst requests in the exam process.
- Participated in the design and implementation of social features to the app by handling client-side and server-side connections to another micro-service of the company.
- Optimized client-side performance by profiling, using best react practices, and using Nextjs static generation when possible.
- Ran and oversaw load tests using Fargate and k6 to assess the app's behavior under large loads.
- Wrote unit and integration tests for the product.
- Designed a multi-level review process to use as both a quality control tool as well as an educational one.
- Used SonarCube to ensure code quality and embedded it into the team's review process.
- Used and contributed to an in-company UI library using semantic versioning, babel (and later SWC) build tools, and resolving some Commonjs/ES-modules problems for publishing packages.
- Configured Webpack in order to add custom loaders, handle some NPM modules differently, and so on.
- Held short weekly meetings with the developers of the team to gather feedback on how the project can be technically improved from the POV.
- Greatly reduced task completion time by writing a self and peer-review checklist as well as communication protocols between team members to reduce lag time, especially for remote developers.
- Created a fun gamified experience to peer rate co-workers in retrospective meetings.
- Utilized design tokens as a modern way for giving control of the app design to the UI designer.
->Tehran
Junior Web Developer
January 2020 to January 2021
- Picked up LiveScript ( a rarely used language similar to CoffeeScript )
- Worked on a project with a relatively legacy tech stack ( old react, rare compiled language, custom home-made solutions such as state management, no linter, no formatter)
- Developed new features while having a relatively large user base in mind (120k).
- Worked on microservice architecture, NoSQL database, class-based React, and Socket.io as the base of client/server communications.
- Added third-party services to the app ( Covid era ), like Jitsi video conference support, analytics, in-app student support, and logging.
- Helped new developers by code reviewing and pair programming.
- Added (IMS) LTI support to the app.
- Done Minor CI/CD optimizations.
- Designed and developed a voucher code system (both backend and frontend) to accommodate business needs.
Farapak
->Tehran
Website Manager
Jan 2019 to Jan 2020
- Managed the company's WordPresswebsite, SEO strategies, and hosting solutions.
- Applied best practices to improve key web metrics.
- Applied HTML and CSS tweaks to WordPress themes.
- Translated (RTLed) some WordPress themes
Skills
Technical
JavaScript
TypeScript
SQL
CSS
Node.js
TypeScript
Cache strategy
GraphQL (Apollo)
MongoDB
PostgreSQL
Docker
Git
Prisma
React.js
Jotai
Stylus and styled components
Package publishing
Project Management
Kanban Methodology
Scrum
Technical Analysis
Onboarding and Team Development
Team Communication
Adaptability
Languages
Persian(Farsi): Mother tongue
English: Fluent
Related Studies and Interests
3D softwares
Virtual Reality
Artificial Intelligence
AWS ecosystem
Cryptography
Education
Kharazmi University
Tehran, Iran
Masters of Educational Technology
2020
First in the class
Javad University
Yazd, Iran
Bachelor of Architectural Technology
2016
Sampad High School
(National Organization for Development of Exceptional Talents)
Sari, Iran
Mathematics
Accomplishments
- Managed to rise to a tech lead position, in about 3 years
- 3rd place at National Digital Content Creation Contest.
- Honorary diploma from the University of Sharif.
- Most innovative Idea award at Sharif's annual national app design contest
About Me
There is a reason I have chosen to switch to programming as a career, even though I was indeed successful in my (unmentioned) Architectural Technology career. I am in love with learning and education. The first question I've asked from any employer is, will there be room for me to grow? will there be people and environments to challenge me to the extremes? I learned to read by myself at the age of 4, and I do believe if there was a mission for a person on earth, mine would be learning and solving problems.
my previous job didn't have that, not for me at least. in programming, I saw an opportunity to solve problems and enjoy doing them, as well as actually being encouraged to do what I love, learn new things, and improve what I already know. This is probably what helped me grow pretty fast in my job and be promoted to the tech lead of the team. I don't have any delusions, I need to learn a lot. but I still think this quality, that I love what I do, and that I have a passion for, should be important for my employer. someone who loves his job is bound to produce higher quality products than someone who doesn't.
So, If you think someone who has a passion for improving and life-long learning, and applying what he learned to the product and passing it on to his co-workers is an ideal employee, I am indeed your person.